Go Down

Topic: Interfacciare 4-20mA e RS232 con arduino (Read 7224 times) previous topic - next topic

brunol949


Quello che sicuramente hai scordato di fare è impostare l'handshake come "NONE",

Eh gia' ..
Allego una cattura della videata di H.T. dove ricevo la risposta di un ping
Giusto per capire cosa si vede di solito :)
Le mie opere : Flusso correnti nell'impianto fotovoltaico http://arduino.webveneto.net/energy_control/     PING ed E.Mail http://arduino.web

PaoloP

Scusa la domanda banale: "Hai selezionato nel PC la giusta porta Com per HyperTerminal?".

9six4

Quote
Quel "rilevamento auto" dopo il cursore arriva dall'esterno perche' se apri il terminale appare solo il cursore , di norma .


Mi sono espresso male, questa scritta appare in basso, affianco al timer, dove sulla tua immagine appare la scritta "ANSIW", credo sia il tipo di emulazione.

Quote
Quello che sicuramente hai scordato di fare è impostare l'handshake come "NONE", se non lo fai Hyperterminal rimane in eterna attesa dei consensi hardware che lo strumento sicuramente non fornisce.


Se come handshake intendi il controllo di flusso, già fatto, ho messo nessuno.

Quote
Allego una cattura della videata di H.T. dove ricevo la risposta di un ping
Giusto per capire cosa si vede di solito


Da me c'è solo il cursore che lampeggia (trattino basso come su word)

Quote
Scusa la domanda banale: "Hai selezionato nel PC la giusta porta Com per HyperTerminal?".


Lo collego con la seriale RS232 quindi se non erro dovrebbe essere la COM1 di default

9six4

Allora... dopo vari tentativi, sono riuscito a fare dialogare hyperterminal con uno strumento.
Ad ogni tanto che premo però mi da di ritorno una faccina ed un cuore che significa? Come posso gestire questa cosa?

Testato

probabilmente sono la rappresentazione in codici ascii del dato che ricevi.
guarda sulla tabella ascii
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

9six4

Cercato, corrisponde ai numeri 2 e 3...

9six4

Scusate ma avrei bisogno di un aiutino... sto cercando di leggere con l'arduino una tensione ai capi di una resistenza collegata ad un circuito esterno. Attraverso la resistenza da 270 ohm passa una corrente 4-20mA ed io tramite Analogread vorrei misurare la tensione ai capi per poi poter elaborare il dato. La resistenza però è alimentata da un circuito esterno all'arduino e la cosa mi spiazza un pò, come potrei collegarla all'arduino per leggerne la tensione ai capi?
Grazie

brunol949


come potrei collegarla all'arduino per leggerne la tensione ai capi?

Colleghi i 2 capi della resistenza fra GND ed AnalogIn di Arduino
Se uno dei capi della resistenza e' collegato al GND dello strumento ( ammesso che sia verificabile ) collega il suddetto capo al gnd di arduino
Sarebbe preferibile che i 2 gnd fossero collegati assieme e non incrociati
Le mie opere : Flusso correnti nell'impianto fotovoltaico http://arduino.webveneto.net/energy_control/     PING ed E.Mail http://arduino.web

9six4

Grazie bruno, scusa la domanda stupida ma avevo bisogno di una certezza. Funziona e sembra abbastanza preciso. Adesso provo a trasformare il dato in punti pH, visualizzarlo a display e stamparlo a cadenza regolare su carta. Per quanto riguarda la risposta del mio strumento collegato via RS232 sai dirmi nulla?

Marco Benini

#39
Apr 11, 2012, 12:02 pm Last Edit: Apr 11, 2012, 12:16 pm by Marco Benini Reason: 1
Ciao,

ho guardato la pagina 17 del manuale da te indicato.
Lo strumento manda in output ogni uno o due secondi, a seconda delle versioni, 32 caratteri il cui significato e' spiegato nella pagina del manuale.
Gli ultimi due sono CR (carriage return) e LF (line feed).

Se vuoi vedere piu' facilmente i caratteri, allora puoi utilizzare un monitor per la porta seriale, ad esempio Free Serial Port Monitor. Lanci il programma originale (o hyperterminal) e vedi le stringhe sul serial monitor.

Se hai il programma originale di lettura dati puoi vedere anche il baudrate e gli altri parametri della porta seriale. Per far questo devi andare nel menu' strumenti e aprire "impostazioni" (la penultima) e li' trovi "IOCTL consecutivi". Seleziona la visualizzazione di IOCTL_SERIAL_GET_BAUD_RATE e IOCTL_SERIAL_GET_LINE_CONTROL.
All'inizio della finestra "richieste" vedrai i dati su baudrate, wordlength, parity e stopbits.

I byte singoli li vedrai col corrispettivo valore (esadecimale, decimale, ASCII, ... a seconda della visualizzazione che utilizzi), tipo byte 11 = unita' di misura della temperatura, mentre per i dati che utilizzano piu' byte dovrai ricavare il corrispondente valore.

Ciao,
marco.
http://www.serial-port-monitor.com/index.html

Testato

visto che e' a pagamentgo, perche' si chiama Free ?  :smiley-yell:
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

9six4

Grazie Marco, appena riprendo in mano il discorso RS232 provo.
Ora sto provando ad eseguire delle letture ma ho dei problemi a visualizzare il giusto risultato a LCD.
Questo è il programmino:

Code: [Select]
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  lcd.begin(20, 4);
  Serial.begin(9600);
}

void loop()
{
  int sensorValue = analogRead(A0);
  Serial.println(sensorValue);
  float pHvalue = ((sensorValue-226)/53)+1;
  Serial.println(pHvalue);
  lcd.clear();
  lcd.print("pH = ");
  lcd.print(pHvalue);
  delay (1000);
}


In pratica misura la tensione ai capi di una resistenza tramite l'ingresso A0 e tramite una formula matematica la converte in punti pH. Il problema, e non capisco il perchè, è che il risultato è sempre un numero giusto (ovvero 7.00 oppure 5.00) mentre dovrebbe avere 2 decimali diversi da 00.
Qualcuno mi spiega dove sbaglio?
Grazie

astrobeed


visto che e' a pagamentgo, perche' si chiama Free ?  :smiley-yell:


A pagamento è solo l'invio del programma su CD, se lo scarichi non paghi nulla.

Testato

grazie, non ci avevo fatto caso.
purtroppo non funziona su win7, almeno il mio a 64  :smiley-red:
ne conosci uno simile ?
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

astrobeed


ne conosci uno simile ?


Per la seriale e la parallela è da sempre che uso Portmon, è molto vecchio come software però è un ottimo strumento di analisi, fa vedere tutto quello che succede a livello evento di sistema nei dettagli.
Funziona bene con tutti i sistemi operativi Windows a partire da W98 in poi, incluso W7 32 bit, con la versione a 64 bit non l'ho mai provato quindi non posso garantirti che funziona.


Go Up