Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

timer per la pasta

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] timer per la pasta

Messaggioda Foto Utenteramboluis » 2 set 2012, 19:23

ciao a tutti :) e da un po che non scrivevo piu
allora qualcuno di voi si ricorderà del mio progetto riguardante un allarme per lo scooter dove ho usato per la prima volta un PIC ,naturalmente il tutto non ha funzionato e qualcuno di voi mi avevo consigliato di fare qualcosa di piu semplice tipo un timer per la pasta ,cosi ora mi sono messo in testa di fare questo timer per la pasta
:mrgreen:
il tutto dovrebbe far suonare la sirena (che era pensata per l'allarme) a fine conteggio per indicare che la pasta e pronta
ho gia acquistato alcuni display lcd a 7 segmenti avevo gia in mente il circuito ,praticamente questa volta non ho visto grandi difficoltà nella realizzazione del circuito ,fino a quando ho realizzato che ci manca la parte software
e che non so proprio come fare cioe mentre in altri progetti avevo un minima idea di come fare qui zero buio piu totale
ora voi mi direte che si trovano un sacco di progetti per un timer (sono un indovino :D )il problema e che tutti spiegano per filo e per segno la parte hardware e poi solitamente hanno un link a fine pagina per scaricare il file .hex
io pero vorrei scrivermi il software da solo, però non so proprio come fare, o meglio ho un idea in mente come fare ,cioè di fare 6 variabili ,3 per lo schermo hh,mm,ss che chiamiamo rispettivamente (a,b,c) e 3 per l'ora (d,e,f) impostata all' inizio ,poi fare tipo cosi

while (a,b,c >0)
__delay_ms (1000);
c=f-1 // questo per 59 volte
if (f= 0)
{b=e-1 }
if (e=0)
{a=d-1}

comunque avete capito un robo improponibile e confuso spero che voi avete idee migliori e possiate illuminare
Avatar utente
Foto Utenteramboluis
80 1 7
Stabilizzato
Stabilizzato
 
Messaggi: 314
Iscritto il: 28 giu 2012, 18:39

2
voti

[2] Re: timer per la pasta

Messaggioda Foto Utentesimo85 » 2 set 2012, 19:30

Per un progetto come il tuo puoi usare anche la __delay_ms, incrementi una variabile per i secondi ed un'altra per i minuti. So easy.. Che micro vuoi usare?
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[3] Re: timer per la pasta

Messaggioda Foto Utenteramboluis » 2 set 2012, 19:34

il PIC che vorrei usare ( o meglio sono un po costretto ad usare perche c'e l'ho gia ) e il 16f887
gohan ha scritto:Per un progetto come il tuo puoi usare anche la __delay_ms, incrementi una variabile per i secondi ed un'altra per i minuti. So easy..

in che senso ?
Avatar utente
Foto Utenteramboluis
80 1 7
Stabilizzato
Stabilizzato
 
Messaggi: 314
Iscritto il: 28 giu 2012, 18:39

1
voti

[4] Re: timer per la pasta

Messaggioda Foto Utentesimo85 » 2 set 2012, 19:48

Nel senso che dopo ogni temporizzazione di 1s incrementi la variabile dei secondi. Quando questa arriva a 60, incrementi quella dei minuti ed azzeri quella dei secondi. Il tutto ovviamente ciclico fino a n minuti etc. Ovviamente prima preselezioni un valore per i minuti, e volendo anche per i secondi prima di cominciare il conteggio.

La pasta di grano duro cuoce in circa 8 - 10m, quella fresca in 2m. :mrgreen:
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

1
voti

[5] Re: timer per la pasta

Messaggioda Foto Utenterusty » 2 set 2012, 19:52

Piu' che pensare a come generare l'allarme, che è abbastanza semplice, dovresti iniziare provando a scrivere dei numeri sui 6 display seven-seg. Monta il circuito base, con quarzo da 4 MHz, decodifica seven-seg (ad esempio 4511 mi pare), resistori, condensatori, pulsanti (bisogna decidere come settare il tempo, quanti tasti, ecc...) e 6 BJT per multiplexare le uscite ai display. Dopo montato tutto, inizierei con il studiarmi il modo di fare il multiplexing e provare ad inviare una stringa di cifre e visualizzarle correttamente, decidere ogni quanto fare il refresh (direi 500 Hz vanno bene), e poi si va avanti; insomma lavora in modo modulare.
Sai far lavorare i timer interni del PIC? Interrupt on overflow ti dice qualcosa? Sai montare quello che ho detto senza problemi? Prova a buttar giu' uno schema indicando come vuoi impostare il tempo e quanti pulsanti vorresti usare. Riserva almeno 4 + 6 pins per le uscite ai display, il resto delle porte usalo a tuo piacimento per i pulsanti di set. :ok:
Avatar utente
Foto Utenterusty
4.075 2 9 11
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 1578
Iscritto il: 25 gen 2009, 13:10

1
voti

[6] Re: timer per la pasta

Messaggioda Foto Utentesimo85 » 2 set 2012, 19:56

rusty ha scritto:il resto delle porte usalo a tuo piacimento per i pulsanti di set.

Oltre ad usare i timer, che sicuramente è la soluzione migliore, direi anche di usare il PORTB, fin da subito per la selezione dei minuti e/o secondi, appunto per i pulsanti di set sfruttando appunto l' "Interrupt on change".
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[7] Re: timer per la pasta

Messaggioda Foto Utenteramboluis » 2 set 2012, 20:14

montare sono capace ,sto ancora cercando di capire gli interrupt comunque sono a buon punto
il montaggio non e un problema ho gia montato un circuito base per PIC cioe con quarzo ;stabilizzatore di tensione 7805 e presa per la programmazione solo che ho paura di finire l'hardware e trovarmi senza software
Avatar utente
Foto Utenteramboluis
80 1 7
Stabilizzato
Stabilizzato
 
Messaggi: 314
Iscritto il: 28 giu 2012, 18:39

1
voti

[8] Re: timer per la pasta

Messaggioda Foto Utenterusty » 2 set 2012, 20:17

Finisci l'hardware con i 6 display, 6 BJT, la decodifica comune 4511 e i pulsanti per il set del tempo, non preoccuparti del resto, il software lo scriviamo "attorno" al tuo hardware senza problemi. I tuoi display sono a catodo o ad anodo comune?
Avatar utente
Foto Utenterusty
4.075 2 9 11
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 1578
Iscritto il: 25 gen 2009, 13:10

2
voti

[9] Re: timer per la pasta

Messaggioda Foto Utentesimo85 » 2 set 2012, 20:20

ramboluis ha scritto:sto ancora cercando di capire gli interrupt

Una interrupt è un evento asincrono che viene eseguito in qualsiasi istante dell'esecuzione del programma principale (main). La sua esecuzione interrompe appunto l'esecuzione del programma principale, viene appunto eseguita l'interrupt e quando ha fatto quello che doveva fare, il programma principale riprende l'esecuzione da dove era rimasto.

Supponiamo che stai incrementando una variabile ogni n secondi. Hai abilitato la IOC con il PORTB e vuoi azzerare il counter in un momento non determinato. Premi il pulsante e la variabile si azzera, che sia arrivata a 10, a 100 etc. Senza la interruzione, l'esecuzione non sarebbe asincrona quindi non potresti azzerare la variabile nel momento a tuo piacimento.

Spero di essere stato chiaro e comprensivo, anche se ripetitivo nelle parole.

ho paura di finire l'hardware e trovarmi senza software

Tu butta giù il codice, noi lo ripassiamo e successivamente quando sarà OK, butti giù la pasta. :mrgreen:

EDIT: fai prima lo schema come già suggerito dal buon Foto Utenterusty.
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[10] Re: timer per la pasta

Messaggioda Foto Utenteramboluis » 2 set 2012, 20:33

con i display ho fatto un gran casino ,cioè gli ho comprati ,ho la sigla ma non riesco a trovare il datasheet
la sigla è :LB-403md (non so se cambia qualcosa ma sono a 3 cifre )
gohan ha scritto:Una interrupt è un evento asincrono che viene eseguito in qualsiasi istante dell'esecuzione del programma principale (main). La sua esecuzione interrompe appunto l'esecuzione del programma principale, viene appunto eseguita l'interrupt e quando ha fatto quello che doveva fare, il programma principale riprende l'esecuzione da dove era rimasto.

Supponiamo che stai incrementando una variabile ogni n secondi. Hai abilitato la IOC con il PORTB e vuoi azzerare il counter in un momento non determinato. Premi il pulsante e la variabile si azzera, che sia arrivata a 10, a 100 etc. Senza la interruzione, l'esecuzione non sarebbe asincrona quindi non potresti azzerare la variabile nel momento a tuo piacimento.

Spero di essere stato chiaro e comprensivo, anche se ripetitivo nelle parole.

grazie mille per la spiegazione ma questo l'ho capito avevo solo qualche problema con il mettere in pratica il tutto e con le spie ecc.
rusty ha scritto:Finisci l'hardware con i 6 display, 6 BJT, la decodifica comune 4511

nopn ho ben capito sta cosa con la decodifica comune 4511 ?
Avatar utente
Foto Utenteramboluis
80 1 7
Stabilizzato
Stabilizzato
 
Messaggi: 314
Iscritto il: 28 giu 2012, 18:39

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti