Vince verhoeven
2015-12-21 05:32:23 UTC
我試圖在整個週末內解決此問題,但沒有成功,我決定將其發佈在這裡。真的很感謝您。
問題
Wi-Fi模塊會激活直流電動機並使它運行3秒鐘,但是當3秒後直流電動機停止,Wi-Fi模塊和顯示屏不再響應。它只能工作一次。 (按下重置按鈕後,會發生同樣的事情。)
問題
是什麼原因導致這種干擾?對電路有什麼建議嗎?(由於我不擅長繪製原理圖,因此包含了Fritzing圖)
#include <SoftwareSerial.h>#include <LiquidCrystal.h>LiquidCrystal lcd(12,11,5,4,3,2); SoftwareSerial ESP8266(9,8); // RX = 8 zh TX = 9#define DEBUG trueboolean FAIL_8266 = false; int LED = 13; // led op 13int secondeAan = 3000; String my_AP_SSID =“ myID”; String my_AP_Pass =“ myPass”; void setup(){//-stel引入-pinMode(LED,OUTPUT); //-LCD scherm-lcd.begin(16,2); lcd.clear(); lcd.setCursor(0,1);做{ESP8266.begin(115200); //開始通信esp8266 //等待串行監視器啟動while(!Serial); lcd.clear(); lcd.print(“ --- Start ---”); ESP8266.print(“ AT \ r \ n”);延遲(500);如果(ESP8266.find(“ OK”)){FAIL_8266 = false; sendData(“ AT + RST \ r \ n”,4000,DEBUG); sendData(“ AT + CWMODE = 3 \ r \ n”,2000,調試); sendData(“ AT + CWJAP = \”“ + my_AP_SSID +” \“,\”“ + my_AP_Pass +” \“,9,4 \ r \ n”,2000,調試); sendData(“ AT + CIFSR \ r \ n”,2000,DEBUG); sendData(“ AT + CIPMUX = 1 \ r \ n”,2000,調試); sendData(“ AT + CIPSERVER = 1,80 \ r \ n”,2000,DEBUG); }其他{lcd.clear(); lcd.setCursor(0,1); lcd.print(“模塊無響應。”);延遲(500); FAIL_8266 = true; }} while(FAIL_8266);} void loop(){//如果(ESP8266.find(“ + IPD,”)){,獲取可從串行端口讀取的字節(字符)數
lcd.clear(); lcd.print(“ Nieuwe connectie”); //-sluit connectie-motorToggle(); sendData(“ AT + CIPCLOSE = 0 \ r \ n”,100,調試); sendData(“ AT + CIPCLOSE = 1 \ r \ n”,100,調試); sendData(“ AT + CIPCLOSE = 2 \ r \ n”,100,調試); }} void motorToggle(){digitalWrite(LED,HIGH); lcd.clear(); lcd.print(“ eten gegeven”);延遲(secondeAan); digitalWrite(LED,LOW); delay(200);}字符串sendData(字符串命令,const int超時,布爾調試){字符串響應=“”; ESP8266.print(命令); //將讀取的字符發送給esp8266 long int time = millis(); while((time + timeout)> millis()){而(ESP8266.available()){char c = ESP8266.read();響應+ = c;如果(調試){lcd.clear(); lcd.print(response); }返迴響應;}
Uno可以為esp8266提供3.3V電源嗎?應該從5V開始使用3.3V穩壓器。和一些非常大的電容器。該參考可能會有所幫助:http://iot-playground.com/2-uncategorised/17-esp8266-wifi-module-and-5v-arduino-connection。乾杯!
@MikaelPatel感謝您的評論!您認為這會引起干擾嗎? esp8266在直流電動機不運行的情況下正常工作
是的,超出3.3v穩壓器功能可能是一個問題。您還可以在電動機端子之間或在每個端子與罐之間放置一個小的陶瓷圓盤電容器。過去認為抑制低頻模擬RC齒輪的干擾是必要的,但在2.4 GHz時可能要小一些,但仍然不是一個壞主意。
您確定這是硬件問題而不是軟件問題嗎?您可以發布一些示例代碼嗎?根據提供的信息,不可能知道導致問題的電動機是否確實存在。
由於電動機是開環運行的,因此只要在假設仍然存在的軟件運行時斷開電動機的連接,就應該弄清是硬件還是軟件問題。
@ChrisStratton MattClark我猜這是硬件問題,因為當我斷開為直流電動機供電的電池時,一切正常。我將arduino代碼添加到我的帖子中
電池接線在圖中看起來很奇怪,是否正確?用開路或虛設電阻器更換電動機,以消除這種情況。 FET和電阻是否按預期工作?可以用DMM檢出嗎? 2k2電阻應將UNO的消耗限制為〜2mA。