Die Ansteuerung der WS2812B-RGB-LED-Scheinwerfer-Module wird mit diesem Script übernommen. Dabei stehen hier die Funktionen lights(x) für das Abblendlicht, highBeam(x) für das Fernlicht, breakLight(x) für das Bremslicht, reverseLight(x) für das Rückfahrlicht und indicator(y) für den Blinker zur Verfügung. Dabei kann X die Werte 0 und 1 (Aus & An) übernehmen. Y, also die Funktion der Blinker, kann die Werte 0, 1, 2 und 3 übernehmen (Aus, Links, Rechts, Warnblinker).
from microbit import *
import neopixel
from utime import ticks_ms, ticks_diff
np = neopixel.NeoPixel(pin0, 8)
headlights = (0, 3)
backlights = (5, 6)
led_white = (60, 60, 60)
led_red = (60, 0, 0)
led_off = (0, 0, 0)
led_red_br = (255, 0, 0)
led_orange = (100, 35, 0)
indicator_left = (1, 4)
indicator_right = (2, 7)
indicator_warning = (1, 2, 4, 7)
def lightsON():
for x in headlights:
np[x] = led_white
for x in backlights:
np[x] = led_red
np.show()
def lightsOFF():
for x in headlights:
np[x] = led_off
for x in backlights:
np[x] = led_off
np.show()
def lightsBreakON():
temp = np[backlights[1]]
for x in backlights:
np[x] = led_red_br
np.show()
return (temp)
def lightsBreakOFF():
for x in backlights:
np[x] = led_off
np.show()
def lightsBackON():
temp = np[backlights[0]]
np[backlights[0]] = led_white
np.show()
return (temp)
def lightsBackOFF():
np[backlights[0]] = led_off
np.show()
def lightsIndicator(direction, last_ind_act):
if ticks_diff(ticks_ms(), last_ind_act) >= 400 and np[direction[0]] == led_off:
for x in direction:
np[x] = led_orange
np.show()
return ticks_ms()
elif ticks_diff(ticks_ms(), last_ind_act) >= 400 and np[direction[0]] == led_orange:
for x in direction:
np[x] = led_off
np.show()
return ticks_ms()
else:
return last_ind_act
while True:
#Anwendungsbeispiel
lightsON() #Licht ein
sleep(1000)
lightsBreakON() #Bremslicht ein
sleep(1000)
lightsBreakOFF() #Bremslicht aus
sleep(1000)
lightsBackON() #Rückfahrscheinwerfer an
sleep(1000)
lightsBackOFF() #Rückfahrscheinwerfer aus
sleep(1000)
lightsOFF() #Licht aus
sleep(1000)