Arduino mega2560 e seriale con PC

Buongiorno a tutti.
Ho cercato un po' in giro ma non ho trovato notizie a riguardo quindi domando a voi...
Ho un Arduino Mega 2560 che desidero collegare tramite seriale ad un pc con cui leggere i dati tramite Hyperterminal.
Prima di realizzare qualunque collegamento e fare danni cerco qualche conferma.
Ecco quello che farei per collegare la Serial1:

  1. Pin 18 (TX1) sul pin 2 (RXD) della seriale PC;
  2. pin 19 (RX1) sul pin 3 (TXD) della seriale PC;
  3. Pin GND sul pin 5 (GND) della seriale PC.
    In questo modo, settando la Serial1 nel programma dovrei riuscire a trasmettere dati dall'Arduino al PC.

Oltre a ciò, vi sono settaggi particolari per la porta seriale?
Oltre alla velocità (in questo caso 9600) quali sono i dati che devo impostare su hyperterminal per ricevere (bit di dati, parità, bit di stop, controllo di flusso)?

Scusatemi ma prima di far "fumare" l'Arduino vorrei essere sicuro dei collegamenti.

Grazie a tutti, Valerio.

Scusa ma perchè non usi la seriale con il cip ftdi(o atmega8u) ?

Perché non ho idea di cosa tu stia parlando :disappointed_relieved:
Mi interessa sapere come sfruttare le seriali presenti sulla scheda. Se poi ci sono altre soluzioni sono sempre pronto ad imparare ad utilizzarle.
Mi interessa lasciare la USB libera per eventuali connessioni ad un altro pc che uso per la programmazione.
Spero d'essermi spiegato bene, grazie.

lupusimprobus:
Perché non ho idea di cosa tu stia parlando :disappointed_relieved:
Mi interessa sapere come sfruttare le seriali presenti sulla scheda. Se poi ci sono altre soluzioni sono sempre pronto ad imparare ad utilizzarle.
Mi interessa lasciare la USB libera per eventuali connessioni ad un altro pc che uso per la programmazione.
Spero d'essermi spiegato bene, grazie.

..spero di non dire "cavolate"...

i pin 0 e 1 di arduino hanno un segnale seriale TTL che ha un livello elettrico ben diverso da quello che esce dal PC (RS232)... quindi occorre mettere un covertitore di segnale ttl/rs232 tipo il MAX232... non è così gratuito...

Ok ho capito :
intendi usare la porta usb per la programmazzione e ecc. ma con un'altra porta seriale vorresti comunicare con un'altro pc
Purtroppo però i livelli di segnale della porta ttl di arduino e quelli della seriale rs232 del pc NON SONO COMPATIBILI Attenzione devi usare un convertitore o rischi di danneggiare arduino !!!

( comunque io pensavo volessi usare la comunicazione usb che utilizza il chip convertitore ftdi232 presente sulla scheda arduino)

Siccome i livelli di tensione della rs232 vanno da -15V e 15V mentre quelli di Arduino sono compresi tra 0V e 5V hai bisogno di un circuito adattatore o di un integrato che si occupi di adattare i livelli (transceiver), famoso per far queste cose è il "max232" (io tempo fa mi sono fatto mandare dalla maxim dei sample dei max3323 che dovrebbero essere un po' più pregiati)

an_je:
..spero di non dire "cavolate"...
i pin 0 e 1 di arduino hanno un segnale seriale TTL che ha un livello elettrico ben diverso da quello che esce dal PC (RS232)... quindi occorre mettere un covertitore di segnale ttl/rs232 tipo il MAX232... non è così gratuito...

an_je; non dici cavolate.
Ci sono 2 possibilitá

Ciao Uwe

non aprlare italiano. Francese !!!

look at that :

Per prima cosa: grazie a tutti!!!
Vediamo se ho capito:
l'Arduino lavora con tensione 0-5VCC mentre la seriale ha valori tra +/-12VCC. Quindi mi occorre un convertitore sia per farli comunicare che per evitare di danneggiare l'Arduino. Fin qui tutto chiaro. :slight_smile:

Non posso utilizzare un convertitore con uscita USB in quanto alla fine, l'Arduino dovrà comunicare con la scheda seriale di un PLC. Le prove di comunicazione tra PC e PLC le ho fatte e tra di essi la comunicazione avviene senza problemi.

Provvederò al reperimento di un convertitore e vi farò sapere come finirà :smiley:

Ultima domanda: ho letto in rete che i convertitori USB-SERIALE che si trovano comunemente in commercio, possono non funzionare in quanto la tensione di alimentazione dal lato USB è +5VCC che a volte non è sufficiente per comunicare con una seriale, soprattutto in presenza di cavo lungo e/o disturbi. Infatti ho alcune apparecchiature industriali con porta seriale che non è possibile programmare con l'utilizzo di un convertitore ma devo utilizzare un pc con una seriale "vera". Siete a conoscenza di un convertitore USB-SERIALE commerciale che esca dal alto seriale con segnale a 12VCC oppure lo schema per crearne uno?
Scusate la domanda forse banale ma, forse si è capito, l'elettronica non è proprio il mio forte :stuck_out_tongue:

Grazie ancora a tutti per l'attenzione e la disponibilità

L'amico Francese Grag38 ti ha postato lo schema elettrico che riassume tutti i suggerimenti che hai letto. Puoi interfacciare il PC con Arduino, usando la tua porta seriale, a patto di usare un adattatore bidirezionale di segnali rs232-TTL, cioè il max232, che viene alimentato a 5v ed è evidentemente in grado di portarli a 12V lato PC. Lo schema è molto semplice, l'idea che hai avuto non è male, anche se le COM sono ormai in disuso e molti nuovi PC non le hanno; il fatto di voler risparmiare l'USB quando ormai un PC fisso ne ha almeno 4 o 6 (e comunque le puoi portare fino a 128, usando degli hub o delle schede aggiuntive) in effetti è strano ma tu avrai le tue buone ragioni.

Pour Grag38: Merci beaucoup pour votre intervention XD
Notre ami français a joint un schéma qui résume tous les conseils que vous ont été donnés. Vous pouvez connecter votre PC et Arduino utilisant le max232 IC. C'est simple à mettre en œuvre.

menniti:
... l'idea che hai avuto non è male, anche se le COM sono ormai in disuso e molti nuovi PC non le hanno; il fatto di voler risparmiare l'USB quando ormai un PC fisso ne ha almeno 4 o 6 (e comunque le puoi portare fino a 128, usando degli hub o delle schede aggiuntive) in effetti è strano ma tu avrai le tue buone ragioni.

Minnitt, lupusimprobus ha scritto:

l'Arduino dovrà comunicare con la scheda seriale di un PLC.

Percui si spiega il perché.

Un altra spiegazione:
Il MAX232 con 4 condensatori radoppia prima la tensione di 5V e poi la inverte. Cosí ci sono ca 9 e ca -8V disponibili per la RS232. Queste tensioni sono dentro nelle specificahe del RS232.

Ciao Uwe

uwefed:

menniti:
... l'idea che hai avuto non è male, anche se le COM sono ormai in disuso e molti nuovi PC non le hanno; il fatto di voler risparmiare l'USB quando ormai un PC fisso ne ha almeno 4 o 6 (e comunque le puoi portare fino a 128, usando degli hub o delle schede aggiuntive) in effetti è strano ma tu avrai le tue buone ragioni.

Minnitt, lupusimprobus ha scritto:

l'Arduino dovrà comunicare con la scheda seriale di un PLC.

Percui si spiega il perché.

Un altra spiegazione:
Il MAX232 con 4 condensatori radoppia prima la tensione di 5V e poi la inverte. Cosí ci sono ca 9 e ca -8V disponibili per la RS232. Queste tensioni sono dentro nelle specificahe del RS232.

Ciao Uwe

Grazie Uwe del chiarimento, avevo letto il post iniziale e seguito la discussione ma mi era sfuggito questo passaggio del PLC; riguardo il MAX232 immagino ci sia dentro un booster con un'impedenza, oltre ai condensatori, per poter raddoppiare la tensione, me lo confermi o c'è una tecnica diversa?

Condensator C5 must be removed in the schema I post.

Why? is a value that is always used on power.

menniti:
Grazie Uwe del chiarimento, avevo letto il post iniziale e seguito la discussione ma mi era sfuggito questo passaggio del PLC; riguardo il MAX232 immagino ci sia dentro un booster con un'impedenza, oltre ai condensatori, per poter raddoppiare la tensione, me lo confermi o c'è una tecnica diversa?

Adesso mi cogli inpreparato. Non so cos' é un Booster.
Il datasheet dice: Operates From a Single 5-V Power Supply With 1.0-µF Charge-Pump Capacitors.
Praticamente il primo condensatore viene caricato coi 5V e scaricato in serie ai 5V sul secondo condensatore. Cosí hai ca 10V (un po di meno a causa di perdita). Poi un terzo condensatore viene caricato coi 10V e scaricato invertito sul quarto condensatore e cosí hai ca -10V.
IL MAX232 e tanti simili hanno bisogno di 1µF; il MAX232A, il MAX202 e non so quali altri usano condensatori 0,1µF.
Ciao Uwe

A grandi linee è un convertitore dc-dc che sfrutta un'impedenza in serie alla tensione sorgente, che accumula corrente e la cede (separato in genere da un diodo per evitare il ritorno) ai condensatori successivi per "sovraccaricarli" facendo così aumentare la tensione d'uscita; ecco perché pensavo che dentro il max232 ci fosse la parte impedenza/diodo, ma è solo una curiosità, non ha alcuna importanza, funziona e quindi va bene così!

una spiegazione piú accurata dei convertitori DC/Dc che usa il MAX232.

Ciao Uwe

Ah, ecco, è un principio molto simile ma non è la stessa cosa. Grazie del chiarimento.
Ciao.
Michele