Ciao a tutti, ho collegato un ESP8266 tramite softwareserial.
Il problema è che SoftwareSerial::available() mi da l'impressione che a volte restituisca true anche se in realtà dovrebbe essere false.
Per esempio, con questo banale sketch, ricevo correttamente i dati trasmessi tramite rete ma quando non sto ricevendo nulla dalla rete riceve comunque dei caratteri spurii anche se in realtà non riceve nulla.
#include <SoftwareSerial.h>
const int ESP8266_RXPIN=5;
const int ESP8266_TXPIN=6;
SoftwareSerial ESP8266(ESP8266_RXPIN, ESP8266_TXPIN);
void setup()
{
Serial.begin(9600);
ESP8266.begin(9600);
while(!ESP8266);
}
void loop()
{
while(ESP8266.available())
Serial.println((char)ESP8266.read());
}
Quando dico che riceve dei caratteri spurii anche se in realtà non vengono trasmessi dalla seriale intendo che essendomi collegato in parallelo al pin TX del modulo tramite un convertitore FTDI, nel terminale del modulo non vedo nessun carattere arrivare, mentre sul terminale dell'ide arduino (che passa attraverso lo sketch e quindi ESP8266.available()) vedo caratteri continui che arrivano.
Non riesco a capirne il motivo.
Ho provato anche a mettere una resistenza di pulldown (cosa che non ho mai dovuto fare prima e credo che non sia necessaria) ma il problema non si risolve.
Consigli?
Grazie.
Stefano