Una funcion lista para sumar al codigo y usar este "multiplexor" digital. La gran desventaja es que solo puede setearse una compuerta logica en HIGH, la cual se ira a LOW cuando seteamos otra.
// Arduino DigitalPins to CD4514 DATA 1, 2, 3, 4
// Arduino DigitalPin to cd4514 inhibit
int DataPin[4] = {3, 4, 5, 6};
const int InhibitPin = 7;
void OutputPin(int Pin) {
digitalWrite(InhibitPin, HIGH);
for (int Bit = 0; Bit <= 3; Bit++) {
int OutputBit = bitRead(Pin, Bit);
digitalWrite(DataPin[Bit], OutputBit);
Serial.print(OutputBit);
}
digitalWrite(InhibitPin, LOW);
Serial.println();
}
void setup() {
pinMode(InhibitPin, OUTPUT);
digitalWrite(InhibitPin, HIGH);
for (int Pin = 0; Pin <= 3; Pin++) {
pinMode(DataPin[Pin], OUTPUT);
}
Serial.begin(9600);
}
void loop() {
for (int Pin = 0; Pin <= 15; Pin++) {
OutputPin(Pin);
Serial.println(Pin);
delay(2000);
}
}