請問改成這樣是對的嗎 R=digitalRead(red); if(R1){ if(R == LOW){ Serial.write(0); R1=0; digitalWrite(led,LOW); } } else{ if(R==HIGH){ Serial.write(1); R1=1; digitalWrite(led,HIGH); } } if(digitalRead(button) == HIGH){ if(digitalRead(led) == HIGH){ digitalWrite(led, LOW); delay(500); } else{ digitalWrite(led, HIGH); delay(500); } } 紅外線那邊可以用按鈕控制燈(無論有沒有感應到) APP端連接到藍芽就會黑屏然後無回應 是不是因為很多感應器都用在一起的關係 |
本帖最後由 0983676450 於 2018-3-21 22:09 編輯 痾 我不清楚我也是亂試的跟我這邊溫度差不多就想說對了 說明書是這個媽? 我不知道要截哪個 |
不會吧!?怎麼可能是30這種數字? |
本帖最後由 0983676450 於 2018-3-21 21:33 編輯 謝謝已經成功了 我將溫度除以30就正常了多了 |
本帖最後由 超新手 於 2018-3-21 19:37 編輯 而且 97 是煙霧值, 98 是濕度, 99 是温度 App 寫錯了 而且為什麼 app 端要把值除以 100? 因為我沒規格書, 所以我不確定要怎麼改才是對的 簡單一點,就直接改成除以10 就可以了 |
成功了謝謝 可是為甚麼 我溫度變6.14 濕度4.09 這是哪邊要改?? |
另外,SoftwareSerial i2cbt(rx,tx)。 所以10 和 11 也要對調,請自己確認一下 |
應該有4個地方要改 |
那你就要把程式中, 所有的Serial 改成I2CBT |
TXD 10 RXD 11藍芽 我是使用HC-06 拿到的時候被告知是115200的 話說我DHT11的 VCC是接在3.3V那會影響嗎 |
1.你的藍牙是接那根腳?0 和 1嗎? 2. 你的藍牙鮑率是 115200嗎? 一般如果使用 HC-05,預設是9600 |
你沒照抄吧?最後那個紫色發送長度1位元之數字應該是97 |
本帖最後由 0983676450 於 2018-3-21 14:18 編輯 不好意思 我抄了3樓的APP可是我溫度與濕度都不會動 在求解惑 還是我搞錯方向了?? Arduino #include <SoftwareSerial.h> SoftwareSerial I2CBT(10,11); #include <DHT.h> #define DHTTYPE DHT22 const int smoke=2; const int tem=3; DHT dht(tem, DHTTYPE); void setup() { Serial.begin(115200); pinMode(smoke,INPUT); pinMode(tem,INPUT); dht.begin(); } void loop() { int x = analogRead(smoke); int y = dht.readHumidity(); int z = dht.readTemperature(); int a = dht.readTemperature(true); byte Data[12]; Data[0]=97; Data[1]=x/256; Data[2]=x%256; Data[3]='b'; Data[4]=y/256; Data[5]=y%256; Data[6]='c'; Data[7]=z/256; Data[8]=z%256; Data[9]='d'; Data[10]=a/256; Data[11]=a%256; if (Serial.available() > 0) { char val = Serial.read(); switch (val) { case 97: for (int i = 0 ; i < 12 ; i++) { Serial.write(Data[ i]); } break; } } } |
你這樣寫當然會當機。他寫的 app 程式在3樓 |
本帖最後由 0983676450 於 2018-3-20 23:44 編輯 不好意思 我APP選擇藍芽那會直接黑頻當掉 我找不出問題 拜託 arduino #include <SoftwareSerial.h> SoftwareSerial I2CBT(10,11); #include <DHT.h> #define DHTTYPE DHT22 const int smoke=2; const int tem=3; DHT dht(tem, DHTTYPE); void setup() { Serial.begin(115200); pinMode(smoke,INPUT); pinMode(tem,INPUT); dht.begin(); } void loop() { int x = analogRead(smoke); int y = dht.readHumidity(); int z = dht.readTemperature(); int a = dht.readTemperature(true); byte Data[12]; Data[0]=97; Data[1]=x/256; Data[2]=x%256; Data[3]='b'; Data[4]=y/256; Data[5]=y%256; Data[6]='c'; Data[7]=z/256; Data[8]=z%256; Data[9]='d'; Data[10]=a/256; Data[11]=a%256; if (Serial.available() > 0) { char val = Serial.read(); switch (val) { case 97: for (int i = 0 ; i < 12 ; i++) { Serial.write(Data[ i]); } break; } } } |
我用方法2 成功了感謝大哥! |
Library 衝到了吧 1) 先把其中一個目錄(例如 DHT_sensor_library)搬移到其他地方 重開 Arduino IDE, 再重新編譯程式 2) 如果 1) 不行 , 就把 DHT_sensor_library 移動回原來的目錄, 把 DHT_sensor_library_master 搬移到其他地方 重開 Arduino IDE, 再重新編譯程式 |
不好意思我複製你的arduino 的程式碼後出現 該怎麼解決? |
001.PNG (5.8 KB, 下載次數: 565)
那有兩個”如果…則…否則”的話呢 (前面的幾個)if(){ if(){ if(){ { else{ } if(){ } else{ } } } 這樣嗎 |
.“兩個都要加” 不過....... 其實加一個在”如果…則…否則”的下面即可 相當於“兩個都要加” 也就是 if(){ //加在這 }else{ //加在這 } 其實等於 if(){ }else{ } //加在這 |
小黑屋|手機版|Archiver|機器人論壇 from 2005.07
GMT+8, 2025-5-5 14:09 , Processed in 0.347538 second(s), 11 queries , Apc On.
Powered by Discuz! X3.2
© 2001-2013 Comsenz Inc.