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).

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.

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.
