Comunicazione seriale con pin0 e pin1... dubbio da newbie...

Ciao a tutti
stavo pensando di instaurare una comunicazione seriale (RS232) con un altro dispositivo (al momento uso la USB), ho visto che è possibile usare qualsiasi pin per farlo (includendo una libreria SoftwareSerial), ma dato che iniziano a scarseggiare i pin, pensavo di usare direttamente il pin0 e pin1

Lato codice, in pratica ho scoperto che non devo modificare nulla con la libreria Serial, perché o uso la porta USB o i pin 0/1, non fa differenza

Ma da inesperto totale, e prima di fare qualche danno, vorrei una conferma, se uso i pin 0/1 posso poi tranquillamente eseguire l'upload dei miei sketch su arduino usando come sempre il cavo USB o bisogna eseguire particolari procedure?

Oggi con la USB non ho problemi, la comunicazione con il mio sketch è eseguita via USB, nel momento in cui lo collego al PC per fare il caricamento, viene caricato correttamente, senza far nulla di particolare. Credo sia la stessa cosa, ma prima di fare qualche casino... :roll_eyes:

Inoltre, ci sono contro-indicazioni nell'usarli? Particolari precauzioni?

Grazie in anticipo

m0x71:
Ma da inesperto totale, e prima di fare qualche danno, vorrei una conferma, se uso i pin 0/1 posso poi tranquillamente eseguire l'upload dei miei sketch su arduino usando come sempre il cavo USB o bisogna eseguire particolari procedure?

Oggi con la USB non ho problemi, la comunicazione con il mio sketch è eseguita via USB, nel momento in cui lo collego al PC per fare il caricamento, viene caricato correttamente, senza far nulla di particolare. Credo sia la stessa cosa, ma prima di fare qualche casino... :roll_eyes:

Se usi i pin 0 e 1 e li colleghi ad un altro dispositivo, occuperai la seriale per cui dopo l'upload sarà inibito.
La soluzione è semplice: metti 2 jumper sulle linee che vanno all'altro dispositivo e quando devi fare l'upload dello sketch, semplicemente li levi scollegandolo e lasciando la seriale libera per la comunicazione col PC.

Se vuoi collegare un altro dispositivo via RS232 con Arduino Ti serve un convertitore segnali tipo il MAX232 per adeguare i livelli di tensione.

Ciao Uwe

Quindi basta che tolgo la seriale quando devo fare l'upload, perfetto! :slight_smile:

Ho trovato un MAX232N, potrebbe andare bene?

Grazie ancora per la disponibilità! :grin:

Mi servirebbe una conferma

DB9           MAX232N       Arduino

3 (Tx)   -->  8    10   -->   D1 (Tx)
2 (Rx)   -->  7     9   -->   D0 (Rx)

perchè il TX RS232 entra nel pin 8 ed "esce" in TTL sul pin 9 dove collego l'RX dell'Arduino, stesso discorso (invertito) per il TX di Arduino, corretto?

Inoltre, con i pin 2 (VS+) e 6 (VS-) del MAX232N che ci devo fare?!?!?! Su arduino non ci sono tensioni negative, li "porto" rispettivamente a +5V e GND sempre lasciando i condensatori, giusto? :astonished:

Grazie in anticipo

Stai facendo un po' di confusione con i Pin del Max232.

Questa e' la piendinatura corretta e i condensatori che vedi, sono d'obbligo, dato che servono al Max232 ( per il convertitore a pompa di carica ) per generare le tensioni positive e negative, che in una Rs232 sono di +12v e -12V ( in pratica avrai dei valori di -9 e +9 circa )

Grazie brunello per la risposta :slight_smile:

brunello:
Stai facendo un po' di confusione con i Pin del Max232.

Ma lo schema che hai riportato tu mi sembra lo stesso di quello che avevo detto io, no? :roll_eyes:

brunello:
Questa e' la piendinatura corretta e i condensatori che vedi, sono d'obbligo, dato che servono al Max232 ( per il convertitore a pompa di carica ) per generare le tensioni positive e negative, che in una Rs232 sono di +12v e -12V ( in pratica avrai dei valori di -9 e +9 circa )

Ma il pin2 del MAX232 dove deve andare?

EDIT: inoltre, nell'esempio riportato sul datasheet del MAX232N si fa uso di condensatori 1uF mentre nello schema vedo dei 10uF, è uguale?
Ciao

Qui c'è un'altro schema --> http://sodoityourself.com/max232-serial-level-converter/

Ma lo schema che hai riportato tu mi sembra lo stesso di quello che avevo detto io, no?

Quasi, dato che non hai postato uno schema

Ma il pin2 del MAX232 dove deve andare?

Come da schema, al positivo di un condensatore e l'altro capo al +5V dell'arduino

EDIT: inoltre, nell'esempio riportato sul datasheet del MAX232N si fa uso di condensatori 1uF mentre nello schema vedo dei 10uF, è uguale?
Ciao

1uF e' il valore minimo necessario. 10uF il piu' adatto
Attensione alla polaritaì dei condensatori

brunello:
Stai facendo un po' di confusione con i Pin del Max232.

Questa e' la piendinatura corretta e i condensatori che vedi, sono d'obbligo, dato che servono al Max232 ( per il convertitore a pompa di carica ) per generare le tensioni positive e negative, che in una Rs232 sono di +12v e -12V ( in pratica avrai dei valori di -9 e +9 circa )

per la precisone le specifiche della RS232 dicono segnale H una tensione tra -3 e -25V e per un segnle L una tensione tra +3 e +25V. I PC-IBM avendo un alimentazione +/-12V usavano questa per la RS232. Computer moderni usano un integrato a pompa di cariche e i livello saranno ca +9V e -8V.

Ciao Uwe

brunello:

Ma lo schema che hai riportato tu mi sembra lo stesso di quello che avevo detto io, no?

Quasi, dato che non hai postato uno schema

Si, l'ho riportato, quello dei pin rx/tx :grin:

brunello:
1uF e' il valore minimo necessario. 10uF il piu' adatto
Attensione alla polaritaì dei condensatori

Ok, perfetto e grazie ancora per il supporto :slight_smile: