인터페이스 유형별(UART,I2C) CO2값 읽기
I2C
#include <Wire.h>
#define Slave_adddress 0x41
#define CO2_READ_command 0x34
#define CO2_READ_and_test_command 0x02
void setup() {
Wire.begin();
Serial.begin(9600);
}
void loop() {
int CO2_value = 0;
Wire.beginTransmission(Slave_adddress); // transmit to slave address
Wire.write(CO2_READ_and_test_command); // transmit to register address
Wire.endTransmission(); // stop transmitting
Wire.requestFrom(Slave_adddress, 3); //from slave request 2byte
while ( Wire.available()) {
int CO2_high_value = Wire.read();
int CO2_low_value = Wire.read();
/* CO2_Self_test value = 85(DEC) : Sensor is nominal ,
CO2_Self_test value = 170(DEC): Sensor error */
int CO2_self_test = Wire.read();
CO2_high_value = CO2_high_value <<8;
CO2_value = CO2_high_value + CO2_low_value;
Serial.print("CO2_value : ");
Serial.print(CO2_value); //reading CO2 value
Serial.println(" PPM ");
}
delay(1000);
}UART
Serial Monitor
I2C
UART
Last updated