Конфликт между функцией задержки 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 вместо этого, но у меня та же проблема с ним.

0 ответов

Другие вопросы по тегам