Fuente:
http://ricardforner.blogspot.com/2011/08/uso-del-chip-shift-register-74hc595-en.html
Uso del chip Shift Register (74HC595) en Arduino
El chip 74HC595 nos permite utilizar una entrada de datos serie, y convertir un byte a 8 salidas en paralelo. Mediante el uso de una entrada de DATA, una de CLOCK y un LATCH, conseguimos con sólo 3 pines de Arduino procesar 8 salidas paralelas digitales.
Destacar que pueden encadenarse varios chips, por lo que si añadimos un segundo chip podemos tener 16 salidas paralelas simultáneas con 2 bytes, y así sucesivamente.
CIRCUITO
Nuestro prototipo para probar la conversión de serie a digital que nos facilita el 595 se basa en el esquema siguiente:
PROTOTIPO
El prototipo implementado en una protoboard tiene éste aspecto.
CÓDIGO FUENTE DE ARDUINO
La prueba se basa en el sistema de señalización del Proyecto PAROCA I, en que se muestran 5 LEDs en frecuencia estroboscópica (10ms / 64 ms) y un LED tricolor en que se mostrará el estado de la batería.
/*
Proyecto.....: PAROCA I
Descripcion..: Plataforma Robotica de Carga
Autor........: Ricard Forner (RFKSolutions.es)
Version......: 0.0.1
Fecha........: 03/08/2011
Código fuente: Arduino
*/
//Pin conectado a latch pin (ST_CP) del 74HC595
const int latchPin = A1;
//Pin conectado a clock pin (SH_CP) del 74HC595
const int clockPin = A0;
//Pin conectado a Data in (DS) del 74HC595
const int dataPin = A2;
//// Luces intermitentes / strobe
int seqLED[5] = {8+16, 8+16, 32+64, 32+64, 128};
//// Luces estado bateria
const int batteryOk = 2; // verde
const int batteryLow = 1; // rojo
int batteryStatus;
void setup() {
initLuces();
batteryStatus = batteryOk;
}
void loop() {
doLuces(batteryStatus);
}
void initLuces() {
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void doLuces(int status) {
for (int n=0; n<5; n++) {
digitalWrite(latchPin, LOW);
delay(10);
shiftOut(dataPin, clockPin, MSBFIRST, status+seqLED[n]);
digitalWrite(latchPin, HIGH);
delay(12);
}
}
VÍDEOS
Como resultado de lo publicado en el presente artículo, un par de vídeos de su funcionamiento.
http://youtu.be/rz4-_nKAxuc
Video de una rotación secuencial de los LEDs.
http://youtu.be/Z6gJ21Cs3ME
No hay comentarios:
Publicar un comentario