from machine import Pin, I2C
import ssd1306
import time
# I2C configuratie voor OLED (SSD1306)
# Pas de pinnen aan naar jouw hardware configuratie
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)
# OLED display initialiseren (128x64 pixels is standaard)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
def toon_snelheid(snelheid):
"""Toont de snelheid op het OLED scherm"""
oled.fill(0) # Scherm leegmaken
# Titel bovenaan
oled.text("SNELHEID", 25, 0)
# Grote snelheidsweergave in het midden
snelheid_str = str(int(snelheid))
# Centreer de snelheid (ongeveer)
x_pos = 40 if snelheid < 100 else 30
oled.text(snelheid_str, x_pos, 25, 1)
# Eenheid
oled.text("km/h", 45, 45)
# Visuele snelheidsbalk onderaan
balk_breedte = int((snelheid / 200) * 128) # Max 200 km/h
if balk_breedte > 128:
balk_breedte = 128
oled.fill_rect(0, 58, balk_breedte, 6, 1)
oled.show() # Update het display
# Hoofdprogramma
def main():
print("OLED Snelheidsmeter gestart")
# Voorbeeld: simuleer variërende snelheid
# In een echte toepassing vervang je dit door GPS of OBD2 data
snelheid = 0
richting = 1
while True:
toon_snelheid(snelheid)
# Simuleer snelheidsverandering
snelheid += richting * 5
if snelheid >= 120:
richting = -1
elif snelheid <= 0:
richting = 1
time.sleep(0.5)
# Uitvoeren
try:
main()
except KeyboardInterrupt:
oled.fill(0)
oled.text("Gestopt", 35, 28)
oled.show()
print("\nProgramma gestopt")