作者:
yimean (溫柔殺手)
2020-07-26 13:22:41各位版上的大大下午好
我是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就看不到阿
煩請解惑感恩