const int addressPinS0 = 8; // S0 pin on 74HC4067
const int addressPinS1 = 9; // S1 pin on 74HC4067
const int addressPinS2 = 10; // S2 pin on 74HC4067
const int addressPinS3 = 11; // S3 pin on 74HC4067
const int analogPin = A0; // Analog pin to read from
void setup() {
pinMode(addressPinS0, OUTPUT);
pinMode(addressPinS1, OUTPUT);
pinMode(addressPinS2, OUTPUT);
pinMode(addressPinS3, OUTPUT);
Serial.begin(9600);
}
void loop() {
for (int i = 0; i < 3; ++i) {
// Set the address pins based on the current iteration
digitalWrite(addressPinS0, i & B0001);
digitalWrite(addressPinS1, (i & B0010) >> 1);
digitalWrite(addressPinS2, (i & B0100) >> 2);
digitalWrite(addressPinS3, (i & B1000) >> 3);
// Read the analog value from the selected input
int sensorValue = analogRead(analogPin);
// Print the result
Serial.print("Input ");
Serial.print(i);
Serial.print(": ");
Serial.println(sensorValue);
delay(500); // Add a delay to make readings more readable
}
}Loading
cd74hc4067
cd74hc4067