Ciao a tutti, ho acquistato (deve ancora arrivare) un convertitore da NTC 10k a RS232,
on/off. Chiedo a voi luminari della materia vista la mia ignoranza quasi totale della seriale, cosa potrei aspettarmi sulla linea dati? In pratica, leggendo l'inserzione dicono "Protocollo MODBUS RTU, 03 leggere comando, 06 comando di scrittura." come dovrei interfacciarmi con Arduino per leggere la temperatura e visualizzarla a display?
Ringrazio per l'aiuto :-)
--
Saluti da Drizzt, quello vero!
www.agidone.altervista.org
MAI PIU' UN CESSO DI OPEL IN VITA MIA!!!!
http://www.tappezzeriagraziella.com/
NTC -> RS232 ? non era piu semplice usare un trasmettitore analogico 4-20mA? ti semplificavi la vita non poco. comunque devi implementare,come SW, il protocollo Modbus (trovi la descrizione in diversi siti) e facilmente trovi gia delle librerie fatte.
sto che la tua NTC se sei fortunato ha una precisione di qualche
Uso il sensore PCF8523 per misurare la temperatura esterna, ho fatto molte prove paragonando la temp del sensore con termometro a mercurio.
cui si trova ma non ho mai rilevato differenze maggiori di 1 grado centigrado e, nella maggior parte dei casi, la differenza rilevata era di una frazione di grado se paragonata ad un termometro digitale professionale. Forse sono stato fortunato con il sensore. :-)
In data novembre 2021 alle ore 18:29:41, Drizzt do'Urden ha scritto:
2,
l=E8
e
i fino
in attesa di diventare luminare(di solito sotto Natale) dico quello che = noto,senza suggerirti soluzioni alternative:
la tua interfaccia =E8 RS232,ma Arduino(quale?),che conosco pochissimo,c= e l'ha una interfaccia RS232? L'Uno mi pare proprio di no,ha dei pin di interfaccia seriale,coi livell= i logici 0 5V, ma la RS232 ha livelli logici con tensioni completamente diverse: il liv= ello 1 =E8 rappresentato da una V negativa da -3 a -25V(su alcuni compu= ter era -12V per esempio) il livello 0 tra 3 e 25V. Quindi ti servirebbe anche una interfaccia RS232 TTL per fare funzionare= il tutto
Per quello che riguarda il MODBUS,dovrai scriverti(ma su Arduino mi sa c= he non si fa quasi mai) o caricarti le librerie MODBUS. Per chi non lo sapesse MODBUS =E8 un protocollo di comunicazione ,al MOD= BUS non interessa che sia seriale UART seriale RS485 o seriale RS232 L'i= mportante =E8 che il microcontrollore trasmetta e riceva. Per irrobustir= e la comunicazione e evitare che vengono interpretati i dati alterati da= i disturbi la comunicazione prevede una semplice risposta di una delle d= ue parti ad ogni domanda dell'altra =E8 un checksum finale per verificar= e la correttezza"ortografica" sia della domanda che della risposta.Si us= a una organizzazione a registri che uno associa come crede ai propri sen= sori o attuatori.Puoi trasmettere in un solo messaggio un valore numeric= o a 16 bit che basta e avanza per rappresentare 100 gradi divisi in 1000= parti
ne esistono moltissimi, ma forse sono fuori dal tuo badget...io per misure simili ho usato dei KTY, che sono dei sensori PTC estremamente lineari e con un ottimo segnale di uscita
In data novembre 2021 alle ore 15:57:24, Drizzt do'Urden ha scritto:
he
i
o,ce
are
a
32
i
di
per
ede
n
di
penso di si,non conosco quel micrcontrollore,vedo che ha solo 32KB di Fl= ash e non so quanta Flash richiedano tutte le cose che Arduino mette a d= isposizione di default Le librerie Modbus RTU di solito non sono enormi. Il Checksum pu=F2 essere calcolato in 2 modi: tramite tabelle in Flash(+ veloce ma + ingombrante) o tramite un algoritmo.Se tudovessi essere al limite con la Flash verifi= ca di non stare gi=E0 usando il metodo tabellare,in questo caso commenta= le tabelle, e cercati e eventualmente copiati le funzioni checksum con = algoritmo. Ma penso che non ne avrai bisogno
In data novembre 2021 alle ore 18:11:19, Drizzt do'Urden ha scritto:
e a
:-)
Si, a volte mi spiego come quel famoso allenatore italiano quando parlav= a in tedesco. Il checksum,in questo caso, =E8 una coppia di bytes calcolata in un cert= o modo partendo da tutti i bytes precedenti Questa viene accodata al messaggio.Chi riceve, per essere sicuro di non = prendersi dati sbagliati(magari a causa di problemi a livello elettrico)= rif=E0 lo stesso calcolo e confronta il checksum ricevuto con quello cal= colato;se sono uguali tutto ok.Altrimenti non risponde,e dall'altra part= e si sa che il messaggio =E8 stato ignorato. Il calcolo necessario pu=F2 essere sveltito appoggiandosi a delle tabell= e di numeri gi=E0 pronte, Oppure pu=F2 essere fatto seguendo un algoritmo,non molte righe di codic= e. Le tabelle potrebbero avereun certo ingombro,e in un microcontrollore pi= ccolo dove bisogna stare attenti anche ai 10 bytes,potrebbe essere neces= sario o utile utilizzare l'altro metodo,che impegna pi=F9 cicli macchina= ma meno memoria Flash
Ho visto ma siamo al limite della temperatura, lui arriva a 125 mentre la caldaia arriva a 135 almeno quando produce il vapore, non che mi interessi la lettura della parte vapore ma come valori assolutamente
ha consigliato Alfio :-(
sa che se lo trovo a basso prezzo lo prendo per fare esperimenti :-)
--
Saluti da Drizzt, quello vero!
www.agidone.altervista.org
MAI PIU' UN CESSO DI OPEL IN VITA MIA!!!!
http://www.tappezzeriagraziella.com/
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.