Go Down

Topic: Dubbio su dimmer lampadina con TRIAC (Read 3131 times) previous topic - next topic

Guglio

Feb 07, 2013, 07:51 pm Last Edit: Feb 07, 2013, 07:54 pm by Guglio Reason: 1
Ciao a tutti, sto felicemente utilizzando una schedina che avevo assemblato con TRIAC e optoisolatori per comandare diverse lampadine.
Per semplicità ho usato degli optoisolatori Zero-Crossing... solo che adesso sorge il problema: se non sbaglio l'opto zero crossing non s'accende e non si spenge finchè non raggiunge lo zero, quindi in questo modo una corrente pulsata sarebbe inefficace per un dimming..
E se io invece facessi "saltare" dei cicli alla lampadina riuscirei  a dimmerarla?
Mi spiego meglio: la 230 fa 50 cicli in un secondo, quindi l'opto s'accende e si spegne 50 volte al secondo, se io lo facessi accendere una volta sì ed una no (solo 25 accensioni) avrei come effetto una lampadina dimmerata al 50% ?

(Certo mi serve sempre un trasformatore per individuare il passaggio dello zero ma in questo modo non dovrei dissaldare gli optoisolatori che sto usando per metterne di NON-ZeroCrossing)


Spero di essere stato comprensibile  :smiley-sweat: :smiley-sweat:
ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

uwefed

L'opotisolatore zero crossing accende l'uscita solo quando la tensione alteranta passa per il zero (tensione) e se in quel momento é ancore pilotato. Lo spegnimento del triac a optoisolatore spento non funziona tramite l'optoisolatore ma perché nel passaggio del zero (della corrente) il triac si spegne.

Sí puoi far passare delle (semi)onde intere e lasciare pause. Questa tecnica si chiama treno di impulsi. Normalmente viene fatto passare una onda intera per avere una parte positiva e negativa della tensione. È realizzabile facilmente e senza sincronizzazione. basta tener acceso l' optoisolatore per il tempo di 2 semionde (20mS a un alternata di 50Hz)
Questo pilotaggio é molto indicato con riscaldamento, ma meno per lampadine o motori perché potendo solo sceglere pezzi dell'alternata da 20mS potrebbe essere visibile il pilotaggio e fare oscillare o farfallare il motore o lampadina.   

Ciao Uwe

Guglio

Vado a riprendere il mano il libro di fisica e a dare un occhio alle onde ma ho qualche dubbio...
Dunque lo sketch x provare è questo:
Code: [Select]

  delay(T);
  digitalWrite(A5, HIGH);
  delay(T);
   digitalWrite(A5, LOW);

Dove ho provato a variare T per fare un po' di prove...
Se metto T=20 si vede palesemente lo sfarfallio, in questo modo dovrebbe far passare un onda sì ed una no giusto?
Se metto T=10 cioè una semionda sì ed una no non si vedono sfarfallamenti ma varia la luminosità... cioè che ne so dopo 10 secondi sale un po' e dopo magari scende... è data dal fatto che la rete non è perfettamente a 50Hz? (misuro 49.90)  o dal fatto che il delay non è preciso e il digitalwrite è lento?
ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

Guglio

#3
Feb 09, 2013, 03:32 pm Last Edit: Feb 09, 2013, 03:37 pm by Guglio Reason: 1
L'elettronico locale mi ha venduto gli opto come degli zero crossing... in realtà s'è sbagliato!! MOC3021 (http://www.datasheetcatalog.org/datasheet/fairchild/MOC3021-M.pdf) io lo Zero Detector non lo vedo citato... quindi come io alimento l'opto lui non aspetta lo zero ma accende subito giusto?
Quindi mi serve una cosa così:
ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

uwefed

Il MOC3041/2/3 é un zero crossing.
Ciao Uwe

BaBBuino

Ma che ci devi fare nello specifico?

Fare un dimmewr con Arduino (o un qualsiasi MCU) è abbastanza semplice. Lo zero crossing serve anche per evitare le correnti di Rush (e tutte le spurie di commutazione) che si hanno utilizzando un normale fotoaccoppiatore, che taglia l'onda "a babbo", quindi non sincronizzato.

Guglio

Solo che, come ha confermato uwe, il mio optoisolatore non è zerocrossing (moc3021 non 3041) quindi devo fare un circuito di zero crossing...
Tutto ció perchè vorrei utilizzare l'arduino come dimmer
ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

BaBBuino

#7
Feb 10, 2013, 08:22 pm Last Edit: Feb 10, 2013, 08:26 pm by BaBBuino Reason: 1
Ti servono 100 Hz, quindi una doppia semionda, da cui estrarre un impulso da usare come INTERRUPT:



Una volta agganciato ad un INTERRUPT, devi far partire un contatore che ritarda l'attivazione del TRIAC rispetto al passaggio per lo zero.



Come vedi dalla figura, spostando con un ritardo l'impulso di attivazione del TRIAC, lo attivi ad un dato punto della semionda. Meno semionda c'è, e minore sarà il valore medio, quindi la tensione ai capi di un eventuale carico.

Ramenta che questi sistemi funzionano solo su carichi resistivi come lampadine e/o faretti a 220V. Con lampadine a basso consumo, non funziona, tantomeno su carichi induttivi (ci vorrebbe un circuito rognoso fatto con IGBT in antiparalelo).

Guglio

Grazie mille! Provo e vi faccio sapere!
Scrivo poi in aggiunta a ciò che hai scritto, per i posteri che finiranno  su questa discussione, che il triac si può solo "accendere" e non "spegnere", si disattiva a corrente = 0, cioè quando la sinusoide passa per lo 0...

(Mi sembra di aver detto cosa giusta no?)
ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

leo72

@babbuino:
potresti spiegarmi il circuito di cui hai messo lo schema, per piacere?
Non riesco a capirlo.
Inoltre il segnale in uscita, come lo utilizzi?

tonid

Quote
potresti spiegarmi il circuito di cui hai messo lo schema, per piacere?
Non riesco a capirlo.

D1 e D2 servono a trasformare l'alternata in semionde positive che vanno applicate alla base del transistor. Quando la tensione scende sotto i 0,7 volt il transistor si interdice(non conduce) portando alto il suo collettore e viceversa quando supera i 0,7 volt si satura portando basso il suo collettore dando origine ad un'onda quadra sul punto "B".
Il condensatore C1 serve per livellare la tensione da applicare al collettore del transistor ed il diodo D3 serve per non far tornare indietro al punto "A" la tensione livellata dal condensatore.
R1,R2 polarizzano la base e R3 limita la corrente di collettore.

uwefed


Grazie mille! Provo e vi faccio sapere!
Scrivo poi in aggiunta a ciò che hai scritto, per i posteri che finiranno  su questa discussione, che il triac si può solo "accendere" e non "spegnere", si disattiva a corrente = 0, cioè quando la sinusoide passa per lo 0...

(Mi sembra di aver detto cosa giusta no?)

Il triac si spegne quando la corrente va a Zero , non necessariaemnte la tensione.
Ciao Uwe

Michele Menniti

penso che intenda collegarlo ad un pin interrupt di Arduino per gestire poi il pilotaggio del TRIAC, ma non potresti usare direttamente un timer interno come riferimento a 100Hz e duty al 10%, c'è bisogno di tutta sta cosa?
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

@tonid:
grazie della spiegazione.

@michele:
non può funzionare perché manca la sincronizzazione tra il timer e la sinusoide del segnale della rete elettrica.

BaBBuino


Quote
potresti spiegarmi il circuito di cui hai messo lo schema, per piacere?
Non riesco a capirlo.

D1 e D2 servono a trasformare l'alternata in semionde positive che vanno applicate alla base del transistor. Quando la tensione scende sotto i 0,7 volt il transistor si interdice(non conduce) portando alto il suo collettore e viceversa quando supera i 0,7 volt si satura portando basso il suo collettore dando origine ad un'onda quadra sul punto "B".
Il condensatore C1 serve per livellare la tensione da applicare al collettore del transistor ed il diodo D3 serve per non far tornare indietro al punto "A" la tensione livellata dal condensatore.
R1,R2 polarizzano la base e R3 limita la corrente di collettore.


Bravo! Vedo che gli "Analogici" non sono tutti morti... :D

Go Up