Contador binario de 4 bits con MicroPython
Este contador binario de 4 bits con MicroPython permite realizar un conteo desde 0 hasta 15, aunque en este post también te explicaré la manera de modificar el numero de bits, con ello se puede obtener un contador de 6 bits, 8 bits, etc., lo que permite incrementar o disminuir el valor máximo de conteo.
Este proyecto puede ser útil para visualizar los valores binarios mediante leds, o para enviar estos valores a un conversor digital – analógico (DAC). El proyecto fue realizado con una Placa Raspberry Pi Pico, la cual contiene el firmware de micropython instalado previamente, para la visualización del contador se emplea 4 diodos emisores de luz (led).
Materiales
- 1x Placa Raspberry Pi Pico, Esp32 o cualquier placa con micropython.
- 4x Diodo emisor de luz.
- 4x Resistor de 330 Ohm.
- 1x Protoboard.
- Cables de conexión.
Circuito
Este circuito se diseñó para una placa Raspberry Pi Pico, si utilizas otra placa debes verificar la disponibilidad o modificar los pines utilizados para este diseño.
Los componentes se deben conectar de la siguiente manera:
- El ánodo del Led 1 (Pin Largo) va conectado a un extremo del resistor de 330 Ohm, el otro extremo del resistor va conectado al Pin GP10 de la placa.
- El cátodo del Led 1 (Pin Corto) va conectado al Pin GND de la Placa.
- El ánodo del Led 2 (Pin Largo) va conectado a un extremo del resistor de 330 Ohm, el otro extremo del resistor va conectado al Pin GP11 de la placa.
- El cátodo del Led 2 (Pin Corto) va conectado al Pin GND de la Placa.
- El ánodo del Led 3 (Pin Largo) va conectado a un extremo del resistor de 330 Ohm, el otro extremo del resistor va conectado al Pin GP12 de la placa.
- El cátodo del Led 3 (Pin Corto) va conectado al Pin GND de la Placa.
- El ánodo del Led 4 (Pin Largo) va conectado a un extremo del resistor de 330 Ohm, el otro extremo del resistor va conectado al Pin GP13 de la placa.
- El cátodo del Led 4 (Pin Corto) va conectado al Pin GND de la Placa.
Sketch en MicroPython
Para el código de este sketch se utilizó una placa Raspberry Pi Pico, si utilizas otra placa debes verificar la disponibilidad o modificar los pines utilizados.
from machine import Pin from time import sleep #Setup Pines de Salida pin_a = Pin(10, Pin.OUT) pin_b = Pin(11, Pin.OUT) pin_c = Pin(12, Pin.OUT) pin_d = Pin(13, Pin.OUT) #Funcion driver para activar cada salida def driver(a): b = "{0:04b}".format(a) pin_a.value(int(b[0])) pin_b.value(int(b[1])) pin_c.value(int(b[2])) pin_d.value(int(b[3])) #Bucle de repeticion infinita while True: #Bucle que cuenta de 0 a 15 #16 es el valor maximo no incluido (4 bits) for i in range(16): #Envia a la funcion el valor de conteo driver(i) #Retardo 1s sleep(1)
¿Cómo funciona el Sketch?
El Sketch funciona de la siguiente manera:
- Al energizar la placa, comenzará un conteo desde 0 hasta 15, con un tiempo de espera de 1 segundo. Los leds mostraran el valor binario correspondiente a cada numero.
- Cuando el contador alcance su valor máximo (15), comenzará nuevamente desde su valor mínimo (0), el ciclo se repetirá indefinidamente.
Si quieres aumentar los bits del contador debes modificar la cadena de formato que se encuentra en la funcion driver, como se muestra a continuación:
#4 bits def driver(a): b = "{0:04b}".format(a) pin_a.value(int(b[0])) pin_b.value(int(b[1])) pin_c.value(int(b[2])) pin_d.value(int(b[3])) #6 bits def driver(a): b = "{0:06b}".format(a) pin_a.value(int(b[0])) pin_b.value(int(b[1])) pin_c.value(int(b[2])) pin_d.value(int(b[3])) pin_e.value(int(b[4])) pin_f.value(int(b[5])) #8 bits def driver(a): b = "{0:08b}".format(a) pin_a.value(int(b[0])) pin_b.value(int(b[1])) pin_c.value(int(b[2])) pin_d.value(int(b[3])) pin_e.value(int(b[4])) pin_f.value(int(b[5])) pin_g.value(int(b[6])) pin_h.value(int(b[7]))