A04. Pulsador como interruptor¶
Enunciado¶
En esta actividad vamos a controlar el estado de un diodo LED mediante un botón pulsador pero de manera diferente a la actividad A03. Cuando presionemos el botón el LED se encenderá si estaba apagado o se apagará si estaba encendido. Es decir, la acción del pulsador ya no es momentánea ya que el LED va a permanecer encendido sin necesidad de estar acionanándolo de forma continua.
Contenidos de electrónica básica que se aconseja repasar:
Lista de componentes¶
- - Placa pico explorer con Pi Pico
- - 1 Cable USB A a USB micro que utilizaremos para programar y alimentar la Pi Pico
- - 1 Diodo LED
- - 1 Resistencia de 220R
- - 2 Resistencia de 100K
- - 1 pulsador
- - Cables dupont
Esquema del circuito¶
El circuito que vamos a montar es el siguiente:
Programa¶
Código¶
El código de la actividad es el siguiente:
from machine import Pin
import time
led = Pin(5, Pin.OUT)
pulsador = Pin(4, Pin.IN, Pin.PULL_UP)
def invertirGPIO():
if led.value():
led.value(0)
else:
led.value(1)
try:
while True:
if not pulsador.value():
time.sleep_ms(20)
if not pulsador.value():
invertirGPIO()
while not pulsador.value():
time.sleep_ms(20)
except:
pass
El programa lo podemos descargar de:
Explicación¶
Veamos el funcionamiento del programa:
- Importación de módulos y configuración de pines. Ver actividades anteriores.
- Bucle infinito:
Cuando se detecta que se ha pulsado el botón (primer if), se genera un retardo de 20 ms para evitar el efecto rebote y, a continuación, se comprueba si el botón ha sido pulsado de nuevo (segundo if). En caso afirmativo, se ejecutará la sentencia condicional, en caso contrario no se ejecutará. Si el segundo if se cumple se invoca a la función invertirGPIO()
.
- Función
invertirGPIO()
:
Se evalúa el estado de led
y si está a 1 lo pone a 0 o viceversa.