// Definindo os pinos de controle do multiplexador
#define s0 2
#define s1 3
#define s2 4
#define s3 5
#define SIG 9 // Pino comum (SIG ou COM) conectado ao multiplexador
void setup() {
// Configurando os pinos de controle como saída
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
// Configurando o pino comum (SIG ou COM) como saída
pinMode(SIG, OUTPUT);
// Inicializa o pino SIG como HIGH (ligado)
digitalWrite(SIG, HIGH);
}
void selecionarCanal(int canal) {
// Define o canal do multiplexador com base no valor de 'canal' (0 a 15 para os LEDs)
digitalWrite(s0, canal & 0x01); // LSB (bit menos significativo)
digitalWrite(s1, (canal >> 1) & 0x01);
digitalWrite(s2, (canal >> 2) & 0x01);
digitalWrite(s3, (canal >> 3) & 0x01);
}
void acenderTodosOsLeds() {
// Multiplexa rapidamente todos os LEDs para que pareçam acesos ao mesmo tempo
for (int i = 0; i < 10; i++) {
selecionarCanal(i); // Seleciona o canal correspondente ao LED
delay(1); // Pequeno delay para cada canal ser selecionado
}
}
void loop() {
// Continuamente chama a função para acender todos os LEDs ao mesmo tempo
acenderTodosOsLeds();
}
Loading
cd74hc4067
cd74hc4067