Descripción
Ya sabemos que arduino UNO dispone de 14 pines digitales, que podríamos usa de entrada o de salida. Además disponemos de 6 puertas analógicas de A0 hasta A5, que también se pueden usar como pines digitales de salida o entrada en caso necesario. Se puede escribir los valores digitales igual que hacemos con los pines digitales normales
pinMode (A1, OUTPUT);
y luego después se puede escribir el estado del pin
digitalWrite (A1, HIGH);
y de esta forma las puerta analógicas se comportarán como puertas digitales.
Así pues podríamos disponer de hasta 20 pines digitales de entrada o salida. ¿Que ocurre si necesitamos más de 20 salidas digitales?
Para estos casos disponemos de los shift register de salida el 74HC595 o shift register de entrada 74HC165 o shift register de pines analógicos que se puede usar como multiplexor o demultiplexor 74HC4051.
En este circuito vamos a aumentar las salidas de arduino usano el 74HC595, y vamos a ilustrar los estados de las salidas con 8 diodos leds, de manera que usando 3 pines de arduino, vamos a tener 8 salidas.
CircuitopinMode (A1, OUTPUT);
y luego después se puede escribir el estado del pin
digitalWrite (A1, HIGH);
y de esta forma las puerta analógicas se comportarán como puertas digitales.
Así pues podríamos disponer de hasta 20 pines digitales de entrada o salida. ¿Que ocurre si necesitamos más de 20 salidas digitales?
Para estos casos disponemos de los shift register de salida el 74HC595 o shift register de entrada 74HC165 o shift register de pines analógicos que se puede usar como multiplexor o demultiplexor 74HC4051.
En este circuito vamos a aumentar las salidas de arduino usano el 74HC595, y vamos a ilustrar los estados de las salidas con 8 diodos leds, de manera que usando 3 pines de arduino, vamos a tener 8 salidas.
El circuito, es un poco más complicado de lo que hemos hecho hasta ahora, pero no mucho. Utilizaremos las salidas 8, 11 y 12 de arduino para conectarlas a las entradas 12, 14 y 11 del shift register, a la salida de este conectaremos 8 led que irán conectados en catodo común a su vez a una resistencia de 330.
Solo recordarte que los circuitos integrados, el pin 8 suele ser GND y el 16 VCC. Si tienes alguna duda consulta el datasheet del integrado.
Solo recordarte que los circuitos integrados, el pin 8 suele ser GND y el 16 VCC. Si tienes alguna duda consulta el datasheet del integrado.
Nota los circuitos integrados suele tener una muesca en el lado superior, el pin a la izquierda de la muesca es el número 1 y bajando y girando en sentido contrario a las agujas de reloj van lo siguientes pines en orden numérico, siendo el pin de la derecha de la muesca el 16.
Este código hará que arduino cuente en números binario hasta el 256, y lo veremos reflejado en los 8 diodos.
Para empezar declararemos 3 variables globales de tipo entero, una es latchPin en el pin 8 de arduino, que active las salidas, clockPin en el pin 12 que será quien marque el ritmo de contaje y dataPin en el pin 11 que es el encargado de ir pasando los datos
en el setup, vamos a declarar los pines de las variables como salida.
en el loop vamos a crear un bucle for que se va a repetir mientras Num sea menor que 256, empezará en 0 y sumará uno en cada repetición. Durante esas repeticiones, el latchPin pasara a LOW entoces shiftOut, pasará sus 4 parámetros y luego latchPin pasará de nuevo a HIGH donde se activarán las salida, haremos una pausa de medio segundo y se ejecutará la siguiente repetición, cuando la condición ya no se cumpla, empezaremos de nuevo.
Las comunicaciónes síncronas son tan frecuente que arduino las trae de fábrica, con una serie de funciones. La que más interesa aquí es shiftOut().
Para iniciar cualquier comunicación síncrona hay que poner el Latch en LOW.
shiftLow envía los 8 bit si le decimos los pines que usamos como dataPin y clockPin, además de indicarle los valores que queremos enviar a la salida.
Lo de MSBFIRST significa Most Significant Bit First. es decir, empieza enviando el número binario por el bit de la izquierda que es el más significativo. También podría ser al revés LSBFIRST Least Significant Bit First. es decir, empieza enviando el número binario por el bit de la derecha, que es el menos significativo.
Por último y como ya hemos dicho fijamos los valores colocando el Latch de nuevo en alto

