programmare VB.NET ...per fare la birra:-) chi mi aiuta?

marcolino

Nuovo Alfista
20 Dicembre 2005
544
0
16
milan
ciao, non sono un programmatore, ma ho l'hobby di produrre la birra in casa.
ho imparato ad usare un poco vb.net e mi sono creato un software che mi aiuta nel processo.
in pratica si tratta di tenere il mosto(orzo+acqua) ad una certa temperatura per tot tempo, seguendo vari step di temperatura.
ad esempio:
50°C x 10min
62°c x 40min
72°C x 15min
78°C x 10min

bhe mi sono costruito due interfacce da montare al pc, una sulla porta seriale (com) che legge la temperatura all'interno della pentola, ed una da collegare alla parallela (lpt) che tramite un relè accende il gas quando necessario
quello che fa il mio software è interagire con le schede ed: leggere dalla com la temperatura attraverso un sensore, pilotare il relè che accende il gas (se e quando necessario) tramite la parallela.
ho trovato un po' di info su internet e pian piano sono riuscito a costruire una bozza di programma.
mi sono costruito le interfacce hardware da attaccare alla com e quella della parallela ed ho provato il mio programma: il programma funziona, nel senso che legge la temp in modo corretto e comanda i relè, ma lo fa in manuale.....nel senso quando gli dico di leggere legge, e quando gli dico di accendere il gas lo accende. quello che non riesco a fare è farlo funzionare in modo automatico....e poichè con vb.net nn sono un drago(..anizi:) non riesco a scrivere il codice che lo faccia funzionare in automatico, cioè partendo da un file (ricetta) che contiene i vari step di temperatura, gli fa confrontare la temp misurata dalla com ed in base al valore gli fa attivare o meno il carico sulla parallela.
Ora io ho detto carica un file, perchè così potrei archiviare le ricette e sarebbe figo, ma andrebbe bene anche una tabella all'interno del programma che compilo di volta in volta...
se qualcuno è in grado ed ha voglia di darmi una mano...mi contatti pure!
...se siete comodi ad usare un altro linguaggio, a me va bene, nn ci sono problemi, vi passo la parte che gestisce le interfacce...(cmq è semplicissima, io ho trovato tutti i riferimenti in rete e dai datasheet dei sensori, o da progetti opensource simili...se preferite potete anche riscriverla nel linguaggio che preferite adottare)

grazie, saluti
 
ora, io non conosco VB.NET, ma seguendo una logica il tuo scopo è che venga lanciato un comando che acquisisce la temperatura, poi il dato acquisito viene comparato con una soglia da te impostata e in base a questo, se necessario, viene lasciato un altro comando che accende o spegne il gas...

come detto non conosco questo linguaggio, ma con un altro programma io semplicemnte racchiuderei il tutto in un ciclo infinito che va avanti a ripetere questi passaggi all'infinito, o un ciclo con un timer che ripeta queste azioni per tutto il tempo che hai impostato nel timer
 
per zazzu

ciao, si quello che hai scritto è più o meno giusto...
però non è proprio così semplice, nel senso che non hai solo una temperatura da mantenere, ma hai una serie di temperature da mantenere, ognuna x tot tempo
praticamente stai ad una certa temperatura (che cambia da birra a birra) per X minuti....
il programma legge la temperatura dalla seriale, se quello che legge è minore di quello impostato accende il gas mettendo il bit logico della parallela ad 1, la mia interfaccia elettronica che ho costruito si occupa di pilotare i relè e di conseguenza il gas.
una volta raggiunta la temperatura fa partire il countdown degli X minuti a cui deve rimanere a quella temperatura (ovviamente continuando a monitorare i °C, se diminuiscono di un valore impostato come tolleranza, riaccende il gas x mantenere la temperatura costante) una volta finito il countdown dei minuti passa alla temperatura dello step successivo ed una volta raggiunta riparte il countdown del nuovo tempo e così via...

un esempio può essere questo:
step1) 50°C x 10min
step2) 62°c x 40min
step3) 72°C x 15min ----> TEST JODIO
step4) 78°C x 10min

ovviamente il numero di step può essere di più o di meno, e lo step che fa il test dello jodio non è sempre il 3 ma può essere qualsiasi step compreso dal secondo al penultimo
a complicare un filo le cose c'è quella dicitura test jodio dello step3) praticamente il programma procede in maniera automatica come detto sopra, fino allo step che ha l'indicazione test jodio, quando arriva qui, finisce lo step (in questo esempio mantiene i 72°C per 15 minuti) alla fine dei 15min non passa automaticamente allo step successivo, ma aspetta che io faccia il test dello jodio, e solo dopo un mio consenso manuale passa a quello successivo, altrimenti continua a mantenere la temperatura (72°C) fino a che io nn gli dico di passare allo step successivo e continuare quidni in automatico fino alla fine degli step.

per quanto riguarda il linguaggio, bhe io ho usato VB.net un po' per caso, nel senso che la documentazione che avevo trovato a suo tempo, e su cui avevo studiato per fare il programma era in VB.NET, ma volendo si può realizzare con qualsiasi linguaggio....tanto io mi son fermato li poichè non riuscivo a completarlo per farlo lavorare in automatico.



x peter
bhe matlab lo usavo all'università in calcolo numerico...ma sinceramente non saprei come fargli gestire questo....

grazie a tutti e due!
 
allora, la cosa migliora da fare prima di partire con la programmazione è staendere un diagramma di flusso con tutti gli step che si vogliono affrontare, da questo sarà molto più facile realizzare il programma...

io la vedo con una prima scelta in cui ti fa scegliere un "programma di cottura", in base a questa scelta verrai mandato ad un sotto programma che altro non è che un ciclo della durata totale del programma.

all'interno di questo ciclo altri cicli, uno per ogni step che bisogna affrontare che per tot minuti verificano che la temperatura mantenga un certo valore.

una cosa del genere...

con C++ sarebbe semplicemente una serie di while e al max qualche GO TO
 

Allegati

  • birra.jpg
    birra.jpg
    44.5 KB · Visualizzazioni: 167
zazzu":oovuvzta ha detto:
allora, la cosa migliora da fare prima di partire con la programmazione è staendere un diagramma di flusso con tutti gli step che si vogliono affrontare, da questo sarà molto più facile realizzare il programma...

io la vedo con una prima scelta in cui ti fa scegliere un "programma di cottura", in base a questa scelta verrai mandato ad un sotto programma che altro non è che un ciclo della durata totale del programma.

all'interno di questo ciclo altri cicli, uno per ogni step che bisogna affrontare che per tot minuti verificano che la temperatura mantenga un certo valore.

una cosa del genere...

con C++ sarebbe semplicemente una serie di while e al max qualche GO TO

ciao, si direi che lo schema a blocchi riassume bene quello che ho descritto a parole.
il programma dovrebbe fare una cosa del genere, tenendo però che c'è un controllo in più, quello del test dello jodio!
se fleggato, quello step deve essere gestito in modo semiautomatico, cioè finito quello step non passa al successivo finchè non lo dico io ma continua a mantenere sempre la stessa temperatura costante.
ehmm....ma ti stai quindi candidando in modo velato a tentare di stendere il programma ....in c? :)
cmq grazie mille per l'aiuto in ogni caso! :OK)
 
Ehehe, mi spiace ma sono anni che non tocco un linguaggio di programmazione...in c++ sicuramente si può fare ma proprio non ricordo assolutamente la gestione delle porte!

Io più di così non riesco a fare...mi spiace!!
 
matlab, con il toolbox di acquisizione e controllo, fa tutto questo (e milioni di altre cose) in 2 o 3 comandi.
 
Top