頁:
[1]
[Arduino] 馬達程式
本帖最後由 snowflying 於 2016-4-14 06:45 PM 編輯我想做一個風扇能夠隨著溫度增加,風速也會增加,但不知道要怎麼寫,求各位大大相助!!~{:38:}<div></div> 直流馬達你至少po出讓馬達動的程式吧
另外要如何抓溫度的程式寫好了嗎
superjoeliao 發表於 2016-4-11 09:09 PM static/image/common/back.gif
直流馬達你至少po出讓馬達動的程式吧
另外要如何抓溫度的程式寫好了嗎
#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 =30;
analogWrite(LEFT1,0);
analogWrite(LEFT2,i);
}
if (DHT.temperature>=25 or sensorWaarde>=100){
int i = 70;
analogWrite(LEFT1,i);
analogWrite(LEFT2,0);
}
if (DHT.temperature>=28 or sensorWaarde>=150){
int i = 120;
analogWrite(LEFT1,i);
analogWrite(LEFT2,0);
}
if (DHT.temperature>=30 or sensorWaarde>=200){
int i = 170;
analogWrite(LEFT1,i);
analogWrite(LEFT2,0);
}
else {
analogWrite(LEFT1,0);
analogWrite(LEFT2,0);
delay(5000);
}
}
設定這樣沒辦法隨著溫度風速跟著變化...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div> 本帖最後由 superjoeliao 於 2016-4-13 08:44 PM 編輯
aa563214789 發表於 2016-4-12 12:29 PM static/image/common/back.gif
#include
#include //DHT11函式
#include //LCD函式
一般來說溫度值會透過A to D 變成 可變化的數值
之後得到溫度變化後在經過轉換函數得到要輸出到馬達的直流電壓值,
最後在透過D to A將直流電壓值轉換成類比訊號傳道放大器去驅動馬達
這就是基本的原理...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁:
[1]