Usare un NE555 come timer esterno

Ciao a tutti ho caricato il seguente codice su due arduino

void setup() {
 Serial.begin(9600);

}

void loop() {
  Serial.println(millis());
  delay(500);
}

Fatti partire contemporaneamente dopo circa 200/300 secondi i due arduino differiscono di 1/2 secondi.
Usando due NE555 è possibile creare un timer esterno per ogni arduino che non accumuli ritardi?

Puoi usare il NE555 per generare un segnale di interrupt per entrambi gli Arduino e nella ISR incrementare un contatore (... che poi è il concetto su cui si basa millis() usando un timer interno).

Guglielmo

Dovresti usare un solo NE555 per fornire il clock a entrambi i microcontrollori. Se no, dovresti usare due quarzi al posto dei risuonatori ceramici montati di serie.

Datman:
Dovresti usare un solo NE555 per fornire il clock a entrambi i microcontrollori. Se no, dovresti usare due quarzi al posto dei risuonatori ceramici montati di serie.

Entrambe le soluzioni NON mi sembrano valide...
... la prima perché ti voglio a raggiungere un clock a 16 MHz, la seconda perché quarzo o non quarzo, comunque sulla lunga ci saranno delle differenze.

La soluzione più logica è quella che ho già suggerito :slight_smile:

Guglielmo

O far generare il clock ad un solo arduino e trasmetterlo all'altro
Oppure un solo impulso di sincronismo ogni tanto abbastanza frequente per non perdere passi, abbastanza rado da non appesantire

O altre millemila soluzioni, se ci spieghi cosa vuoi fare possiamo aiutarti nell'analisi del problema

Grazie a tutti delle risposte

Dicevo due NE555 in quanto i due arduino sono distanti e comunicano fra loro tramite moduli Lora, in pratica un modulo funziona per 500 millisecondi da trasmittente e dopo per 500 millisecondi come ricevente.

I due arduino sono sincronizzati in modo che mentre uno è trasmittente l’altro si comporta da ricevente e viceversa, il codice funziona ma più passano i secondi più i due arduino si desincronizzano

Se sono distanti devi introdurre TU un meccanismo di sincronizzazione ... un segnale che uno da all'altro per resettare il tempo e sincronizzarsi. Qualunque altra soluzione, alla lunga, provocherà comunque un ritrado tra i due.

Guglielmo

Trasmetti un impulso lungo all'inizio: quando il ricevitore lo riconosce per la sua durata, prende il riferimento temporale.

Grazie mille dell'aiuto adesso funziona, l'ultimo segnale che invia il trasmittente prima di passare alla modalità ricevitore dice all'altro arduino di passare in modalità trasmittente

Quindi modalità "Walky Talky" :slight_smile: