#include <Arduino.h>
// Пины для управления мультиплексором
#define S0 2
#define S1 3
#define S2 4
#define S3 5
// Аналоговый пин для чтения сигнала с мультиплексора
#define MUX_OUT_PIN 35
// Функция для установки канала мультиплексора
void setMultiplexerChannel(int channel) {
digitalWrite(S0, bitRead(channel, 0));
digitalWrite(S1, bitRead(channel, 1));
digitalWrite(S2, bitRead(channel, 2));
digitalWrite(S3, bitRead(channel, 3));
}
void setup() {
Serial.begin(115200);
// Настройка пинов управления мультиплексором
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(MUX_OUT_PIN, INPUT);
}
void loop() {
// Выбираем канал // Выбираем канал мультиплексора для CO2 (например, канал 0)
setMultiplexerChannel(0);
// Чтение значения CO2 с выбранного канала мультиплексора
int16_t co2Value = analogRead(MUX_OUT_PIN);
float voltage = co2Value * (5.0 / 4095.0);
int co2 = (co2Value * 2); // Примерная формула для преобразования значения АЦП в PPM
Serial.println("---------");
Serial.println("Co2: " + String(co2) + " ppm");
Serial.println("Voltage: " + String(voltage) + " V");
Serial.println("---------");
delay(2000); // Задержка между чтениями
}
Loading
cd74hc4067
cd74hc4067