Salvataggio segnale radio 433

Ciao a tutti,
Scrivo per chiedere una delucidazione sull’utilizzo delle radiofrequenze, dato che sto impazzendo.
Mi spiego: ho idea di fare un pannello di controllo molto semplice per il controllo delle luci della mia stanza, dove ho montato un porta frutto con 3 interruttori touch con tanto di radiocomando. Il radiocomando lavora con frequenza a 433MHz, di conseguenza ho acquistato un ricevitore e un trasmettitore 433 compatibile con arduino. Dato che non sapevo da che parte cominciare ho copiato e modificato degli sketch trovati online per adeguarli alle mie esigenze, in modo da apprendere il segnale dal radiocomando e trasmetterlo alla pressione di un tasto su arduino.
Qui incontro un problema: se tolgo alimentazione ad arduino, ovviamente le variabili tornano ai valori iniziali e tutto va perso, dovendo riconfigurare ogni volta i segnali. Volevo risolvere il problema salvando i valori su una SD o nella EEPROM.
Qui mi nasce il vero problema, per cui sto scrivendo qui, ovvero che non riesco a capire come funziona il salvataggio delle frequenza o quale variabile va ad identificare il segnale stesso.

Qualcuno gentile e paziente può spiegarmi come funziona?

Allego lo sketch completo (che va a comandare solo interruttori) comprensivo di DHT e RTC che stampano i propri dati sull’LCD

trasric2puls3.ino (8.94 KB)

Ciao! Nel tuo codice esistono le funzioni void listenForSignal1() e void listenForSignal2() che ricevono e memorizzano il segnale in un array, e sembra che non facciano altro. Adesso il segnale è sempre lo stesso non hai bisogno di leggerlo sempre per poi trasmetterlo.

Quindi ti crei un programma con solo le funzioni void listenForSignal1(), nella riga dove inserisce il dato nell'array, stampi il valore sul serial monitor e ti scrivi la sequenza di 255 valori.

Poi nel tuo programma ci devono essere solo le funzioni send per trasmettere, e allora nel programma avrai l'array che inizializzerai con i valori stampati su seriale e poi su carta. Non c'è bisogno di leggere ogni volta il segnale è sempre quello. In questo modo nel programma hai l'array contente i valori da trasmettere e non ha bisogno di salvarli in nessun altra parte.

Ripeto, stampa e e scrivi su carta i valori degli array della funzione void listenForSignal1(). Poi elimina dal programma tutte le funzioni tranne quelle che trasmettono, e inizializza l'array con i valori che hai letto.

Io in teoria avevo intenzione di lasciarli, in modo da avere la possibilità di aggiungere altri segnali, per andare a comandare in futuro altre cose, ma pensandoci bene, alla fine dovrò sempre andare a modificare il codice per inserire nuovi pulsanti, quindi faccio come mi dici tu che è la soluzione più semplice.

comunque è pur sempre un casino perché ho due array uno high e uno low che sono mooolto lunghi e cambiano sempre. Ho fatto diversi tentativi e dopo un po' di fatica ce l'ho fatta. Grazie dei consigli!!