查看完整版本: [Arduino] 馬達程式
頁: [1]

aa563214789 發表於 2016-4-11 08:48 PM

[Arduino] 馬達程式

本帖最後由 snowflying 於 2016-4-14 06:45 PM 編輯

我想做一個風扇能夠隨著溫度增加,風速也會增加,但不知道要怎麼寫,求各位大大相助!!~{:38:}<div></div>

superjoeliao 發表於 2016-4-11 09:09 PM

直流馬達你至少po出讓馬達動的程式吧

另外要如何抓溫度的程式寫好了嗎

aa563214789 發表於 2016-4-12 12:29 PM

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:43 PM

本帖最後由 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]