sempre seriale: leggere e scrivere degli array

ho qualche problema su come far scambiare degli array tra di loro
trasferisco un arrai tramite serial.write(buffer,lenght) e ricevo con serial read.
per ricevere questo array devo fare un ciclo if for per poterlo scrivere oppure dentro il mio array di ricezione dall´altra parte?
inoltre non ho ben capito la funzione serial .available ossia la sintassi if serial.available() >0 cono serial.available ().
serial.available () =0 non mi funziona, la volevo usare per testare se la seriale e´libera prima di trasmettere.

Serial.available() è una funzione che restituisce il numero di byte presenti nel buffer seriale.
Si usa fare un test con

Serial.available() > 0

per verificare se esistono byte arrivati dalla seriale ed andare così a leggerli.

Se non è arrivato nulla, Serial.available() restituisce 0.

Per spedire e ricevere l'array devi fare un for spaziando sul intero index.
Ciao Uwe

uwefed:
Per spedire e ricevere l'array devi fare un for spaziando sul intero index.
Ciao Uwe

Vero in parte, perché in ricezione può capitare di non sapere a priori quanti byte siano stati spediti, per cui si usa ciclare con un while finché ci sono caratteri disponibili.

if (Serial.available()) { //implicito: sarebbe if (Serial.available() > 0))
  do {
    byte a = Serial.read(); 
    //qui con quel carattere ci fai quel che ti pare
  } while (Serial.available());
}

grazie mille per le info, quindi nel mio caso che sto facendo comunicare due arduini ed ho creato un array di grandezza identica di dati da spedire.
quindi posso fare un ciclo di for per riempire lárray che ricevo.
Dite che e´il caso di spedire un carattere di inizio e fine trasmissione per ogni array? e di gestirlo insieme al serial available?

makalu1:
grazie mille per le info, quindi nel mio caso che sto facendo comunicare due arduini ed ho creato un array di grandezza identica di dati da spedire.
quindi posso fare un ciclo di for per riempire lárray che ricevo.
Dite che e´il caso di spedire un carattere di inizio e fine trasmissione per ogni array? e di gestirlo insieme al serial available?

Se la trasmissione è su breve distanza, a basse velocità e di pochi byte, puoi semplicemente spedire i dati senza preoccuparti di creare un protocollo. Se devi spedire tanti byte, su distanze lunghe e ad alte velocità potresti prevedere un byte di inizio trasmissione, uno di fine e magari anche una somma di controllo (tipo CRC).

per il momento ho da spedire un array di dati da una decina di elementi.
la distanza invece e´di 200m e devo interfacciarmi con una rs422.
devo pilotare dei motori con dei ponti h per pilotare una telecamera subacquea filoguidata ]:smiley:

makalu1:
per il momento ho da spedire un array di dati da una decina di elementi.
la distanza invece e´di 200m e devo interfacciarmi con una rs422.
devo pilotare dei motori con dei ponti h per pilotare una telecamera subacquea filoguidata ]:smiley:

Beh, un CRC finale metticelo, non si sa mai.