/*
Modified on Nov 28, 2020
Modified by MehranMaleki from Arduino Examples
Home
*/
//Mux control pins
#define s0 8
#define s1 9
#define s2 10
#define s3 11
const uint8_t controlPins[] = { 8, 9, 10, 11 };
//Mux in "SIG" pin
#define SIG_Pin A0
#define Test_Pin A1
void setup(){
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
digitalWrite(s0, LOW);
digitalWrite(s1, LOW);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
Serial.begin(9600);
analogReference(DEFAULT);
}
void loop(){
//Loop through and read all 16 values
for(int i = 0; i < 16; i ++){
Serial.print("Value at channel ");
Serial.print(i);
Serial.print("is : ");
Serial.println(readMux(i));
Serial.println(analogRead(Test_Pin));
delay(1000);
}
}
float readMux(int channel)
{
for(int i = 0; i < 4; i ++)
{
digitalWrite(controlPins[i], channel >> i & 1);
}
delay(10);
return analogRead(SIG_Pin);
}
Loading
cd74hc4067
cd74hc4067