Projekt 2: Tischlampe

Beschreibung

Eine übliche Tischlampe verwendet LED-Leuchten und Tasten, mit denen das Licht durch Drücken der Taste ein- und ausgeschaltet werden kann.

Funktionsprinzip der Taste

Das Tastenmodul ist ein digitaler Sensor, der nur 0 oder 1 lesen kann. Wenn das Modul nicht gedrückt ist, befindet es sich im High-Zustand, also 1; beim Drücken ist es im Low-Zustand, also 0.

Bild22

Pins der Taste

Taste 1

16

Taste 2

27

Projekt 2.1 Taste auslesen

Beschreibung

Wir werden den Statuswert der Taste auslesen und im seriellen Monitor anzeigen, um ihn anschaulich zu sehen.

Testcode

from machine import Pin
import time

button1 = Pin(16, Pin.IN, Pin.PULL_UP)
button2 = Pin(27, Pin.IN, Pin.PULL_UP)

while True:
    btnVal1 = button1.value()  # Reads the value of button 1
    btnVal2 = button2.value()
    print("button1 =",btnVal1)  #Print it out in the shell
    print("button2 =",btnVal2)
    time.sleep(0.1) #delay 0.1s

Testergebnis

Klicken Sie auf die Run-Schaltfläche, dann sehen Sie die Statuswerte von button1 und button2 in der Konsole ausgegeben. Drücken Sie die Taste am Smart-Home-Modul, und Sie können die Änderung der Statuswerte beobachten.

Bild23

Projekt 2.2: Tischlampe

Beschreibung

Bei einer einfachen Tischlampe: Drückt man die Taste, wird das Licht eingeschaltet; drückt man sie erneut, wird es ausgeschaltet.

Testcode

Zähle die Anzahl der Tastendrücke und bilde den Rest bei Division durch 2, so erhältst du die beiden Zustände 0 oder 1.

from machine import Pin
import time

button1 = Pin(16, Pin.IN, Pin.PULL_UP)
led = Pin(12, Pin.OUT)
count = 0

while True:
    btnVal1 = button1.value()  # Reads the value of button 1
    #print("button1 =",btnVal1)  #Print it out in the shell
    if(btnVal1 == 0):
        time.sleep(0.01)
        while(btnVal1 == 0):
            btnVal1 = button1.value()
            if(btnVal1 == 1):
                count = count + 1
                print(count)
    val = count % 2
    if(val == 1):
        led.value(1)
    else:
        led.value(0)
    time.sleep(0.1) #delay 0.1s

Testergebnis

Die Konsole gibt die Anzahl der Tastendrücke aus. Drückt man die Taste einmal, leuchtet die LED; drückt man sie erneut, erlischt sie.

Bild24