/*
Exemplo de controle de LEDs com o registrador de deslocamento 74HC595.
O código envia padrões de bits para controlar LEDs conectados ao registrador.
Licença: MIT.
*/
// Definição dos pinos para o Arduino
const int pinoDados = 2; /* SI (entrada de dados para o 74HC595) */
const int pinoRelogio = 3; /* SCK (relógio para o 74HC595) */
const int pinoLatch = 4; /* RCK (controle de registro para o 74HC595) */
void setup() {
// Configuração dos pinos como saída
pinMode(pinoDados, OUTPUT); // Define o pino de dados como saída
pinMode(pinoRelogio, OUTPUT); // Define o pino de relógio como saída
pinMode(pinoLatch, OUTPUT); // Define o pino de latch como saída
}
void enviarDados(uint8_t padrão) {
digitalWrite(pinoLatch, LOW); // Desliga o pino latch para preparar o envio
shiftOut(pinoDados, pinoRelogio, LSBFIRST, padrão); // Envia os dados para o registrador de deslocamento
digitalWrite(pinoLatch, HIGH); // Liga o pino latch para aplicar o padrão nos LEDs
}
void loop() {
// Acende a luz vermelha (assumindo que o LED está na posição do bit 0)
enviarDados(0b11011011); // Envia o padrão de bits para acender a luz vermelha
delay(500); // Aguarda 500 milissegundos (meio segundo)
// Acende a luz verde
enviarDados(0b10110111); // Envia o padrão de bits para acender a luz verde
delay(500); // Aguarda 500 milissegundos (meio segundo)
// Acende a luz roxa
enviarDados(0b01001011); // Envia o padrão de bits para acender a luz roxa
delay(500); // Aguarda 500 milissegundos (meio segundo)
}