allora la situazione è semplice ma vi chiederei gentilmente di fornirmi delle delucidazioni a riguardo.
Io ho un sensore che esce con una RS232 (non con il DB9 ma direttamente con 4 fili : GND, VCC, TX, RX) ma che, da quello che dice il data sheet, può funzionare con alimentazione da 4,5 V a 30 V.
La domanda è: perchè non posso connetterlo ad Arduino nel pin dei 5 V ? Perchè necessito di un regolatore di voltaggio?
Evidentemente il mio ragionamento è sbagliato da qualche parte ma non essendo io un tecnico non riesco a capire dove è l'errore.
tieni presente sempre i due paramtri principe in elettronica, tensione e corrente
per quanto riguarda la tensione non ci sono problemi, 5V sono 5V, niente trucchi, niente inganni.
La corrente invece e' il probema, quanto assorbe questo sensore ? guarda sul datascheet, se assorbe una quantita' di corrente intorno ai 200mA vai tranquillo, altrimenti si trovano altre soluzioni.
Io ho un sensore che esce con una RS232 (non con il DB9 ma direttamente con 4 fili : GND, VCC, TX, RX) ma che, da quello che dice il data sheet, può funzionare con alimentazione da 4,5 V a 30 V.
La domanda è: perchè non posso connetterlo ad Arduino nel pin dei 5 V ? Perchè necessito di un regolatore di voltaggio?
Se è RS232 le tensioni sono +- 12V.
Il livello 1 = -12V
0 = +12V
Per connetterlo ad aduino devi convertire in TTL.
Esistono dei chip che eseguono questa conversione, es. il MAX232,
si trovano in commercio anche dei convertitore già cablati.
Per quello che dice Testato, avendo un consumo di 350 mW , se fornisco 5 V dovrei avere un assorbimento di corrente pari a 70 mA.
Se così fosse non ci sarebbe bisogno di nulla? Oppure vale la tesi di Carletto?
A proposito ti ringrazio per la risposta Carletto, potresti indicarmi un link di un convertitore già cablato? Il chip con presa DB9 e uscita TTL già lo ho
(http://www.microbot.it/documents/mr002-001_datasheet_it.pdf) ma da quello che ho capito non basta da solo, correggimi se sbaglio.
Comunque qualcosa che non va c'è perchè i valori che escono dalla seriale (che vedo sul serial monitor) non c'entrano nulla con quelli che dovrei ricevere. Pensavo potesse essere per causa del collegamento elettrico, ma sono qui a chiedere lumi appositamente.
capt_7:
(che vedo sul serial monitor) non c'entrano nulla con quelli che dovrei ricevere.
Questo presuppone che hai gia controllato quanto esce dalla RS232 collengandola ad terminale
Hyperterminal , PuTTY et similia
Anche rileggendo i post non mi pare di aver letto una affermazione in questo sensoù
Edit :
Presumo che tra sensore e DB9 del convertitore i segnali andranno incrociati
Diversamente , lato TTL , forse andranno TX su TX ed RX su RX ; cosi almeno e' sul convertitore che ho io del tutto simile al tuo
Realizza uno programmino che alla pressione di un pulsante invii la stringa ciao sulla seraiale e verifica la funzionalita del tuo convertitore collegando la DB9 F del convertitore direttamete sul DB9 M del PC dove avrai aperto in attesa un terminale di cui sopra
No Bruno, ho semplicemente commesso un'imprudenza perchè non sapevo del problema tra RS232 e TTL; infatti ho collegato il sensore RS232 direttamente ai pin di Arduino e ho visto quello che arrivava dalla porta seriale.
Fortunatamente non è saltato nessun pin in quell'occasione e poi non ci ho più riprovato.
Ora stavo leggendo il data sheet della Mega 2560 e ho visto che sui pin può passare una corrente max di 50 mA; quindi forse, dal conto che ho fatto in un post precedente, se collego il sensore che assorbe 70 mA non va bene.
capt_7:
sui pin può passare una corrente max di 50 mA
il sensore che assorbe 70 mA
Il sensore assorbira' 70mA sull'alimentazione ; sui pin TX RX la corrente e' insignificante
Il tuo problema e' appunto la 232 che ha livelli di segnale incompatibili con Arduino
Ci vuole per forza il convertitore in mezzo
Personalmente opterei per un12 volts di alimentazione del sensore da cui deriverei con 4 o 5 diodi in serie il VIn di Arduino ; i diodi giusto per scendere a 8 9 volts sul VIn
Il convertitore alimentato dal + 5 di Arduino ; ovviamente i GND comune a tutti i circuiti
Fai un passo alla volta come consigliato piu' sopra e vedrai che arrivi alla fine del tuo progetto
va bene cerco di seguire il tuo consiglio. Non posso utilizzare una resistenza per far cadere il potenziale da 12 a 5 V? Inoltre potresti illustrarmi il collegamento magari con Fritzing o qualcosa del genere?
Se anche qualche altra persona ha delle indicazioni in merito vi prego di farmi sapere!!! GRazie!!!
capt_7:
va bene cerco di seguire il tuo consiglio. Non posso utilizzare una resistenza per far cadere il potenziale da 12 a 5 V? Inoltre potresti illustrarmi il collegamento magari con Fritzing o qualcosa del genere?
Se anche qualche altra persona ha delle indicazioni in merito vi prego di farmi sapere!!! GRazie!!!
Non puoi usare resistenze per diminuire la tensione perché
la rs232 ha anche tensioni negative
la caduta di tensione sulla resistenza dipende dalla corrente.
Se l' interfaccia é una rs232 allora i livelli di tensione sono quelli della RS232. Usa un integrato come il MAX232 per adeguar i livelli.
Testato:
se viene alimenato a 5V dubito che possa mai avere 12V sulla seriale
la questione inversione e' invece da tener presente
Per esempio il MAX232 ha 2 pompe di tensione (fatto con 4 condensatori) che producono dai 5V di alimentazione ca +/-10V sufficenti per un RS232.
Ciao Uwe
ci avevo pensato, infatti dopo ho consigliato di misurare, alimentando a 5v, proprio per capire di cosa stiamo parlando
uwefed:
Usa un integrato come il MAX232 per adeguar i livelli.
Ma da quel che si legge ha in mano il classico convertitore RS232 TTL
Io insisterei nel verificare le parti una alla volta
Verifico con un PC cosa esce dal sensore
Verifico cosa esce da Arduino col PC usando il convertitore
Almeno so' chi e cosa funziona
Allora per rispondere a Testato: ho collegato il sensore ai 5 v di Arduino e i pin TX e RX escono a 5 V.
Vi devo però dire che fino ad ora non ho messo in comune la massa di Arduino con quella del sensore e mi sa che ho sbagliato. Ora non so se questa è una soluzione al problema dei valori errati che leggo in uscita dalla seriale, secondo voi?
Per Bruno: il sensore l'ho già collegato al PC con un cavo FTDI e con un software del sensore ho visto i dati in uscita , i quali sono giusti. I valori sballano quando provo ad acquisirli attraverso la seriale di Arduino.
Avendo un convertitore RS232 - TTL come faccio a ottenere un integrato MAX232? Potete linkarmi per favore? (ammesso che il fatto della massa in comune non risolva il tutto).
capt_7:
Avendo un convertitore RS232 - TTL come faccio a ottenere un integrato MAX232? Potete linkarmi per favore? (ammesso che il fatto della massa in comune non risolva il tutto).
Ma il tuo convertitore e' tutto quello che ti serve
La DB9 F la infili sul Maschio del PC
GND +5 TX ed RX su ARDUINO
In quello che ho io il TX va su TX e RX su RX ; non incrociati
Preventivamente metti su Arduino un Serial print che ti invii una stringa ( CIAO + CR + LF ) con una pausa di 1000
Ogni secondo dovrebbe arrivarti CIAO sul PC
Il tutto inizializzato alla stessa velocita ovviamente
Alla prima prova il mio non andava perche' avevo incrociato TX RX
Ho provato a fare come dice Testato: ho alimentato il sensore a 5V con la GND in comune alla scheda. Risultato: uguale ai casi precedenti, valori sbagliati (anche se la struttura del messaggio è quella giusta).
Ora per Bruno: scusa ma siccome non sono proprio esperto potresti dettagliarmi meglio il collegamento che hai descritto nell'ultimo post? Tieni presente che non dovrei collegare un maschio al mio convertitore RS232-TTL in quanto penso che dalla DBF9 devo inserire i cavi della seriale del sensore, o no? Se ho capito proprio male allora ti chiedo per favore di spiegarmi meglio quello che intendevi.
Scusate se chiedo tutte queste cose sui collegamenti ma non sono un tecnico e non vorrei fare danni.