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 < 5; 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);
int Vout = sensorValue;
float voltage = (5.0 / 1024.0) * Vout;
float voltageIn = voltage / ((49400.0 / 33000.0)+1);
float resistance = (-47000 * (voltageIn - 2 )) / ((voltageIn)+ 3);
double temperature = 1 / ((1.0/298.0) + (1.0/3976.0) * log(resistance / 10000.0));
double temperatureC = temperature - 273;
Serial.print(Vout);
Serial.print(", ");
Serial.println(temperatureC);
delay(1000); // Add a delay to make readings more readable
}
}Loading
cd74hc4067
cd74hc4067