Se sei già registrato           oppure    

Orario: 10/05/2024 08:02:01  

 

Energia Alternativa ed Energia Fai Da Te > PPTEA

VISUALIZZA L'ALBUM

Pagine: (5)   1   2   3   [4]   5    (Ultimo Msg)


PPTEA -> PC, Scambio Dati, grafici , momorizzazione su HD, etc..
FinePagina

PinoTux

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:3509

Stato:



Inviato il: 4/2/2012,23:10

CITAZIONE (NonSoloBolleDiAcqua @ 4/2/2012, 22:14)
Ho lasciato il PPTEA da solo con il sw scritto da PinoTux, ovviemente libero di fare quello che voleva...cioè sensa sensori...quando sono tornato ho trovato questo bel disegnino...che carino...è il primo disegno che fa!
faccine/biggrin.gif
Bolle

Veramente l'ho solamente modificato, l'originale era tuo, l'ho trovato .

Questo è il file eab che manda al grafico i 5 valori, i primi tre di temperatura e gli ultimi due di tensione, modificando la riga 420 sostituire il valore "15.0" con il fondoscala voluto, all'atto pratico bisogna usare un partitore all'ingresso del CAD in modo da non superare mai i 5V.
Usa pure un LCD 16 colonne x 4 righe...
10 PRAGMA EXTERNAL_EEPROM
15  ' SETIO=&H100FF ' il 16 BIT (partendo da 0 ) identifica la modalità libera del display
20 cads=5
25 ' ----------------------------
30 lcdclear
35 lcdwrite="PPTEA - LCD 4x16"
40 lcdpos=33
45 lcdwrite="Monitor Temp."
50 lcdpos=55
55 lcdwrite="e Tensione"
60 waits 3
65 ' ----------------------------
66 CLR a,t,T1,T2,T3,T4,T5
70 PSTART=22
75 PSTOP=33
80 ' ----------------------------
85 lcdclear
90 ' ----------------------------
95 t=cads1
100 T1=t
105 gosub :TornaTemperatura
110 ' lcdclear
115 lcdpos=22
120 lcdwrite=" "&chr(223)
125 lcdpos=17
130 lcdwrite="A="&strtemp
135 ' ----------------------------
140 t=cads2
145 T2=t
150 gosub :TornaTemperatura
155 lcdpos=38
160 lcdwrite=" "&chr(223)
165 lcdpos=33
170 lcdwrite="B=" &strtemp
175 ' ----------------------------
180 t=cads3
185 T3=t
190 gosub :TornaTemperatura
195 lcdpos=54
200 lcdwrite=" "&chr(223)
205 lcdpos=49
210 lcdwrite="C="& strtemp
215 ' ----------------------------
220 t=cads4
225 T4=t
230 gosub :TornaTensione
235 lcdpos=31
240 lcdwrite=" V"
245 lcdpos=25
250 lcdwrite="V1="& strtens
255 ' ----------------------------
260 t=cads5
265 T5=t
270 gosub :TornaTensione
275 lcdpos=47
280 lcdwrite=" V"
285 lcdpos=41
290 lcdwrite="V2="& strtens
295 ' ----------------------------
300 USBOUT=PSTART
305 USBOUT=T1    'Invio il valore del convertitore 1
310 USBOUT=T2    'Invio il valore del convertitore 2
314 USBOUT=T3    'Invio il valore del convertitore 3
317 USBOUT=T4    'Invio il valore del convertitore 4
319 USBOUT=T5    'Invio il valore del convertitore 5
321 USBOUT= PSTOP
325 USBOUT= PSTART+PSTOP+T1+T2+T3+T4+T5 ' CHECKSUM
330 WAITS 1 ' Attendo un secondo tra una lettura
335 ' ----------------------------

336 a++               ' stampa i passi di misura, serve per controllare che non si blocchi
337 lcdpos=65
338 lcdwrite=""&a

340 lcdpos=80       ' stampa alternativamente un "+" ed un "-" ...come sopra
345 lcdwrite="+"
350 waitms 500
355 lcdpos=80
360 lcdwrite="-"
365 waitms 200
370 ' -----------------------------
375 goto  95
380 ' -----------------------------
385 :TornaTemperatura
390 temp=t*5.0/1023
395 temp*=100
400 strtemp=left(temp&"",4)
405 return
410 ' ------------------------------
415 :TornaTensione
420 tens=t*15.0/1023
425 ' tens*=100
430 strtens=left(tens&"",4)
435 return






---------------
"Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza"
http://iv3gfn.altervista.org/
http://pptea.altervista.org/

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 5/2/2012,11:40

Questo è il codice compresso, riadattato e modificato da Pino...si utilizzano vettori, dati etc...è molto compatto e fluido...ma solo se si conosce un minimo di programmazione strutturata. Non è imortante come si scrive il codice...l'importante è che funzioni!!!
Bolle

01 ' PROGRAMMA INVIO DATI AL DISPLAY E AL PC VERSIONE 2.5 o SUCCESSIVE
05 DIM VTEMP(5) AS WORD
07 PRAGMA EXTERNAL_EEPROM
10 '-------------------- DATI  -------
11 DATA 17,"PPTEA - LCD 16x4", 33,"Monitor Temp.",55,"e Tensione"
13 DATA 22," ß",17,"A=",38," ß",33,"B=",54," ß",49,"C=",31," V",25,"V1="
14 DATA 47," V",41,"V2="
15 '-------------------- FINE DATI  -------
19 ' SETIO=&H100FF ' Per Display Gestito dell'utente
20 '--------------- COSTANTI  ------
21  CONSTANT PSTART=22
22  CONSTANT PSTOP=33
23 '-----------FINE  COSTANTI  ------

24 CADS=5 'SI UTILIZZANO TUTTI I CONVERTITORI A/D
25 '------- PRESENTAZIONE
30 REPEAT
31   READ POS,RIGA
35   GOSUB :VISUALIZZA_RIGA
36   PR++
40 UNTIL PR<3
58 '--- FINE PRESENTAZIONE

60 WAITS 3
85 LCDCLEAR

90   '----- INIZIO PROGRAMMA
91   REPEAT
92       CLR SENSORE
93       REPEAT
95          SENSORE++
111        READ POS,RIGA
121        GOSUB :VISUALIZZA_RIGA
122        READ POS,RIGA
124        GOSUB :TornaTemperaturaOTensione
125        GOSUB :VISUALIZZA_RIGA
130     UNTIL SENSORE<5
135     GOSUB :TEMP_SEND_USB
140    RESTORE 13
250 UNTIL 1
300 '----- FINE PROGRAMMA


380 ' -----------------------------
385 :TornaTemperaturaOTensione
387 VTEMP(SENSORE)=CADSIND(SENSORE)
390 TEMP=VTEMP(SENSORE)*5.0/1023
391 if SENSORE >3 then :NO_MOLT_100
395 TEMP*=100
400 :NO_MOLT_100 RIGA=RIGA & left(TEMP&"",4)
405 return
410 '------------------------------


430 '-----------------------------
440 :TEMP_SEND_USB
450 USBOUT=PSTART ' INVIO LO START
460 SET S
470 SOMMA=PSTOP+PSTOP
480 REPEAT
510   USBOUT=VTEMP(S)
520   SOMMA+=VTEMP(S)
530   S++
540 UNTIL S<=5
550 USBOUT=PSTOP ' INVIO LO STOP
560 USBOUT=SOMMA ' INVIO LA CHECKSUM
565 WAITS 1
570 ' incremento il contatore ed effettuo il polling +/-
636 CONTA++
637 LCDPOS=&H41
638 LCDWRITE=""&CONTA
640 LCDPOS=&H4F
645 LCDWRITE="+"
650 WAITMS 500
655 LCDPOS=&H4F
660 LCDWRITE="-"
665 WAITMS 200
670 RETURN

799 '----------------------------
800 :VISUALIZZA_RIGA
810 LCDPOS=POS
835 lcdwrite=RIGA
850 RETURN




---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

titone78

Avatar
MegaWatt


Gruppo:Utente
Messaggi:502

Stato:



Inviato il: 9/2/2012,21:41

ciao a tutti,finalmente sono riuscito a finire la prima scheda pptea con i 5 sensori temperatura e i il grafico,collegato alla stufa questo e i risultato,i cinque sensori sono:

blu=uscita scambiatore
rosso=entrata scambiatore
verde=accumulo primario
arancio=accumulo secondario
azzurro=temperatura ambiente

ForumEA/us/img849/6504/grafico1022011.png

grazie a tutti del supporto.



Modificato da NonSoloBolleDiAcqua - 27/10/2014, 18:16:16
 

PinoTux

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:3509

Stato:



Inviato il: 9/2/2012,22:04

Bello il risultato! Molto coreografico!
Il PPTEA ha doti d'artista.. faccine/biggrin.gif
Se può interessare a proposito di sensori temperatura, ho trovato questo LM50, in formato SOT23, quello di un transistor SMD, e misura temperature da -40 a +100°C. Ha la caratteristica di un offset di 500mV senza accrocchi esterni e si presterebbe all'uso sul PPTEA previo aggiustamento del software per misurare temperature negative...visti i tempi...potrebbe essere utile faccine/tongue.gif faccine/biggrin.gif



---------------
"Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza"
http://iv3gfn.altervista.org/
http://pptea.altervista.org/

 

titone78

Avatar
MegaWatt


Gruppo:Utente
Messaggi:502

Stato:



Inviato il: 9/2/2012,22:35

ciao pino,si molto utile,io adesso uso degli lm35dz ma le temperature negative non riesco o non capisco come misurarle......come dicevo a bolle il mio prossimo obbiettivo e riuscire a leggere le sonde pt100,e poi le sonde k.
in casa oltre alle sonde ho anche degli ua741 ma ancora non ho avuto tempo per capire come usarli.

 

PinoTux

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:3509

Stato:



Inviato il: 10/2/2012,13:18

Per la misura delle temperature negative ho usato un LM335H che ho trovato casualmente fra le mie cianfrusaglie, ha la particolarità che questo di dà in uscita 10mV x grado Kelvin... per convertire la lettura in °centigradi basta sottrarre 273.15 dal valore che ottieni per LM35
Questo è un esempio delle subroutine che ho già pubblicato da qualche parte:

385 ' :TornaTemperatura
390 temp=t*5.0/1023
395 temp*=100
400 strtemp=left(temp&"",4)
405 return
410 ' ------------------------------

500  ' :TornaKelvin            ' da usare con LM335 10mV per °Kelvin
510   v=t*5.0/1023           ' è importante la precisione dei 5.0V, 100mV di differenza portano ad un errore elevato.
520    v*=100
530     temp=(v)-273.15 ' ° Centigradi
540  strtemp=left(temp&"",5)
550 return


però bisogna calibrarlo, io l'ho fatto per comparazione con LM35, il circuito consta di una resistenza da 1500-2000 ohm ed un trimmer multigiri da 10K.
Bolle ha già preparato un programma grafico per visualizzare sia la scala con lm35 che quella con lm335 che prevede la misura fino a -30°.. so che ci sta lavorando per ulteriori modifiche e vediamo quando troverà il tempo....
Se qualcuno fosse interessato penso che Bolle non abbia nulla in contrario al fatto che (io) la possa pubblicare....
Saluti
Pino

Immagine Allegata: lm335

http://www.energialternativa.info/Public/NewForum/ForumEA/5/7/2/2/6/2/8/1328876330.jpg





---------------
"Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza"
http://iv3gfn.altervista.org/
http://pptea.altervista.org/

 

jumpy75

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:686

Stato:



Inviato il: 10/2/2012,13:40

Ciao Pino, hai trovato veramente un bel sensore di Temperatura. Sono andato a vedere le specifiche e legge temperatura da -60°C fino a 180°C!


Certo, a differenza del LM35 costa il doppio, però avere anche una temperatura negativa non ha prezzo!!!




faccine/biggrin.gif

 

PinoTux

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:3509

Stato:



Inviato il: 10/2/2012,13:55

Si, ma quei valori dipendono dal tipo di polarizzazione, variando la resisternza serie cambi la corrente e sposti il range verso il basso o verso l'alto...così mi sembra di aver capito, comunque sto facendo delle prove... in questo momento mi segna 0.0°C, aspetto questa sera che dovrebbe scendere bene, poi lo comparo con la stazione Oregon che però sta un piano più in basso...ora sono in soffitta, ma a scanso di equivoci..la sonda è all'esterno... faccine/smile.gif

P.S. Sarebbe interessante provare LM50...chi si offre volontario? faccine/smile.gif

Comunque posto il programma grafico di Bolle, è la versione 1.6




Scarica allegato

GraficoTemperature.rar
( Numero download: 117 )



---------------
"Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza"
http://iv3gfn.altervista.org/
http://pptea.altervista.org/

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 17/2/2012,10:10

@bolle, un consiglio: io sviluppo le mie applicazioni, usando il VBA di Office... per la comunicazione RS232, uso il controllo MSComm, che però è affetto da un baco di sicurezza e quindi l'aggiornamento KillBits di windows me lo tarpa ogni volta, costringendomi a ri-settare la chiave del registro. Sai di qualche altro controllo per la comunicazione seriale, free e funzionante utilizzabile con VBA?



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 17/2/2012,10:19

Hahahahha...io uso la seriale senza liberie di sistema...con la CreateFile...me la canto e me la suono...questo è un esempio...vedi se riesci a farlo con VBA...sicuremente qualcuno avrà già fatto un lavoro del genere...ma ora non ho tempo per seguirti...tra qualche giorno...devo chiudere il PPTEA!!! faccine/tongue.gif

Se hai fatto già un'applicazione...perchè non la posti?
faccine/smile.gif

CODICE
hCom = CreateFile(TCOM.Text, GENERIC_READ Or GENERIC_WRITE, _
       0, 0&, OPEN_EXISTING, 0, 0)
   If hCom = INVALID_HANDLE_VALUE Then
       ERRORE_APERTURA = True
       Command13.Enabled = False
       Exit Sub
   End If
   fSuccess = GetCommState(hCom, dcbVar)
   If fSuccess = False Then
       ERRORE_APERTURA = True
       Command13.Enabled = False
       Exit Sub
   End If

   dcbVar.BaudRate = 19200 'tVelocita.Text
   dcbVar.ByteSize = 8 'Tsize.Text
   dcbVar.Parity = 0 'Tparita.Text
   dcbVar.StopBits = 0 'Tstop.Text



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 17/2/2012,10:37

... troppo difficile per me, nn sono un programmatore...
le applicazioni le ho fatte... per scaricare la memoria di uno strumento che uso sul lavoro, non per il PPTEA, ma (come avrai intuito) adesso voglio connettermi col PPTEA... appena realizzo, posto (visto il weekend...)
Sviluppa il PPTEA... non ho (mai) fretta... ho ancora la visione dei forum, della mail e di internet degli albori, non mi aspetto risposte immediate (se le voglio, telefono, non mando messaggi!)
Bye!



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 17/2/2012,11:15

CITAZIONE (MarKoZaKKa @ 17/2/2012, 10:37)
... troppo difficile per me, nn sono un programmatore...

lo dici a me...io sono un elettricista faccine/biggrin.gif



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 17/2/2012,13:45

...nocomment...



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

manuuu
milliWatt


Gruppo:Utente
Messaggi:24

Stato:



Inviato il: 8/6/2012,10:38

Ho un problema con lo scambio dati con pc!

sul pptea ho il seguente codice

10 gg=usbinp
20 usbout=gg&""
25 waitms 50
30 goto 10

sul pc con vb 2008 EE
ho questo codice:

Private Sub btnUSBIO_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUSBIO.Click
Dim usbout() As Byte = {10}
serialPort.Write(usbout, 0, usbout.Length)
txtUSBIO.Clear()
txtUSBIO.Text = inputData
End Sub

Ma visualizzo sempre 63

Ho provato anche cosi:
pptea

10 gg=usbinpstr
20 usbout=gg&""
25 waitms 50
30 goto 10

vb
Private Sub btnUSBIO_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUSBIO.Click
serialPort.Write("Hello Word"
txtUSBIO.Clear()
txtUSBIO.Text = inputData
End Sub

ma il risultato è sempre
63

AIUTOOOOOO!!

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 8/6/2012,10:51

Il codice nel PPTEA...fa quello che penso tu voglia fare, cioè invia la stringa ricevuta dal PC...anche se è meglio che non la invii se non riceve nulla cioè len(gg) = 0 non deve inviare nulla.

CODICE
10 gg=usbinpstr
15 if ! len(gg) then 25
20 usbout=gg&""
25 waitms 50
30 goto 10


Invece ho qualche perplessità sul codice vb2008 che hai scritto...utilizzi una inputData che non dovrebbe andar bene ....perchè se ottieni 63 'rimbalza' un byte. Devi utilizzare una funzione che invii una stringa.
Inoltre hai tutti i mezzi per capire se il PPTEA riceve la stringa...visualizza ( mediate il debbugger) la lunghezza della stringa in arrivo...e poi reinviala: il debug del PPTEA non mente...oppure utilizza un display nel PPTEA...anche lui non mente.
Spero di essere stato chiaro.
Ciao
Bolle



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 
 InizioPagina
 

Pagine: (5)   1   2   3   [4]   5    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum