// Pin definitions
const int dataPin = 8; // Connects to DI on CD4094BE
const int clockPin = 9; // Connects to CP on CD4094BE
const int strobePin = 10; // Connects to STROBE on CD4094BE
const int oePin = 5;
int twos[]={1,2,4,8,16,32,64,128};
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(strobePin, OUTPUT);
pinMode(oePin, OUTPUT);
Serial.begin(115200);
digitalWrite(oePin, HIGH);
}
void loop() {
for (int i = 0; i < 256; i++) {
sendTo4094(i);
Serial.println(i);
delay(1000);
}
}
void sendTo4094(int data) {
digitalWrite(strobePin, LOW);
for (int i = 7; i >= 0; --i) {
digitalWrite(dataPin, (data >> i) & 1);
digitalWrite(clockPin, HIGH);
digitalWrite(clockPin, LOW);
}
digitalWrite(strobePin, HIGH);
digitalWrite(strobePin, LOW);
}