|
在本篇文章中,我们将Gravity红外二氧化碳CO2传感器与Arduino连接,测量空气中的的CO2浓度PPM值。
所需的组件 ● Arduino Nano R3开发板 ● Gravity Infrared CO2 传感器模块 ● 0.96寸SPI OLED显示屏模块
Gravity红外二氧化碳传感器 Gravity红外二氧化碳传感器(Infrared CO2 Sensor)是目前一款高精度模拟红外CO2传感器。红外CO2传感器带有一个3针连接器。该传感器基于非色散红外(NDIR)技术,具有更好的选择性和无氧依赖性。它结合了温度补偿和辅助DAC输出。
该传感器的有效测量范围为0至5000ppm,精度为±50 ppm+3%。该红外二氧化碳传感器可用于暖通空调、室内空气质量分析、工业过程以及安全防护分析、农业和畜牧业生产过程分析。
OLED是一种自发光技术,通过在两个导体之间放置一系列有机薄膜而设计。
代码 - int sensorIn = A4;
- #include <SPI.h>
- #include <Adafruit_GFX.h>
- #include <Adafruit_SSD1306.h>
- #define SCREEN_WIDTH 128 // OLED display width, in pixels
- #define SCREEN_HEIGHT 64 // OLED display height, in pixels
- // Declaration for SSD1306 display connected using software SPI (default case):
- #define OLED_MOSI 9
- #define OLED_CLK 10
- #define OLED_DC 11
- #define OLED_CS 12
- #define OLED_RESET 13
- Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,
- OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
- void setup(){
- Serial.begin(9600);
- // Set the default voltage of the reference voltage
- analogReference(DEFAULT);
- display.begin(SSD1306_SWITCHCAPVCC);
- display.clearDisplay();
- display.display();
- }
- void loop(){
- //Read voltage
- int sensorValue = analogRead(sensorIn);
- // The analog signal is converted to a voltage
- float voltage = sensorValue*(5000/1024.0);
- if(voltage == 0)
- {
- Serial.println("Fault");
- }
- else if(voltage < 400)
- {
- Serial.println("preheating");
- }
- else
- {
- int voltage_diference=voltage-400;
- float concentration=voltage_diference*50.0/16.0;
- // Print Voltage
- Serial.print("voltage: ");
- Serial.print(voltage);
- Serial.println("mv");
- //Print CO2 concentration
- Serial.print("CO2 Concentration: ");
- Serial.print(concentration);
- Serial.println("ppm");
- display.setTextSize(2);
- display.setTextColor(WHITE);
- display.setCursor(18,43);
- display.println("CO2");
- display.setCursor(63,43);
- display.println("(PPM)");
- display.setTextSize(2);
- display.setCursor(28,5);
- display.println(concentration);
- display.display();
- display.clearDisplay();
- }
- delay(2000);
- }
复制代码
|