Contador binario con Arduino y registros DDR, PORT y PIN

En este tutorial se diseñará un contador binario con Arduino. La salida del contador se representará mediante LEDS. Entonces para crear el contador se utilizará el registro DDRX para la asignación de valores lógicos. Esto se realizará en el lenguaje Arduino. En este tutorial aprenderemos cómo controlar las salidas digitales para mostrará los números del 1 al 31 de manera secuencial por medio de registro de puertos. Para realizar el contador es necesario tener conocimientos sobre el código binario y quizás en como convertir binario a decimal.

Contador binario ascendente y descendente con Arduino

Un contador binario con Arduino, ascendete y desendente, permitirá cada determinado tiempo en incrementar o decrementar el contador. Para este contador se utilizarán 5 leds de 5mm para representar a 5 bits de un numero binario. La cuenta máxima de este contador será:

2^5 = 32-1 (-1 para considerar al 0).

Por lo tanto el numero máximo será el 31.

Material:

Los controladores y software Arduino lo puedes encontrar en: www.arduino.cc

Registros de puertos en Arduino

Para empezar los registros de puertos en Arduino nos permiten una manipulación más rápida de los pines de Entradas/Salidas de la tarjeta Arduino UNO. Esta forma de programación es una alternativa al uso de las clases pinMode y digitalWrite. El microcontrolador de esta placa tiene tres puertos:

  • pin digital de 8-13. Puerto B. Controlador por DDRB, PORTB y PINB.
  • pines de entrada analógica. Controlado por el puerto C, es decir, por DDRC, PORTC y PINC.
  • pines digitales 0-7. El puerto D controlado por los registros DDRD, PORTD y PIND.

Cada uno de estos puertos está controlado por tres registros los cuales se definen por DDRX, PORTX y PINX.

Puerto DDRX en Arduino

El puerto DDRX en Arduino, sirve para determinar o configurar si el pin correspondiente será entrada o salida.

Sintaxis:

DDRD= B00001111;

Donde:

D es el puerto a controlar

B indicamos que es el código binario

 0  =entrada          1=salida

Con respecto a este ejemplo estamos declarando que la mitad de nuestro puerto  sea entrada y la otra parte salida, entonces con esto evitamos escribir varias veces “pinMode(x,OUTPUT)” para declarar cada pin.

Tomando en cuenta que el primer número de la derecha es el menos significativo la relación de los pines será de la siguiente manera:

Numero insertado00001111
Pin de Arduino76543210

 

Por otro lado si desea  hacerlo en forma decimal solo bastaría con escribir “31” y esto sería igual a activar los primeros cuatro pines como salida DDRD=31 o DDRD=255 si queremos activar todo el puerto como salida.

 

Registro PORT en Arduino

El registro PORT Controlada si el pin esta en alto o bajo. Es decir, que puede “escribir” un valor lógico a la salida de cada pin.

PORTD=10101010

Por consiguiente los pines 1, 3, 5, 7 están en estado alto mientras que los pines 0, 2, 4, 6 están en estado bajo.

Registro PIN

Lee el estado de los pines de entrada establecidos.

PIND

Se lee todo el puerto que se ha configurado como entrada. Este registro nos da un 1 si a un pin del microcontrolador se le está alimentando externamente, y un cero si esta en nivel bajo de voltaje.

Programación de contador binario en Arduino

Por consiguiente hacemos la programación del contador binario en el Arduino, en el cual declaramos una variable de tipo entero para que cuente de manera ascendente  y otra variable para descender el contador. Como resultado veremos como encienden los LED’s en el puerto D.

Conexión de contador binario con Arduino

La conexión del contador binario con ARduino, comienza con el circuito que se cablea cada uno de los pines  de salida que declaramos de nuestro Arduino a los LEDs que estas coincidan con el ánodo, y por el lado del cátodo se coloca una resistencia de 220ohms en cada una de ellas. Para finalizar tomamos GND de Arduino y se une con todas las resistencias, para poder observar el contador binario.

Conexiones del Contador binario con Arduino

Diagrama esquemático

 

 

Foto del Contador binario con Arduino y registros DDR, PORT y PIN

Conexión con contador binario

 

3 Comments

  1. ELBER septiembre 28, 2017
    • Eduardo Lara septiembre 28, 2017
  2. Rubèn Millàn abril 16, 2018

Escríbenos tus dudas o comentarios

Usamos Cookies en nuestro sitio WEB

Por favor confirma, si aceptas nuestras cookies de rastreo. También puedes negar el uso de cookies de rastreo y seguir navegando sin que ninguna información sea enviada a servicios de terceros.