Dimmer luci - programma per PIC - Aiuto

Sep 08, 2003 4 Replies

Salve a tutti gli utenti di questo NG.



Vengo subito al punto. Il mio obiettivo è quello di creare un piccolo dimmer luci con un PIC (16F84 o simile). Il mio problema è l'utilizzo del timer e degli interrupt.



Vi spiego quello che ho pensato:


CONTATORE (Timer0): deve cliclare all'infinito senza generare alcun interrupt dal valore 0 al valore 255. Con una frequenza tale da completare gli step da 0 a 255 in 100Hz ovvero una semionda. Credo che il valore in frequenza sia 25600Hz (Giusto?).



Il contatore deve essere comunque portato a 0 (resettato) ogni qualvolta ci sia un cambiamento di stato del pin RB0.


INTERRUPT (RB0): Ad ogni cambio di stato di questo piedino il Timer0 deve essere forzato a 0.



INTERRUPT (RB1): Quando questo piedino di input viene portato a 1, deve essere memorizzata in una variabile (nome: VSU) il valore dei piedini (dal bit più significativo a quello meno significativo): RB7-RB6-RB5-RB4-RA3-RA2-RA1-RA0 tutti piedini di input.


PROGRAMMA PRICIPALE: (RA2 = Uscita per pilotare una lampada, etc....) Deve semplicemente svolgere questo semplice algoritmo:


Inizio



VSU = 0



Ciclo: If VSU = 0 Then RA2 = 0 Else If VSU >= Timer0 Then RA2 = 1 Else RA2 = 0 Goto Ciclo;



Fine.


Ora la domanda e la richiesta:


  1. Per generare la frequenza di incremento come devo procedere? Riesco impostando il PIC? Che oscillatore devo usare? Da quanti MHz? E' preferibile usare un oscillatore esterno e collegarlo in RA4?



  1. Qualcuno mi sa scrivere un programma in PICBASIC o altro linguaggio che svolga il problema sopra esposto?



Vi ringrazio fin d'ora ed aspetto anche, magari, solo consigli utili al fine di risolvere questo "piccolo" problema, è tanto tempo che ci provo ma ancora non sono riuscito a risolverlo. Ringrazio fin d'ora chi potrà e vorrà aiutarmi.



Bye By Sy3kC



(Stefano)



Usare anche l'email se volete:



snipped-for-privacy@inwind.it



Togliere NOSPAM per rispondere.


Sy ha scritto:

Forse si può fare in maniera più semplice, con dei discreti devi procurarti un segnale di zero-crossing, cioè il momento per cui la sinu passa per lo zero, poi da questo impulso fai contare il PIC un ritardo variabile da 2mS a 8mS, finito il conteggio spari in un opto un piccolo impulso di 1mS che ti terrà acceso il TRIAC fino allo zero-crossing successivo. Con ritardo pari a 2mS avrai la massima luminosità, con il ritardo a 8mS la minima.

ciao

questo articolo e` stato inviato via web dal servizio gratuito http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it

non posso fare così perchè questa è una piccola parte di un progetto ben più grande, è per questo che utilizzo 8 bit di risoluzione in digitale "Fabio" ha scritto nel messaggio news:bji77m$7it$ snipped-for-privacy@news.newsland.it...

dimmer

dimmer

Lampada in CC o AC ??

lampada in AC. naturalmente all'usicita è collegato un optoisolatore e un triac etc etc, ma il problema non è questo.

sy

"Rinux" ha scritto nel messaggio news:bji88t$ik08n$ snipped-for-privacy@ID-185871.news.uni-berlin.de...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required