各位版上的大大下午好
我是Arduino初心者,買了一個教學盒按表操課。
如果什麼都不改的話確實可以動作,但是,我覺得他的wifi連線動作太慢,
所以做了一些修改,結果最後把Serial.println這行註解掉後動作就不正常了。
原始程式碼如下
// Flag's Block 產生的草稿碼
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include 'data/webpages.h'
int resistor_of_skin;
unsigned long Time_counter;
int lie_value;
ESP8266WebServer _esp8266WebServer(80);
void handleRoot() {
#ifndef WEBPAGE_IN_PROGMEM
_esp8266WebServer.send(200, 'text/html', mainPage);
#else
_esp8266WebServer.send_P(200, PSTR('text/html'), mainPage);
#endif
}
void handleNotFound() {
#ifndef WEBPAGE_IN_PROGMEM
_esp8266WebServer.send(404, 'text/html', errorPage);
#else
_esp8266WebServer.send_P(404, PSTR('text/html'), errorPage);
#endif
}
void handleSetting() {
#ifndef WEBPAGE_IN_PROGMEM
_esp8266WebServer.send(200, 'text/html', settingPage);
#else
_esp8266WebServer.send_P(200, PSTR('text/html'), settingPage);
#endif
}
void lie_return() {
_esp8266WebServer.send(200, u8'text/plain', String(lie_value));
}
void lie_transfer(int resistor_of_skin) {
resistor_of_skin = (resistor_of_skin < 10 ? 10 : ( resistor_of_skin > 40 ?
40 : resistor_of_skin));
lie_value = (map(resistor_of_skin, 10, 40, 180, 360));
}
// setup() 會先被執行且只會執行一次
void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
Time_counter = millis();
while (!WiFi.softAP(u8'LocalKing', u8'12345678', 7,false));
_esp8266WebServer.on('/lie', lie_return);
_esp8266WebServer.on('/', handleRoot);
_esp8266WebServer.onNotFound(handleNotFound);
_esp8266WebServer.on('/setting', handleSetting);
_esp8266WebServer.begin();
}
// loop() 裡面的程式會不斷重複執行
void loop() {
_esp8266WebServer.handleClient();
if (millis() + Time_counter > 1000) {
resistor_of_skin = analogRead(A0);
Serial.println(resistor_of_skin);
lie_transfer(resistor_of_skin);
Time_counter = millis();
}
我作了以下動作
1.把Time_counter全部拿掉,我覺得millis()+Time_counter似乎是多餘的。
應該只要留millis()就可以了。
執行正常,但是網頁資料傳輸還是慢。
2.註解//Serial.println(resistor_of_skin);
此時,wifi的ID就完全看不到了。
把註解拿掉,Wifi的ID又可以看到了。
請問高手這是發生什麼事,不應該註解掉Serial.println Wifi就看不到阿
煩請解惑感恩
--