Leggere e memorizzare dati da RS232 con Arduino Mega 2560

3 pagine fa avevamo discusso di C5 che mi mandava tutto in corto... poi ho verificato che il corto era altrove. Ora stiamo facendo un pò di confusione con i condensatori :slight_smile: facciamo rifermento sempre al datasheet ufficiale maxim e quindi allo schema postato da te. Era C5 a mandarmi in corto tutto.
Comunque per tagliare la testa al toro lo rifaccio cosi almeno se anche questo da gli stessi segnali sappiamo che il problema è altrove. Il mio problema ora è che ho finito i C da 1uF... secondo te se li metto da 10 fa lo stesso?

ci vogliono da 10uF, tutti.
solo sul datasheet li usano da 1uF.

Scusa la domanda, tx-gnd lo misuri su tensione continua ?,

Ho fatto entrambe le prove (ormai non so più dove battere la testa). Continua-pulsata mi da 0.8 mV alternata mi da 0.7V. Il tester è preciso, ho fatto le prove con alcune batterie, è un FLUKE 187.
Proprio sta cosa non me la spiego!

Rifatto tutto il circuito ma purtroppo non cambia nulla anzi, ora non su arduino non ricevo più nulla. Se però metto in corto i pin 13 e 14 stampa a serial monitor quello che gli mando.

Tanto lo so' che alla fine si scopre che c'era una bischerata... finisce sempre cosi'...
Allora...
stai lavorando sulla Serial normale.
il circuito e' a posto
le tensioni sullo strumento sono fasulle
il loopback cortocicuitando le uscite funziona

Non e' che nel connettore a 9 poli c'e' un ponticello tra due pin per far capire allo strumento e' collegato un'unita' esterna ?
In teoria dovrebbero esserci solo due collegamenti, GND e TX ( o Rx dipende da come la si vede ). ma a questo punto , date le tensioni errate che leggi, presuppongo che ci sia un controllo per attivare l'output dallo strumento , o ancora meglio la classica linea DTR o RTS che informa lo stato della periferica presente

Non ci avevo pensato.
Eccoti subito una foto del D9:
1 - NC
2 - Rx grigio
3 - Tx giallo
4 - (Data termina ready) marrone con ponticello al pin 6
5 - bianco GND
6 - (Data set ready) vedi pin 4
7 - Request to Send ponticellato con l'8
8 - Clear to send verde
9 - NC

Sulla pentapolare entrano tutti e 5 i segnali.
In ordine da sx a dx in senso orario:
1 - CTS
2 - DTR
3 - GND
4 - Rx
5 - Tx

Strano che DTR-DSR e RTS-CTS siano ponticellati tutti e due, pare quasi che non usi nessun handshake. O meglio, che non ci sia handshake e' quasi normale.... niente, divagavo.

Allora, dato che non sappiamo quali segnali possa usare, io collegherei cosi.

MAX232 - DB9 poli

14 -------- 4 DTR - Marrone
7 --------- 7 RTS - Verde
13 -------- 2 RX - grigio
GND ----- 5 Massa - Bianco

in piu' dovresti mettere a GND i pin 11 e 10 Del MAX232 in modo che l'uscita ( pin 14 e 7 ) vadano a +12Volts

Manca il collegamento TX, perche' non serve. e basterebbe solo il DTR o RTS, ma non si sa' ancora cosa possa usare lo strumento

Ho collegato come hai detto tu, situazione:
Tra massa e il pin2 della DB9 ci sono 7V
Tra massa e il pin4 della DB9 ci sono 8.3V
Tra massa e il pin7 della DB9 ci sono 9V

Sul max232:
pin 9 = 4.9V
pin10 = 0V collegato a massa
pin11 = 0V collegato a massa
pin12 = 19 mV

Ho provato a collegare il pin12 all'arduino sia su Rx1 che su Tx1 ma niente, non da segni di vita.
Ti quadra la cosa?

no, non mi quadra.
Pin4 DTR e pin7 RTS a 9volts. OK - Informa lo strumento che c'e' un collegamento
Pin2 del DB9 sarebbe l'RX.... puo esserci di tutto.. OK
pin9 del MAX..... PIN 9 Del MAX ? Che c'entra il pin9 del MAX. dovrebbe essere scollegato...

Perche' lo hai collegato a RX1 o TX1... Dovresti collegarlo a RX0, il SerialMonitor lavora li'

Avevo provato ad usare questo sketch:

void setup() {
  Serial.begin(1200);
  Serial1.begin(1200);
}

void loop() {
  if (Serial1.available()) {
    int inByte = Serial1.read();
    Serial.write(inByte); 
  }
}

Ora riprovo collegando i pin 0 o 1 con questo sketch:

void setup() {
  Serial.begin(1200);
}

void loop() {
  if (Serial.available()) {
    int inByte = Serial.read();
    Serial.write(inByte); 
  }
}

Però dovrebbe essere giusto 5V sul pin9 del max. Guardando lo schema, se non è collegato nulla all'8 in teoria va a 5V, no?

Usando il secondo sketch se collego il pin 12 del max232 a Rx non ho segni di vita, se lo collego a Tx mi scrive a serialmonitor quello che gli scrivo sulla barra.

Però dovrebbe essere giusto 5V sul pin9 del max. Guardando lo schema, se non è collegato nulla all'8 in teoria va a 5V, no?

Esatto. Solo che non riuscivo a capire che cosa c'entrasse una misurasul pin9.

Io non ho MEGA, ma di default non si chiamano Serial - Serial1 - Serial2 - Serial3 ?
E perche' l'hai chiamata Seriall ( che con l'eta avevo scambiato per un 1 ) se non c'e' unaprecedente assegnazione a questo nome ?

EDIT: Come non detto.. devo farmi gli occhiali

Infatti hai letto bene, l'ho chiamata Serial1 :slight_smile:
Non so se hai letto il secondo messaggio perchè abbiamo postato quasi in sincrono:

Usando il secondo sketch se collego il pin 12 del max232 a Rx non ho segni di vita, se lo collego a Tx mi scrive a serialmonitor quello che gli scrivo sulla barra.

Si, me ne ero accorto di aver letto bene e interpretato male.

A parte che non dovresti collegare il cavetto al TX, perche' qualche IC potrebbe essere permaloso.
Gli unici collegamento da fare verso Arduino sono.
GND e RX

perche' "se lo collego a Tx mi scrive a serialmonitor quello che gli scrivo sulla barra" .... boh, bella domanda, e' come se ci fosse qualche collegamento di troppo

Gli unici collegamento da fare verso Arduino sono.
GND e RX

E 5V giusto?

Si, scusa. il 5V ti serve per alimentare il MAX232

Mi sta venendo un dubbio atroce, il le tensioni le leggo tutte in continua... ma perchè la domanda di testato?
Il MAX232 me le fa uscire alternate???

Devi leggerle in Continua.
La domanda di testato riguardo quei valori assurdi era per capire se non avessi messo il tester in Vac

E' esattamente il mio circuito ma niente da fare =( nessun segno di vita! Su hyperterminal come inserisci la seriale inizia a leggere.

Ho trovato questo schema in rete, cosa ne dici? Lui tra l'altro se n'è fregato anche dei condensatori elettrolitici!