Salve a tutti, sto cercando di fare comunicare un ATmega328p standalone (8 Mhz oscillatore interno, 3.3V)
con un modulo ESP8266 (ESP-1).
Uso 2 Software Serial, per poter leggere sul monitor seriale le risposte ai comandi AT, attraverso un adattatore USB/Seriale.
Il problema è che non ricevo alcuna risposta ai comandi AT e all'avvio ricevo una serie di caratteri incomprensibili, come se ci fosse un problema di baudrate errato.
Riporto un riassunto su quello che ho fatto:
Alimentato tutto con regolatore di tensione 3.3V LM1117t;
Caricato bootloader di un pro Mini (8MHz 3.3V) modificando il low_fuses da 0xFF a 0xE2 nel file board.txt;
Per l'upload del bootloader e degli sketch, ho usato un arduino nano as ISP;
Uso la software serial al posto di quella fisica, visto che lavoro a 3.3V;
Il tutto è montato su breadboard;
Cambiato il baudrate del ESP8266 a 9600 baud;
Ormai sono due settimane che ci sbatto la testa e ho esaurito le idee sulle possibili cause, se poteste suggerimi soluzioni o test da fare ve ne sarei grato.
[code]
#include <SoftwareSerial.h>
SoftwareSerial esp(10, 11); // RX, TX
SoftwareSerial seriale(5, 6); // RX, TX
void setup() {
seriale.begin(9600);
esp.begin(9600);
seriale.println("Pronto");
esp.println("Pronto");
}
void loop() { // run over and over
if (esp.available()) {
seriale.write(esp.read());
}
if (seriale.available()) {
esp.write(seriale.read());
}
}
Standardoil:
Inoltre, se ricordo bene una sola seriale sw può essere attiva in ricezione, le devi scambiare esplicitamente con una .listen()
Esatto ... si possono creare quante SoftwareSerial si vogliono, ma sempre UNA sola può essere attiva in ricezione (... mentre entrambe possono trasmettere) !
Avete ragione, e lo sapevo anche, è stato un errore per cercare di postare una configurazione minima sul forum per cercare di evidenziare l'errore di trasmissione seriale.
Ho visto il megatopic ma credo centri poco con il mio problema, il modulo funziona correttamente un un arduino nano, ma collegato all' Atmega328p smette di funzionare.
Invio comando AT
AT5
-5⸮Invio comando AT
AT5)-5⸮Invio comando AT
A55=-5⸮Invio comando AT
AT6
-5⸮Invio comando AT
AT5)-5⸮Invio comando AT
AT6
)-5⸮Invio comando AT
AT5:⸮-5⸮Invio comando AT
AT56-5⸮Invio comando AT
A55=-5⸮Invio comando AT
AT5:⸮-5⸮Invio comando AT
AT55>-5⸮Invio comando AT