1.先上效果圖:
實現效果:arduino開發板每兩秒獲取A0引腳MQ135數據並顯示到OLED顯示屏中
MQ135接線圖:
煙霧傳感器模塊的VCC、GND分別連接到開發板的5V、GND。模塊的AO引腳連接到開發板的模擬引腳A0,模塊的DO引腳連接到開發板的數字引腳2。
OLED顯示屏接線圖:
OLED屏的VCC和GND分別連接開發板的3.3V和GND,OLED屏的SDA和SCL分別連接開發板A4和A5。
燒錄代碼前先安裝驅動庫:
OLED顯示屏驅動庫非常多,本篇我們使用兩個庫:「Adafruit_SSD1306」和「Adafruit_GFX」。在Arduino IDE中點擊「項目」—「加載庫」—「管理庫」,分別查找選擇最新版本進行安裝。
arduino燒錄代碼:
/* * MQ135 + OLED顯示 */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <Arduino.h> #define Sensor_AO A0 #define Sensor_DO 2 #define OLED_RESET 4 Adafruit_SSD1306 display(128, 64, &Wire,OLED_RESET); unsigned int sensorValue = 0; void setup() { pinMode(Sensor_DO, INPUT); Serial.begin(9600); display.begin(SSD1306_SWITCHCAPVCC,0x3C); display.setTextColor(WHITE);//開像素點發光 display.display(); // 開顯示 } void loop() { display.clearDisplay();//清屏 sensorValue = analogRead(Sensor_AO); Serial.print("Sensor AD Value = "); Serial.println(sensorValue); display.setTextSize(1); //設置字體大小 display.setCursor(35, 5);//設置顯示位置 display.println("-Air quality-"); display.setTextSize(2);//設置字體大小 display.setCursor(15, 30);//設置顯示位置 display.println(sensorValue); display.display(); // 開顯示 if (digitalRead(Sensor_DO) == LOW) { Serial.println("Alarm!"); } delay(2000); }
參考自:
Arduino提高篇11—煙霧傳感器MQ-2:https://blog.csdn.net/TonyIOT/article/details/103380128
Arduino提高篇01—點亮OLED顯示屏:https://blog.csdn.net/TonyIOT/article/details/96367511
MQ135傳感器詳細資料:http://www.icdemi.com/MQ-135_97675.html