Pages: 1 2 [3] 4 5 ... 7   Go Down
Author Topic: Leggere e memorizzare dati da RS232 con Arduino Mega 2560  (Read 5576 times)
0 Members and 1 Guest are viewing this topic.
Tuscany
Offline Offline
Edison Member
*
Karma: 68
Posts: 1995
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Certamente, basta collegare insieme il TX e Rx dal lato che va' allo strumento, e quello che invii con il Serial monitor te lo rimanda indietro
Logged

Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 197
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa brunello ma non ho mica capito... devo cortocircuitare Rx e Tx quindi pin 11 e 12 del max 232 e poi? Porta pazienza, sarà il sonno  smiley
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 68
Posts: 1995
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

11 e 12 sono dal lato Atmega
Devi cortocircuitare il 13 e 14. In pratica i due fili che vanno allo strumento.
Poi, apri il SerialMonitor e i caratteri che digiti te li deve replicare.

Logged

0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5790
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

scusa ma lui ha lo strumento connesso alla seconda seriale, il serial monitor funziona sulla prima seriale.
quindi il loopback non funziona
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 197
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Provo! Grazie mille intanto!
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 68
Posts: 1995
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@testato - Vero, hai perfettamente ragione. Non ci avevo fatto caso.

Si, per provare il circuito e' d'obbligo spostare il tutto sulla serial
Logged

Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 197
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quindi lo sketch diventa il seguente?

Code:
void setup() {
  // initialize both serial ports:
  Serial.begin(1200);
}

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

E collego Rx e Tx sulla seriale principale quindi pin 0 e 1?
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 68
Posts: 1995
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si
e ricorda di impostare 1200 baud sul serial monitor
Logged

Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 197
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
allora, da dove cominciare... ho ricostruito il circuitino col max232, cambiando i collegamenti al C5. Dopodichè ho collegato il tutto ad Arduino come consigliato da brunello, cortocircuitando i pin 13 e 14. A serial monitor mi replica perfettamente ciò che digito.
Fatto ciò ho collegato Rx e Tx sui pin 18 e 19 di Arduino mega e ho lanciato lo sketch. Sembra leggere qualcosa, però sono caratteri che non significano nulla.
Il problema credo sia il dato che mi entra sull'arduino, ovvero una stringa ASCII di 32 caratteri. Devo in qualche modo "tradurla" prima di visualizzarla a serial monitor?
Logged

Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 197
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Questo è il dato che visualizzo.... poi una marea di spazi e di nuovo un dato simile...



* Immagine.JPG (33.88 KB, 1024x768 - viewed 17 times.)
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5496
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova a cambiare la velocità del serial monitor...
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 197
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho provo tutte le velocità ma niente da fare... non centra nulla il fatto che la stringa sia un con ASCII 32 caratteri?
Logged

0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5790
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e' forse il dato esatto ?
controlla sulla tabella ascii a che numeri corrispondono quei caratteri e vedi se hanno senso rispetto alla misura che stai facendo
« Last Edit: May 15, 2012, 03:09:32 pm by Testato » Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Tuscany
Offline Offline
Edison Member
*
Karma: 68
Posts: 1995
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quelli sono caratteri che vengono fuori da un errato baud rate.
Invece che Serial.write prova ad usare Serial.print (inByte,DEC);

ti restituisce il valore in decimale del carattere.

Domanda: Sai mica cosa dovrebbe arrivare dalla lettura?
Logged

Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 197
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Questo è lo schema della stringa a 32 caratteri:

• byte 0 tipo di sonda: termocoppia K (k)
• bytes 1, 2 canale di misura: T1, T2, T1-T2 (Td)
• byte 3 modalità di misura: normale ("blank"), relativa
(R), media (A), media fatta (a)
• byte 4 modalità operativa: Hold (H), richiamo memoria (M)
• byte 5 carattere "blank"
• bytes 6-10 misura: lettura (XXX.X o "blank" XXXX), fuori scala
(OVRG blank), nessun dato ("blank" ----)
• byte 11 unità di misura della temperatura: C, F
• byte 12 carattere "blank"
D i s p l a y   s e c o n d a r i o ,   p o r z i o n e   s i n i s t r a
• bytes 13, 14 descrizione delle informazioni: temperatura bassa
(Lo), T1 (T1)
• byte 15 carattere "blank"
• bytes 16-20 misura: lettura (XXX.X o "blank" XXXX), fuori scala
(5 "blank"), nessun dato ("blank" ----)
• byte 21 carattere "blank"
D i s p l a y   s e c o n d a r i o ,   p o r z i o n e   d e s t r a
• bytes 22, 23 descrizione delle informazioni: temperatura alta
(Hi), T2 (T2)
• byte 24 carattere "blank"
• bytes 25-29 misura: lettura (XXX.X o "blank" XXXX), fuori scala
(5 "blank"), nessun dato ("blank" ----)
• byte 30 <CR>
• byte 31 "line feed

Logged

Pages: 1 2 [3] 4 5 ... 7   Go Up
Jump to: