Project 2: Tafellamp

Beschrijving

De gewone tafellamp gebruikt LED-verlichting en knoppen, waarmee je het licht kunt aan- en uitzetten door op de knop te drukken.

Principe van de knop

De knopmodule is een digitale sensor, die alleen 0 of 1 kan lezen. Wanneer de module niet is ingedrukt, is de uitgang hoog (1); wanneer hij ingedrukt is, is hij laag (0).

afbeelding22

Pinnen van de knop

Knop 1

16

Knop 2

27

Project 2.1 Lees de knop

Beschrijving

We gaan de statuswaarde van de knop lezen en deze op de seriële monitor weergeven, zodat je het intuïtief kunt zien.

Test Code

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

Testresultaat

Klik op de run-knop, dan zie je de statuswaarden van button1 en button 2 in de shell afgedrukt. Druk op de knop van het slimme huis en je ziet de verandering van de statuswaarden.

afbeelding23

Project 2.2. Tafellamp

Beschrijving

Bij een eenvoudige tafellamp druk je eenmaal op de knop om hem aan te doen, druk je nogmaals om de lamp uit te doen.

Testcode

Tel het aantal keren dat op de knop is gedrukt en neem de rest bij deling door 2; zo krijg je twee toestandswaarden: 0 of 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

Testresultaat

De shell zal het aantal keren dat op de knop is gedrukt afdrukken; klik eenmaal op de knop, de LED gaat aan, klik nogmaals, dan gaat deze uit.

afbeelding24