barrieron-8led.ino
El 74HC595 convierte 3 pines en 8 salidas: la barra LED cuesta solo tres hilos, y los circuitos se encadenan para 16, 24 salidas… El patrón barre como el escáner del «knight rider».
Hardware necesario
Un Arduino Mega 2560 (ATmega2560, 16 MHz, 5 V): 54 E/S digitales, 15 PWM, 16 entradas analógicas, 4 UART por hardware. 1 74HC595, 8 LED + 8×330 Ω, condensador de 100 nF.
Cableado
SER (14)→pin 22, SRCLK (11)→23, RCLK (12)→24; QA-QH a los LED (con resistencias); OE y GND a GND, VCC a 5 V.
Funcionamiento
shiftOut apila 8 bits en el registro con pulsos de reloj y el flanco de LATCH los aplica a las salidas de golpe. En el Arduino IDE, elija « Arduino Mega 2560 » y el puerto, y suba. PWM en 2-13 y 44-46; UART1=18/19, UART2=16/17, UART3=14/15; SPI en 50-53.
Para ir más lejos
Encadene un segundo 595 (SER out → SER in del siguiente) para una barra de 16 LED con los mismos 3 pines.
barrieron-8led.ino
// Barre de 8 LED en "knight rider" via 74HC595 (3 broches seulement).
const int DATA = 22, LATCH = 23, CLOCK = 24;
uint8_t motif = 1;
int sens = 1;
void setup() {
pinMode(DATA, OUTPUT); pinMode(LATCH, OUTPUT); pinMode(CLOCK, OUTPUT);
}
void loop() {
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, MSBFIRST, ~motif); // LED actives a LOW
digitalWrite(LATCH, HIGH);
if (sens > 0) { if (motif & 0x80) sens = -1; else motif <<= 1; }
else { if (motif & 0x01) sens = 1; else motif >>= 1; }
delay(120);
}