Comunicazione seriale tra Arduino Mega e modulo riproduttore MP3 indirizzabile

Salve a tutti, mi chiamo Massimo ed è la prima volta che utilizzo il forum. Premetto che sono un dilettante e che sto cercando di imparare sempre qualcosa di più. Ho deciso di esporre il mio problema nel forum dopo vari tentativi e ricerche in rete per trovare una qualche spiegazione o caso analogo che mi potesse aiutare nel risolvere il mio problema. Ho recentemente acquistato un modulo MP3 indirizzabile da Futura Elettronica FT862M da utilizzare in un mio progetto con Arduino MEGA nel quale si richiede in un dato momento di emettere un suono. Di seguito allego uno sketch minimale che ho preparato per provare la connessione tra Arduino e il modulo MP3. Molto probabilmente ho commesso qualche errore nell'utilizzo delle porte seriali. Qualcuno di voi sarebbe così gentile da darmi qualche dritta ? Saluti

// Utilizzo modulo riproduttore MP3 indirizzabile FT862M con Arduino MEGA R3

// Ho modificato il config.txt del modulo FT862M in questo modo:
// ECHO COMANDO  = 0     (eco comando inviato - 0=No, 1=Sì)
// ECHO COM ESTESO = 0     (eco esteso - 0=No, 1=Sì)

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2,3); // RX, TX

// Dichiarazione variabili
int buttonPin = 52; //pulsante connesso al pin 52
int buzzerPin = 53; //buzzer connesso al pin 53

// Variabili per antirimbalzo
int val = 0;
int vecchio_val = 0;
int stato = 0;

void setup() {
 mySerial.begin(9600);
 delay(1000);
 mySerial.println("p");
 
 pinMode(buzzerPin, OUTPUT);
 pinMode(buttonPin, INPUT);
 
}// close setup()

void loop() {
   // attende la pressione del tasto
   val = digitalRead(buttonPin); //legge il valore dell'input e lo conserva
   // Controlla se è accaduto qualcosa
   if ((val == HIGH ) && (vecchio_val == LOW)){
     stato = 1 - stato;
   }
   vecchio_val = val;
   // Se il tasto è stato premuto, inizia il conto alla rovescia
   if (stato == 1) {   
     // Suono 2
     mySerial.write('#');
     mySerial.print(2,DEC);
     mySerial.write('*');
     mySerial.write('P'); 
     delay(1000);
     //
     for (int i = 1; i < 5; i++){
       delay(800);
       tone(buzzerPin,1000,210); 
     }
     // Suono 5
     mySerial.write('#');
     mySerial.print('5');
     mySerial.write('*');
     mySerial.write('P');                     
     delay(1000);        
   }//fine if
   stato = 0;   
}//fine loop

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ...

... poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

Risolto, grazie.