Seriale Arduino-C++

di il
7 risposte

Seriale Arduino-C++

Buongiorno a tutti,
mi trovo a chiedervi già un aiuto.
Ho un problema nella comunicazione seriale tra Arduino e C++.
Praticamente il mio ArduinoDue è collegato a 4 amplificatori che ricevono i dati di forza applicata su 4 celle di carico. Lato Arduino impacchetto i dati e il monitor seriale me li fa apparire in tempo reale.
Lato C++ dovrei leggere i dati scritti sulla porta seriale da Arduino e spacchettarli risalendo al valore di forza originario. Purtroppo però non riesco a fare ciò e mi appaiono solo simboli casuali senza possibilità di risalire ai valori originali

7 Risposte

  • Re: Seriale Arduino-C++

    Ti consiglio di fare un passo indietro e partire da basi precise: modifica il firmware su Arduino in modo che ti spedisca valori fissi, possibilmente ASCII, es "ABCDEF..." e verifica che i caratteri che leggi dall'altra parte corrispondano, prima con un hyperterminal e poi successivamente dal tuo programma.
  • Re: Seriale Arduino-C++

    candaluar ha scritto:


    Ti consiglio di fare un passo indietro e partire da basi precise: modifica il firmware su Arduino in modo che ti spedisca valori fissi, possibilmente ASCII, es "ABCDEF..." e verifica che i caratteri che leggi dall'altra parte corrispondano, prima con un hyperterminal e poi successivamente dal tuo programma.
    Grazie mille per la risposta. Avevo provato a fare come mi hai detto e i dati vengono letti. Anche mettendo un semplice serial.write con "OK" lo leggo in C++ ma dei dati numerici nemmeno l'ombra.
    Allegati:
    16315_cefbbecf7c2bbcdac63489c0b045408f.png
    16315_cefbbecf7c2bbcdac63489c0b045408f.png
  • Re: Seriale Arduino-C++

    A questo punto prova con dei dati binari, invece di spedire "OK" spedisci qualcosa del tipo "\1\2\3\4\5\6\7\8" e verifica sul tuo programma di ricevere 8 bytes con valori crescenti da 1 a 8.
    Naturalmente non puoi usare l'hyperterminal per vedere questi valori (se non ricordo male però si potevano "registrare" i bytes ricevuti, quindi eventualmente potresti poi andare a verificare con un editor esadecimale cos'hai ricevuto).
  • Re: Seriale Arduino-C++

    Non sono un espertone di Arduino però mi sembra che serial.write invia un byte alla volta mentre tu, sempre se ho capito bene fai un cast a unsigned long sull'array TXBuf. Secondo me devi snocciolare i dati su un array di byte.
  • Re: Seriale Arduino-C++

    Buongiorno, purtroppo non ho ancora risolto.
    Ma che voi sappiate con Arduino e la porta seriale è possibile fare questa cosa: vorrei che Arduino mi scriva sul monitor seriale i vari bytes delle letture delle celle di carico (e fin qui tutto ok). Nel momento però in cui dal PC (nel mio caso C++) riceve un carattere ben preciso (un char ad esempio, ma anche una string andrebbe bene) vorrei che si metta in ascolto ed in attesa di un nuovo comando, bloccando la scrittura delle forze delle celle di carico.
    Ho cercato come avvenga la comunicazione seriale, ma non capisco se sia possibile creare un qualcosa di Bidirezionale. Se mentre scrive i dati che voglio da C++ gli butto sul monitor un carattere per comandare una nuova funzione, lui lo riesce a riconoscere? O quando scrive, scrive e basta e non posso inviargli nulla?
    Grazie per tutti quelli che mi vorranno aiutare e scusatemi.
  • Re: Seriale Arduino-C++

    Devi implementare un protocollo di comunicazione in cui il pc manda dei comandi e riceve delle risposte dal dispositivo. Puoi implementare il tuo proprio protocollo o implementare protocolli già esistenti come Modbus (anche se non so de questo può andare bene per la tua problematica)
  • Re: Seriale Arduino-C++

    candaluar ha scritto:


    Devi implementare un protocollo di comunicazione in cui il pc manda dei comandi e riceve delle risposte dal dispositivo. Puoi implementare il tuo proprio protocollo o implementare protocolli già esistenti come Modbus (anche se non so de questo può andare bene per la tua problematica)
    Grazie mille...almeno ora ho qualche spunto nuovo su cui provare a lavorare. Come mai pensi non possa andare bene per me? Ho cercato online e se ho capito bene si tratta di un protocollo con annessa libreria da integrare ad Arduino, giusto?
Devi accedere o registrarti per scrivere nel forum
7 risposte