Saltar a contenido

A03. Pulsador y LED

La actividad está pensada para aprender a controlar un LED con un pulsador. Lo primero que deberemos hacer es leer el estado del pulsador para después decidir si el LED se enciende o no basándonos en esa lectura.

Contenidos de electrónica básica que se aconseja repasar:

Enunciado

En esta actividad vamos a controlar el estado de un diodo LED mediante un botón pulsador. Cuando presionemos el botón el LED debe encenderse y cuando lo soltemos debe apagarse.

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:

A03

Programa

Código

El código de la actividad es el siguiente:

from machine import Pin

led = Pin(5, Pin.OUT)

#crea 'pulsador' y habilita su resistencia pull-up
pulsador = Pin(4, Pin.IN, Pin.PULL_UP)

try:
    while True:
        if not pulsador.value():
            led.value(1)
        else:
            led.value(0)
except:
    pass

El programa lo podemos descargar de:

Explicación

El programa de la imagen siguiente se ejecutará de arriba a abajo línea a línea. Cuando se encuentra un bucle o un condicional ejecutará la sentencia del mismo según su condición.

A03_programa
A03_programa

Para trabajar con la Pi Pico necesitamos importar los módulos correspondientes a las funciones que vamos a emplear, en nuestro caso:

from machine import Pin

A continuación configuramos la patilla GPIO a la que conectamos el LED como salida, realizamos una asignación a led del pin GP5 y también configuramos como entrada el pin GP4 activando su resistencia de pull-up y asignándolo a pulsador.

led = Pin(5, Pin.OUT)

#crea 'pulsador' y habilita su resistencia pull-up
pulsador = Pin(4, Pin.IN, Pin.PULL_UP)

Leemos el estado del pin del botón con la función value(). Al accionar el pulsador, la función devuelve nivel bajo y el resultado de if es verdadero (debido al not) y el LED se encenderá; de lo contrario, el LED estará apagado.

if not pulsador.value():
            led.value(1)
        else:
            led.value(0)