Конфликт между функцией задержки Arduino и SoftwareSerial
Кажется, у меня конфликт между SoftwareSerial и delay
функция на моем Arduino (GeekCreit куплен на Banggood). Я пытаюсь использовать SoftwareSerial для отправки AT-команд на ESP-01.
Когда я выполняю:
#include <SoftwareSerial.h>;
SoftwareSerial esp8266(8,9);
void setup() {
Serial.begin(9600);
while (!Serial) ;
esp8266.begin(9600);
esp8266.println("AT");
}
void loop() {
if(esp8266.available()) {
while(esp8266.available()) {
Serial.print(esp8266.read());
}
}
}
Все работает хорошо, команда AT отправляется, и я получаю ответ от моего ESP.
Но когда я добавляю задержку перед отправкой AT-команды, ничего не происходит: ни одна команда не отправлена, ни один ответ от ESP.
#include <SoftwareSerial.h>;
SoftwareSerial esp8266(8,9);
void setup() {
Serial.begin(9600);
while (!Serial) ;
esp8266.begin(9600);
delay(2000);
esp8266.println("AT");
}
void loop() {
if(esp8266.available()) {
while(esp8266.available()) {
Serial.print(esp8266.read());
}
}
}
Я что-то делаю не так, кто-то испытывал такую же проблему?
Я попытался использовать AltSoftSerial вместо этого, но у меня та же проблема с ним.