Bonjour à toutes et à tous !
je viens de réaliser un petit montage autour d'un PIC qui permet un allumage en douceur d'ampoules à incandescence (dans mon cas des tubes de guirlandes de Noël 230V). L'allumage progressif permet de limiter le pic de courant important lorsque les filaments sont froids, donc de prolonger la durée de vie de ces guirlandes.
Bien entendu, ce montage peut s'adapter à bien d'autres applications !
Pour le schéma, je me suis basé sur celui de ce site :
http://www.ivica-novakovic.from.hr/Lightdimmer-eng.htm
Avec les différences suivantes : pas de récepteur IR ni de poussoir et le triac est commandé par le port GP0.
J'ai utilisé un PIC 12F675 (ce n'avais que celui là de stock en "petit"). N'importe quel PIC possédant une interruption externe peut convenir, voici mon code source (en CCS) :
Si vous désirez typon du circuit imprimé, je l'ai réalisé avec WinTypon 5, demandez le en mp, je vous l'enverrai par e-mail.Code:#include <12F675.h> #FUSES NOWDT, INTRC_IO, NOCPD, NOPROTECT, NOMCLR, PUT, NOBROWNOUT, BANDGAP_HIGH #use delay(clock=4000000) static long int Dim = 9000; void FireTRIAC() { output_high(PIN_A0); //Fires TRIAC delay_us(5); output_float(PIN_A0); //Switch to HiZ Mode delay_us(5); } #int_EXT void EXT_isr(void) //each zero cross ISR is enabled { static int1 Edge = 0; Dim=Dim-10; //decrease Dimming value each 10mS delay_us(Dim); FireTRIAC(); //Change Trigger Mode Edge = Edge^1; if (Edge) ext_int_edge (0,L_TO_H); else ext_int_edge (0,H_TO_L); } void main() { ext_int_edge (0,H_TO_L); delay_ms(500); enable_interrupts(INT_EXT); enable_interrupts(GLOBAL); while(TRUE) { if (Dim==0) //Drives TRIAC in normal mode { disable_interrupts(INT_EXT); FireTRIAC(); } } }
N'hésitez pas à laisser vos commentaires, critiques, ... sur ce petit montage !
A+
Laurent
-----