Proyecto 2: Lámpara de mesa
Descripción
La lámpara de mesa común usa luces LED y botones, que permiten encender y apagar la luz pulsando el botón.
Principio del botón
El módulo de botón es un sensor digital, que solo puede leer 0 o 1. Cuando el módulo no está pulsado, está en un estado de nivel alto, es decir, 1; cuando se pulsa, está en nivel bajo 0.

Pines del botón
Botón 1 |
16 |
|---|---|
Botón 2 |
27 |
Proyecto 2.1 Leer el botón
Descripción
Vamos a leer el valor de estado del botón y mostrarlo en el monitor serie para verlo de forma intuitiva.
Código de prueba
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
Resultado de la prueba
Haz clic en el botón Run, entonces podrás ver los valores de estado de button1 y button2 impresos en el shell. Pulsa el botón del hogar inteligente y verás el cambio de los valores de estado.

Proyecto 2.2. Lámpara de mesa
Descripción
Para una lámpara de mesa simple y común, al pulsar el botón se encenderá; al pulsarlo de nuevo, la lámpara se apagará.
Código de prueba
Calculando las veces que se ha pulsado el botón y tomando el resto al dividir por 2, se pueden obtener los dos valores de estado 0 o 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
Resultado de la prueba
El shell imprimirá el número de veces que se ha pulsado el botón; al pulsarlo una vez, el LED se encenderá; al pulsarlo de nuevo, se apagará.
