non riesco a leggere una seriale con arduino

ciao a tutti,
un po’ di tempo fa, ho aperto un 3d per cercare di risolvere un problema di lettura di uno strumento che comunica con il pc tramite una seriale.
adesso sto provando una cosa analoga, ma con un altro tipo di strumento e non ne vengo nuovamente a capo!
ho applicato gli stessi consigli, che allora hanno funzionato, ma qui niente da fare, quindi ho aperto un nuovo 3d, poichè l’altro era vecchio di 4 mesi.

la situazione è la seguente: strumento che analizza l’aria e manda i dati al pc, tramite una seriale. se collego il pc ed apro hyper terminal (pc con winxp), basta che imposto il collegamento a 9600, n, 8, 1 e subito vedo scorrere le stringhe di testo. infatti ogni secondo lo strumento sputa fuori una stringa composta dalla data, l’ora e tutti i parametri rilevati, separati da una virgola.
bene, vorrei leggere lo strumento con arduino, in modo da renderlo più trasportabile.
ho preso un adattatore max232 e l’ho collegato allo strumento e ad arduino, secondo lo schema seguente:

ma sul monitor seriale non vedo niente.

lo sketch che uso è questo:

#include <SoftwareSerial.h>
#define RX 10  
#define TX 11  
SoftwareSerial sensor(RX, TX);

char incomingByte = 0;

void setup() {
  pinMode(RX, INPUT);
  pinMode(TX, OUTPUT);

  sensor.begin(9600);
  Serial.begin(9600);
  delay(1000);
}

void loop() {
  if (sensor.available()) {
    Serial.write(sensor.read());
  }
}

Tipo di sensore ? Una foto delle connessioni ? Il pin 10 a quale pin e collegato alla seriale ? Quale topico precedente ti stai riferendo ?

ExperimentUno: Tipo di sensore ? Una foto delle connessioni ? Il pin 10 a quale pin e collegato alla seriale ? Quale topico precedente ti stai riferendo ?

  • è un analizzatore di gas.
  • la connessione è una semplice DB9 femmina, non credo servano foto!
  • il pin 10 di arduino è collegato al pin TX dell'adattatore rs232 (la parte a dx del disegno sopra), poi internamente all'adattatore non so come sia collegato alla seriale...
  • il topic di cui parlavo è questo!

grazie!

Fai una prova, senza alcuno sketch caricato (setup() e loop() vuoti), collega l' adattatore MAX322 ai piedini 1 e 0 dell' Arduino., rispettando il verso. Quindi apri il monitor seriale a 9600 e vedi se il sensore da dei risultati. Se non c'è segnale è probabile che i collegamenti non sono corretti. Fai fede a questo per trovare l' RX e TX. Poi vedrai che ci sono dei numerini in rilievo sul connettore. Quando ti arrivano i dati corretti, allora potrai spostare sulla seriale software, rispettando RX e TX. Fai un riferimento del tipo 10 come lo zero e 11 come l' uno. Anche nel programma.

;D ;D ;D grazie mille!

avevo collegato male l'uscita seriale dello strumento con la seriale dell'adattatore rs232! avevo incrociato i pin 2 e 3. adesso il collegamento è questo:

|500x370

e funziona come mi hai indicato tu, ovvero leggo la stringa sul monitor seriale! adesso provo a spostare T ed R sui pin 10 e 11 ed utilizzare la libreria SoftwareSerial, per leggere la stringa ed immagazzinare i dati che mi interessano nelle variabili, da usare nello sketch!

grazie ancora!

ragazzi, devo chiedervi nuovamente il vostro aiuto… non riesco a leggere e quindi processare correttamente la stringa che viene sputata fuori dallo strumento.
se collego come sopra, direttamente ai pin 0 e 1 e carico uno sketch vuoto, le stringhe appaiono correttamente sul monitor seriale e sono una cosa del genere:

27/12/2016 15:04:00, 2.383e+02, 8.625e-01, 7.88e+02

una riga ogni tot secondi, come impostato sullo strumento.
quello che vorrei fare è immagazzinare ogni campo (es data, ora, valore1, valore2,… ) in una variabile, per scriverla in un file di testo e visualizzarla su un display.

con lo script che ho postato sopra, però, non funziona, in quanto vedo un carattere per linea, seguito dalla scritta “not available”… insomma sente correttamente la stringa, ma ovviamente non la sto “maneggiando” bene… riuscite a darmi una dritta?!?

grazie!

Diciamo che questo topico è completo. Se vogliamo parlare come decifrare la stringa ricevuta, comincia a capire come suddividere in campi e quali separatori sono riconosciuti validi.