Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 2828|回復: 16
打印 上一主題 下一主題

關於arduino溫度感測SD Card警示音語法問題

[複製鏈接]
1#
發表於 2017-8-28 11:22:33 | 顯示全部樓層
多宣告一個變數即可
unsigned char Stop = 0;
void loop() {

  if (chk == 0) {
    Serial.println((float)DHT11.temperature, 2);
  } else {
    Serial.println("Sensor Error");
  }

  delay(5000);
   if(Serial.available()) {
      char c = Serial.read();
      if(c == '1') Stop = 1;
   }
   if((DHT11.temperature>=27) && (Stop == 0))  {
               
        IncreaseVolume();
        SpecifyMusicPlay(1);
    } else {
        PlayPause();
    }
      
}

注意...一旦按下 1, 就再也不會叫了, 除非重開機
2#
發表於 2017-8-29 08:22:51 | 顯示全部樓層
要全貼出來才看的到問題
3#
發表於 2017-8-29 10:24:16 | 顯示全部樓層
void loop() {是多餘的, 去掉第二個 loop 即可...

也就是
#ifdef FIRMATA_SERIAL_FEATURE
  serialFeature.update();
#endif

if (chk == 0) {
Serial.println((float)DHT11.temperature, 2);
4#
發表於 2017-8-29 10:25:41 | 顯示全部樓層
還有...你的程式應該一大堆都是多餘的..
等到測試ok 後, 再一併刪掉
5#
發表於 2017-8-29 10:29:10 | 顯示全部樓層
另外, 你也忘了宣告變數
unsigned char Stop = 0;
6#
發表於 2017-8-29 15:55:18 | 顯示全部樓層
其實做法差不多就是那樣
  boolean buttonVal = digitalRead(buttonPin);
   if (buttonVal == LOW && temp>=27 && _playMusic){
     PlayPause();
     _playMusic= false;
     return true;
    }
    else{
     return false;
    }
但它的後面那一段又沒拿掉
if(DHT11.temperature>=27 && _playMusic){
}else {
}

另外. 為什麼你們都用 Firmata 這個範例去改?
而且沒看到 led控制?(除了 Firmata 本身)
7#
發表於 2017-8-29 17:15:16 | 顯示全部樓層
不如一步步來
你改好了嗎?可以動了嗎?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-2 22:42 , Processed in 0.207288 second(s), 6 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表