Timer esterno con PIC

Dovrei creare un timer regolabile dall'esterno con un PIC. In pratica creare un generatore di rampa, dato dal condensatore e dalla resistenza variabile, in modo da avere tempi diversi a secondo di questi 2 componenti, combinati ad un contatore interno al PIC, in modo da avere ritardi tra un minimo di 5 secondi fino ad un massimo di circa 1 ora.

Ovviamente, non devo avere un unico range, ma dei guppi di range diversi, a secondo della necessitá e dei componenti RC montati, ad esempio, un primo range da 5 secondi ad 1 minuto, un secondo range da 10 minuti max, un terzo da 30 minuti max, eccetera, gli step ovviamente saranno, per un contatore di 50, divisi appunto in 50 ma la cosa non é determinante, possono essere anche solo

10 o 20 step di regolazione, la cosa mi va ugualmente bene.. Mi interessa ovviamente una discreta ripetibilitá, qualche decimo di secondo alla scala piú bassa e una decina di secondi o poco piú, sulla scala piú alta.

In pratica quando si scatena un evento che richiede la temporizzazione, l'uscita va bassa per un tempo fisso per scaricare il condensatore, poi va alta ed il condensatore inizia a caricarsi fino al valore di soglia dell'ingresso. A questo punto, incremento un contatore fisso nel PIC e metto bassa l'uscita per un tempo fisso, abbastanza piccolo per non influire sui tempi bassi, ma abbastanza lungo da scaricare il condensatore specie se di valore elevato, nel caso di tempi lunghi. Poi riporto alta l'uscita e ricomincio il ciclo da capo. Quando il contatore ha raggiunto un numero fisso, per esempio 50, ho il tempo voluto, l'uscita va bassa per un'ultima volta, poi ritorna alta per risparmiare corrente.

In pratica il circuito RC esterno si deve comportare come un clock.

[segue schema fidocad]

La soluzione puó funzionare? Oppure esiste un'alternativa? Non posso usare piú di 3 piedini per fare il giochetto e vorrei evitare di usare altri componenti esterni, come il classico 555 usato come clock. Posso usare l'ADC, commutandolo peró da altri piedini in cui mi serve.

[FIDOCAD] LI 55 25 55 85 MC 90 35 3 0 090 MC 90 15 3 0 010 LI 90 15 90 25 MC 90 40 1 0 080 LI 90 35 90 40 MC 90 70 0 0 180 MC 60 65 0 0 080 MC 90 65 2 0 200 LI 90 50 90 70 LI 75 65 70 65 LI 60 65 55 65 LI 90 55 55 55 SA 90 55 SA 90 65 LI 20 25 55 25 LI 55 85 20 85 TY 20 70 5 3 90 0 0 * PIC 16F628 TY 30 50 5 3 0 0 0 * ingresso TY 35 60 5 3 0 0 0 * uscita MC 90 80 0 0 045 TY 0 120 5 3 0 0 0 * uscita LI 25 120 35 120 LI 35 120 35 125 LI 35 125 45 125 LI 45 125 45 120 LI 45 120 105 120 LI 105 120 105 125 LI 105 125 115 125 LI 115 125 115 120 LI 115 120 165 120 LI 35 110 45 110 LI 110 110 115 110 LI 45 110 105 95 LI 105 95 110 110 LI 115 110 165 100 TY 110 90 5 3 0 0 0 * soglia LI 110 95 130 95 TY 0 105 5 3 0 0 0 * ingresso
--
A me il caffé piace che sappia di figa!
Azzo dici?
La figa é una "san-buca", e il caffé deve avere lo stesso odore!
Reply to
BIG" (Umberto
Loading thread data ...

per me ti stai complicando la vita... esistono pic che sono in pratica già pronti per fare RTC (es: pic16f88, vedere datasheet) oppure metti un quarzo da orologio (32768Hz) e lo usi per "alimentare" un timer con sorgente esterna (il timer1 in genere) oppure, per fare i fini, puoi impiegare un TCO tipo il ds32khz della dallas

-ice-

Reply to
ice

non capisco perche' non usi una soluzione tutta software

il '628 ha tre timer interni con cui e' possibile realizzare tempificazioni molto precise in quanto direttamente collegate al quarzo del clock.

leggiti i capitoli del datasheet relativi ai Timer troverai spunti interessanti

tra l'altro questa soluzione non usa ne componenti aggiuntivi ne pin del micro, a parte , eventualmente quelli di ingresso degli eventi.

Reply to
mmm

Il giorno Fri, 25 Aug 2006 20:34:14 +0200, mmm, in [it.hobby.elettronica], oso' esternare:

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Il programma deve essere unico, per le varie applicazioni che devo utilizzarlo. A secondo del tipo di applicazione debbo avere range di temporizzazioni diverse, per questo pensavo ad una coppia RC da usare per determinare il range dei valori. Debbo poter variare il tempo, con un potenziometro a seconda dell'esigenza, magari facendo varie prove durante la stessa giornata fino a trovare il tempo ottimale. Il PIC in questione, ce l'ho giá, da un paio di anni inutilizzato, e non mi sembra il caso di acquistarne un'altro.

--
A me il caffé piace che sappia di figa!
Azzo dici?
La figa é una "san-buca", e il caffé deve avere lo stesso odore!
Reply to
BIG" (Umberto

Il giorno Fri, 25 Aug 2006 20:26:51 +0200, ice, in [it.hobby.elettronica], oso' esternare:

Come ho scritto:

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

La soluzione piú semplice sarebbe di usare il classico 555 come astabile, col piedino 3 messo all'ingresso del micro ed il piedino 4 del reset all'uscita. Quando metto alta l'uscita, il 555 manda impulsi di clock che il contatore interno del PIC conta. Variando la frequenza del 555 posso fare tutti i tempi che voglio! Ma io NON voglio usare componenti esterni, e vorrei fare la cosa col solo PIC. Come ho risposto a mmm, i tempi debbono essere variabili a piacimento.

--
A me il caffé piace che sappia di figa!
Azzo dici?
La figa é una "san-buca", e il caffé deve avere lo stesso odore!
Reply to
BIG" (Umberto

BIG (Umberto) ha scritto:

Tutti i PIC hanno almeno un timer interno, non so quale modello hai tu ma lo avra' anche lui

Via software puoi ottenere qualsiasi tempo, e con i pin liberi collegati ad esempio a dei dip-switch puoi programmare sempre via software il range che ti interessa

Reply to
Giuss

""BIG" (Umberto)" ha scritto nel messaggio news:44ef3333.4336847@127.0.0.1...

1/10 sec. sulla tua scala bassa, che è 1 minuto = 1/600. Eequivale "praticamente" ad 1 LSB con un ADC a 10 bit. Avere 1 LSB di ripetibilità su un potenziometro senza essere bravi progettisti e bravi tecnici non è possibile. Sulle tecniche di campionamento a bassa deriva etc. si è' scritto a fiumi sul gruppo. Puoi avere 2 LSB se se sei un hobbista in gamba e 4 LSB se sei un hobbista, così, spannometricamente....

Ora che hai un valore campionato, utilizzi un contatore interno, magari nidificato, e lasci stare l'RC esterno, come ti hanno detto tutti. Un condensatore e una resistenza hanno derive fino a migliaia di ppm/C°, e questo ti rende arduo ottenere la ripetibilità che desideri man mano che cala la sera e cambiano le stagioni...

--
simone.bern
Mr. Heisemberg is not the only one who can affect a measurement by looking 
at it (Robert A. Pease)

zsimonez.zbernz@zliberoz.it (Rimuovere i caratteri di zorro per rispondere 
via mail)
Reply to
Simone Bern

il pic in questione e' dotato di EEPROM per i dati interna da 128 byte in cui memorizzare parametri, e di una UART per interfacciarsi al PC con cui poter fare, una tantum ma anche 10000 volte , la configurazione di questi parametri

Reply to
mmm

Il giorno Sat, 26 Aug 2006 09:04:12 +0200, mmm, in [it.hobby.elettronica], oso' esternare:

Non ci capiamo, scusa!

Mia madre ha 81 anni compiuti, e non é in grado di aprire una scatola metallica chiusa con incastro e 4 viti, toglere i 2 dadini che fissano il circuito stampato dal contenitore, smontare il PIC dallo zoccoletto, montarlo sul programmatore, accendere il MIO PC, con la MIA password del bios, far partire il giusto sistema operativo, capire il nome del file sorgente, modificarlo, compilarlo ed eseguire la programmazione, ed inserire poi alla fine il PIC nel suo zoccolo, dopo una forsennata caccia-al-tesoro-per-cercare-gli-occhiali, ed infine richiudere il tutto.

Se saltiamo la fase di programmazione sopra descritta, ed usiamo l'interfaccia seriale, mia madre, si troverebbe ancora impicciata col dover accendere un computer (che odia a morte) e non sa nemmeno come si faccia, figuriamoci ad usarlo, e capire come cacchio fare a modificare un temporizzatore. Sa usare il telecomando TV, perché gli ho segnato i tasti da usare, figuriamoci un PC.

Ora capisci perché insisto a dover usare solo un potenziometro?

Per la cronaca, il dispositivo, serve per annaffiare i fiori sul balcone, ed il tempo deve essere regolato a secondo dei vasi che ci sono, a volte 2 piccoli, a volte 2 grandi, a volte 7 misti (tra grandi e piccoli), a volte altre combinazioni. Poi dipende dalla stagione, in inverno serve poca acqua = tempi bassi, in estate molta acqua = tempi piú alti.

Di questi dispositivi, ne devo fare diversi, sia per balconi (che hanno un range di tempi bassi), sia per giardini con range di tempi piú alti. Questo spiega la mia insistenza nel volere decidere tramite un condensatore, sulla scala dei tempi, e su un potenziometro per poterlo regolare al volo quando serve.

Come dice (giustamente) poi Simone Bern, ed a cui non avevo pensato, é che avevo specificato delle tolleranze dei tempi troppo strette e difficili da ottenere con un semplice RC. In tal caso, mi accontenteró di quello che posso ottenere usando potenziometri a filo a 10 giri e condensatori professionali.

Al limite, useró l'ingresso ADC per leggere il valore del potenziometro e gli altri 2 pin liberi, come input digitali per una sorta di prescaler sul contatore interno (2 pin = 4 possibili range di valori). Poi a secondo del tipo di applicazione, vedró di settare tale presaler con dei dip-switch.

Peccato peró che l'idea di usare un circuito RC che mi avrebbe consentito una totale libertá, abbia creato cosí tanta confusione...

Togli un despammed per rispondere

--
,,, e dopo che ci avranno trasformato in vegetariani, a causa del vino al
metanolo, del pesce al mercurio, dei polli alla diossina, dei maiali agli
ormoni,  delle mucche,  pecore e  capre pazze,  ci daranno da mangiare la
frutta al benzene e la verdura radioattiva.
La nostra unica salvezza sara' nel Soylent Green!
Reply to
BIG" (Umberto

""BIG" (Umberto)" ha scritto nel messaggio news:44f00c82.1754581@127.0.0.1...

Senza alcuno spirito di polemica, se tu avessi posto la seguente questione:

1) fare timer per annaffiatoio per nonna 2) pic con adc e 3 pin liberi 3) tempi quanto più ripetibili possibili

Avremmo potuto fornirti la soluzione (o un paio di soluzioni) più velocemente. In generale, per avere le maggiori possibilità di successo, vale la vecchia regola aurea: descrivere bene il problema, poi gli obiettivi, poi la cronistoria dei passi fatti fino al quel momento. Se uno parte formulando la soluzione, si impicca da solo... Sperando che serva anche agli altri.

--
simone.bern
Mr. Heisemberg is not the only one who can affect a measurement by looking 
at it (Robert A. Pease)

zsimonez.zbernz@zliberoz.it (Rimuovere i caratteri di zorro per rispondere 
via mail)
Reply to
Simone Bern

Il giorno Sat, 26 Aug 2006 12:21:41 +0200, Simone Bern, in [it.hobby.elettronica], oso' esternare:

ehmmm... mamma, non nonna é ancora troppo giovane ;-)))

Nessuna polemica, ci mancherebbe!

Era solo uno scambio di opinioni su una soluzione che mi sembrava fattibile, e visto che sono appena tornato dalle ferie, e un poco restío a dedicare ore per esperimenti, chiedevo opinioni, prima di mettermi al lavoro. Il giochino RC mi sembrava ottimo per avere tutti i tempi che mi servivano, facilmente adattabili in caso di uso differente dell'apparecchietto (balcone/giardino e vice-versa) senza dover mettere mano alla programmazione del PIC.

Togli un despammed per rispondere

--
,,, e dopo che ci avranno trasformato in vegetariani, a causa del vino al
metanolo, del pesce al mercurio, dei polli alla diossina, dei maiali agli
ormoni,  delle mucche,  pecore e  capre pazze,  ci daranno da mangiare la
frutta al benzene e la verdura radioattiva.
La nostra unica salvezza sara' nel Soylent Green!
Reply to
BIG" (Umberto

Il giorno Sat, 26 Aug 2006 09:09:02 GMT, snipped-for-privacy@Flowers.it ("BIG" (Umberto)) ha scritto:

E questo chiude il discorso sull'interfacciamento con un pc.

Con una rete rc esterna, come ti ha detto Simone, è praticamente impossibile avere la precisione e la stabilità dei tempi richiesta.

L'unico modo per risolvere il problema è utilizzare uno dei timer interni (anche i pic più piccoli, della famiglia 12f, hanno due timer, di cui uno a 8 e uno a 16 bit).

La programmazione del tempo da parte dell'utente può essere realizzata in modi diversi, ad es. con quattro commutatori binari, due per i minuti e due per i secondi; in questo caso, utilizzando una configurazione in multiplexing, occorrono 4 ingressi e 4 uscite del pic.

Se i tuoi requisiti di utilizzo dell i/o del pic sono più stretti allora ci si deve inventare qualcos'altro.

Reply to
Luigi

potevi dirlo dall'inizio pero' !!!

e' difficile dare consigli quando si ha una visione molto parziale del problema

peccato che nel primo messaggio tu non abbbia parlato di potenziometri ma si semplici gruppi RC, e che sembrava che la modifica dei componenti venisse fatta in fase di taratura del sistema e non in corso d'uso

una possibile alternativa al potenziometro e' un commutatore rotativo ed una stringa di resistenze in modo da avere un partitore di tensione a 12 valori da leggere coll'ADC

Reply to
mmm

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.