頁:
[1]
[Arduino] 溫控及MQ9感測風扇
本帖最後由 snowflying 於 2016-4-14 06:44 PM 編輯#include <SoftwareSerial.h>
#include <Wire.h> //DHT11函式
#include <LiquidCrystal_I2C.h> //LCD函式
#define BUZZER_PIN 7
#define DHT11_PIN 2 //DHT11定義接腳
#include <dht.h>
dht DHT;
int sensorWaarde; //MQ9
float vol; //MQ9
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
const byte LEFT1 =5; //馬達接腳設定
const byte LEFT2 =6;
void setup () {
Serial.begin(9600);
pinMode(BUZZER_PIN,OUTPUT);
pinMode(LEFT1,OUTPUT);
pinMode(LEFT2,OUTPUT);
lcd.begin(20,4);
lcd.backlight();
lcd.print("Temperature C");
lcd.setCursor(0,1);
lcd.print("Humidity %");
lcd.setCursor(0,2);
lcd.print("Waarde PPM");
}
void loop() {
sensorWaarde = analogRead(0); //MQ9程式碼
vol = (float)sensorWaarde/1024 * 5.0;
Serial.print("Waarde: "); Serial.print(sensorWaarde,DEC);
Serial.print(", Voltage: "); Serial.println(vol, 1);
lcd.setCursor(14,2);
lcd.print(sensorWaarde);
int chk = DHT.read11(DHT11_PIN);
if(chk==0){
lcd.setCursor(14,0);
lcd.print(DHT.temperature,0);
lcd.setCursor(14,1);
lcd.print(DHT.humidity,0);
}
delay(2000);
if(sensorWaarde>150){
digitalWrite(BUZZER_PIN,HIGH);
}
else {
digitalWrite(BUZZER_PIN,LOW);
}
if(DHT.temperature>=23 or sensorWaarde>=70){
int i = 50;
analogWrite(LEFT1, i);
analogWrite(LEFT2, 0);
}
else if (DHT.temperature>=25 or sensorWaarde>=100){
int i = 100;
analogWrite(LEFT1,i);
analogWrite(LEFT2,0);
}
else if (DHT.temperature>=28 or sensorWaarde>=150){
int i = 150;
analogWrite(LEFT1,0);
analogWrite(LEFT2,i);
}
else if (DHT.temperature>=30 or sensorWaarde>=200){
int i = 250;
analogWrite(LEFT1,i);
analogWrite(LEFT2,0);
}
else {
analogWrite(LEFT1,0);
analogWrite(LEFT2,0);
}
}
程式卡關 材料有MQ9有毒氣體感測器,DHT11溫度感測器 ,直流馬達,L298n模組驅動馬達
問題一 目前這程式風扇沒辦法隨著溫度或是MQ9數值而改變風扇轉速
問題二 如果用switch迴圈 有沒有辦法判斷兩個範圍的變數值
請求各位大大幫幫忙!!{:38:}
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 1. 目測這個軟件不止會改變速度,還會改變風扇的方向。
2. Switch 沒法判斷,要用if...else. {:32:}。。。。。。。。。。。
頁:
[1]