#include <Arduino.h>
// Mapeamento dos pinos
#define SIG 7 // pino digital
#define S0 2
#define S1 3
#define S2 4
#define S3 5
// o pino EN do mux vai no GND
int mix[4] = {S3, S2, S1, S0};
byte ci[16][4] = {
{0, 0, 0, 0},
{0, 0, 0, 1},
{0, 0, 1, 0},
{0, 0, 1, 1},
{0, 1, 0, 0},
{0, 1, 0, 1},
{0, 1, 1, 0},
{0, 1, 1, 1},
{1, 0, 0, 0},
{1, 0, 0, 1},
{1, 0, 1, 0},
{1, 0, 1, 1},
{1, 1, 0, 0},
{1, 1, 0, 1},
{1, 1, 1, 0},
{1, 1, 1, 1},
};
void setup() {
Serial.begin(9600);
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(SIG, OUTPUT);
}
void loop() {
// Seleciona cada entrada do multiplexador individualmente
for (int i = 0; i < 16; i++) {
if (i % 3 == 0) { // Se o valor é múltiplo de 3, então é o pino R de um LED
digitalWrite(SIG, HIGH); // Liga o LED vermelho
multiplex(i);
delay(10); // Pequeno delay para garantir que a mudança seja percebida
} else {
digitalWrite(SIG, LOW); // Desliga o LED
}
}
}
// Função de escrita dos valores
void multiplex(int valor) {
// Configura os pinos de controle do multiplexador
for (int y = 0; y < 4; y++) {
digitalWrite(mix[y], ci[valor][y]);
}
}
Loading
cd74hc4067
cd74hc4067