Vai al contenuto
PLC Forum


Interfaccia TRIAC e MOSFET (fotoaccoppiate) per Aduino


GiovanniG1

Messaggi consigliati

Ciao amici! Ho aggiunto Arduino per una pura sciccheria )) Sappiamo che alla fine abbiamo a che fare sempre più o meno con gli stessi parametri.

Ho bisogno di vostri gentili consigli e della vostra esperienza in questo campo. Sto realizzando dei dimmer, un "braccio" operativo per la Rasberry che monta Node Red. In pratica si tratta di un Mega2560 con la funzionalità di ricevere i comandi attraverso l'I2c (con un convertitore di tensione/interfaccia) e di pilotare tramite PWM i Mosfet per i led a bassa tensione, e di un altro Arduino Mini con un ATmega328 dedicato alla gestione dello zero crossing e pilotaggio TRIAC.
Il pilotaggio è secondo me una parte critica della progettazione, devo cercare di creare qualcosa di estremamente affidabile nel tempo, i compoeneti devono operare entro le loro finestre e senza stress. Dalla corrente del fotodiodo all'innesco del gate del TRIAC, per esempio, ma ora vengo alle domande precise:

Per pilotare il TRIAC mi sono guardato un pò in giro e ho trovato essenzialmente due schemi:
1) FBpmtHpA2gA-1.jpg.57406b5b32cf910be8cfdd4e4b7e60ed.jpg

fin troppo semplice, utilizza solo una resistenza da 1k.

2) AC-board-schematic.jpg.1b8b4971950becc8bde14f0a3063858c.jpg

Usa solo 56ohm per pilotare il gate, mi chiedo a questo punto se intendono pilotare il triac solo all'inizio della semionda garantendo una corrente sufficiente anche a basse tensioni.. perchè va bene che come il triac si eccita taglia completamente la corrente di gate, ma supponiamo che piloti il fotodiodo a metà della semionda, quando di picco ci sono 310volt, meno una ventina di soglia del DIAC sono comunque 5Amper di picco nel gate.. siamo sicuri che sto circuito sia indicato a questo scopo? A me pare piuttosto che vogliano lavorare sul carico facendo uscire una semionda ogni tot sempionde.. piuttosto di "tagliarle" col metodo classico.
Rimanendo in tema, al contrario, mi pare che con 1k ohm si rischi di non avere abbastanza corrente per accendere subito il triac dopo lo zero.. anzi se in più ci aggiungiamo la caduda del DIAC.. questo circuito potrebbe attivarsi a una tensione troppo alta, tagliando troppo la semionda? In effetti per fare i 2,5mA che il BT136 ha bisogno bastano 2,5 volt.. quindi direi che questo problema non c'è..  (il picco a 300v sarebbe di 300mA, ben al di sotto dei 2A massimi), ma allora perchè si inventano gli schemi con resistenze bassissime?

Volevo chiedervi anche del'importanza della rete capacitiva C1/R4, premetto che io piloto lampade LED 220V dimmerabili, ed eviterei di avere componenti che lasciano passare anche minime correnti, forse a volte bastano per caricare qualche codensatore.. e innescare un lampeggio. Serve solo per eventuali carichi induttivi?

 

MOSFET:
per il mosfet vorrei usare uno schema simile (canale N)
 

arduinoMosfet.jpg.b59bc24b7869ea2c3de6ad7d799c836b.jpg


La questione qui è scegliere un fotoaccoppiatore che permetta di caricare la capacità del mosfet in tempi brevi e senza danneggiarsi, tenendo conto che allo stesso tempo dovrà anche forzare la R2 alla tensione di lavoro, ed essendo la R2 appunto un valore che permetta una rapita scarica della capacità interna (per evitare di far lavorare il mosfet in zona lineare, che con tutti quegli amper andrebbe a dissiparmi un casino) la cosa mi pare non troppo semplice. Voi cosa consigliate? Forse sarebbe opportuno limitare la corrente di carica per non danneggiare nel tempo il fotoaccoppiatore
Lo so che ci sono accoppiatori "logici" che hanno due transistor interni, funzionanti alternativamente, ma io ho l'handicap di avere delle tensioni differenti sui led, a volte 24, 12 e 5, con i suoi diversi alimentatori.. insomma montare un convertitore Dc/dc non mi pare una gran trovata. Secondo me il compromesso per non fare lavorar eil mosfet in zona lineare e non stressare troppo il fotoaccoppiatore c'è.

Grazie mille per le cortesi risposte!!

 

Modificato: da GiovanniG1
Link al commento
Condividi su altri siti


Specifico che la frequenza di PWM che voglio usare è 500Hz, secondo me un valore che tiene in considerazione della lunghezza dei cavi e delle possibili vibrazioni della luce. Credi si ridcano anche i possibili effetti di risonanza ed impulsi contrari

 

Molto interessante usare un doppio fotoaccoppiatore sfruttando sia il livello logico alto che quello basso del processore.. credo che userò questa soluzione

optocoupler-1-1024x1024.thumb.jpg.d3c7b24e96d275e62171cd91758b3a0f.jpg

PS: mi consigliate di usare diodi shotty (in parallelo al carico, sui mosfet ci sono già, almeno in qeullo che ho scelto) per eliminare eventuali picchi contrari del carico? Credo sia una buona idea..

Modificato: da GiovanniG1
Link al commento
Condividi su altri siti

Rispondo brevemente. 

Per quanto riguarda la parte "TRIAC" e in particolare al secondo schema in cui nutri la perplessità del :

Quote

supponiamo che piloti il fotodiodo a metà della semionda, quando di picco ci sono 310volt, meno una ventina di soglia del DIAC sono comunque 5Amper di picco nel gate

Lo schema riporta un MOC3041, essendo un fotoaccoppiatore con Zero Cross integrato, il problema non sussiste, ma non penso vada bene per quello che vuoi fare, dato che vuoi dimmerare...

 

Per quanto riguarda il primo circuito, considera che ci sono Triac con gate molto sensibili, es. dato che nello schema riporta BT137 - 800 , se prendi un BT137-800E, la Igt vale 5-10mA...

Comunque anche a stare un poco più bassi con la R sul gate, es 470 ohm, grossi problemi non ce ne sono, considera sempre che una volta innescato il Triac la tensione ai suoi capi è molto bassa, diciamo 0, perciò la corrente di Gate di conseguenza diventa nulla.

 

C1/R4 formano uno snubber , dipende dal tuo carico.  

 

Per quanto riguarda il pilotaggio Mosfet, conviene usare un fotoaccoppiatore Totem Pole tipo il TLP251 se ricordo bene.

Non so se nell'ultima immagine ti riferivi a questo, ma non è molto corretto lo schema. 

Molto meglio far lavorare il mosfet con Source a massa e carico (LED ?) tra Vcc+ e Drain. 

 

Per quanto riguarda i Diodi in parallelo al carico, se il carico sono dei LED non vedo quale Back EMF possano generare, quindi puoi metterli ma non servono a nulla.

 

 

 

Modificato: da tesla88
Link al commento
Condividi su altri siti

del_user_97632

Interessante, ma mi chiedo, piuttosto che tirare di mezzo i triac che a mio avviso hanno qualche complessita', per dimmerare non si puo ad esempio usare un unico mosfet canale N che tenga 10A e variare il duty cycle ?

Modificato: da _angelo_
Link al commento
Condividi su altri siti

  • 1 month later...

Grazie mille per le risposte! Ecco qui le mie:
Ill zero crossing integrato non va bene per me.. serve a far lavorare il triac come un relè e non fargli tagliare le semionde, a me invece serve perchè devo dimmerare. Il carico sono dei faretti a led dimmerabili da 14W l'uno.. e ce ne sono 12 nel canale più carico. Funzionano con la regolazione a triac, in teoria, nel senso che ora sono collegati ad un dimmer elettronico 220v SR-1009, ne apro uno e mi accerto che usi un triac.
Uso un MOC 3022, il problema è il picco di corrente che si genera se a metà semionda do corrente al fotodiodo.. se la resistenza è troppo bassa al gate arriva una bella bottarella, certo finchè il triac è aperto, dura poco, ma questo può compromettere il funzionamento dopo tanti anni? Questo è il mio problema, trovare un valore di resistenza che preservi il triac nel tempo e allo stesso modo mi dia quei 5 mA anche a basse tensioni.. per riuscire ad ottnerere un dimmeraggio più ampio possibile.
Per lo snubber preferirei non metterlo.. nel senso che devo fare 7 stadi e ho poco spazio.. secondo voi serve? 12 lampade, una 30ina di metri di filo da 2,5mmq, pensavo di usare un BT136, rischio che si autoecciti? In teoria più il triac è sensibile e più corro questo rischio. Grazie per il suggerimento sul triac sensibile.

Per il mosfet, si il circuito è errato sul carico, faccio come dici tu, a me interessava il principio sul pilotaggio. Voglio usare i transistor perchè non ho 5 volt lato mosfet, ho 24volt e non voglio usare/creare alimentatori che si possono guastare nel tempo. Credo che il principio funzioni, penso di usare degli MCT6, anno un trasferimento di circa 1:1, secondo te con 10mA sul fotodiodo Arduino si preserva nel tempo? In teoria dovrebbe essere ok anche con 20mA per porta, e 10mA sul transistor riescono a caricare/scaricare in fretta la capacità di 2 mosfet in parallelo? Mi serve una resistenza da 47ohm sul gate per limitare il picco o come immagino io il picco se lo può gestire il fototransistor senza grossi problemi? Conto di usare uno zener di circa 18 volt per limitare a 6 volt la tensione di gate
Grazie mille!

Link al commento
Condividi su altri siti

7 ore fa, GiovanniG1 scrisse:

Voglio usare i transistor perchè non ho 5 volt lato mosfet, ho 24volt e non voglio usare/creare alimentatori che si possono guastare nel tempo.

 

Un mosfet, anche se lavora a bassa frequenza di commutazione, deve essere pilotato bene per evitare di dissipare troppo durante le transizioni (detto in modo semplice banale). Per fare questo o usi un driver apposito, oggi ce ne sono parecchi, oppure usi 2 transistors in circuitazione "single ended".

Il driver lo alimenti con la medesima tensione che alimenta il carico, visto che affermi si tratti di 24V, e piloti il driver tramite un foto accoppiatore.

La cosa veramente importante da curare sono i fronti di commutazione: devono essere massimamente ripidi. affinchè il mosfet commuti in questo modo è necessario fornire sufficiente energia al gate.

Se usi mosfet specifici per commutazione, sono già forniti di diodi integrati, quindi non è necesario montare diodi shotky, o fast recovery, esterni.

 

leggi questa discussione, se osservi il circuito di pilotaggio del mosfet puoi trarre uno spunto interessante per la tua apllicazione.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Grazie LIvio, il link che hai mandato rimanda alla mia discussione sul filtro di uscita, e non vedo risposte sul pilotaggio. Hai provato a vedere lo schema che ho postato qui in alto? Prevede un transistor del fotoaccoppiatore per caricare il gate e l'altro transistor per scaricarlo, sfruttando il livello logico alto e basso del controllore. In teoria dovrebbe essere ideale, e supponendo che la coapacità di un gate sia si un paio di nanofarad credo che una corrente di 10mA su 6 volt faccia il suo abbastanza in fretta.
Userò questo mosfet che oltre ad avere una bassissima resistenza interna ed elevate correnti ha il corpo isolato e posso collegarli tutti sullo stesso dissipatore
https://static.chipdip.ru/lib/300/DOC000300054.pdf

 

Il dubbio più grosso che ho è sul triac, scegliere la reistenza opportuna che mi permetta di preservarlo nel tempo ma anche di attivarlo con basse tensioni, e se, secondo la vostra esperienza, ho bisogno dello snubber

Modificato: da GiovanniG1
Link al commento
Condividi su altri siti

48 minuti fa, GiovanniG1 scrisse:

Grazie LIvio, il link che hai mandato rimanda alla mia discussione sul filtro di uscita,

 

Avevo risposto dal telefono e non avevo osservato i particolare delle 2 discussioni.

Il circuto di pilotaggio che hai schematizzato con i 2 opto, in teoria è corretto, nella pratica un po' meno, visto la lentezza tipica dei fototransistors.

E più corretto se piloti o con un apposito drive integrato, oppure con una coppia complementare di transistori. Sarebbe anche opportuno usare un resistore in serie al gate, con in parallelo un condensatore di speed up.

 

 

57 minuti fa, GiovanniG1 scrisse:

Il dubbio più grosso che ho è sul triac, ....

 

Dipende dal carico del Triac, se è puramente resistivo lo snubber può essere superfluo o quasi, se è induttivo lo snubber è indispensabile, non tanto per la salute del triac, ma per il buon funzionamento di arduino (ma non basta solo il filtri sul triac).

Usando invece il pilotaggio sullo zero di tensione, i disturbi generati all'accensione sono sempre molto pochi e di ampiezza molto limitata.

Lo spegnimento avviense sempre sullo zero di corrente, quindi con carico induttivo si possono avere spikes di tensione non trascurabili.

 

In quanto al pilotaggio devi assicurarti che la corrente di gate sia sempre nei limiti previsti per l'accensione senza eccedere il valore minimo.

Puoi limitare la tensione massima di gate tramite un dispositivo tipo diac.

 

Link al commento
Condividi su altri siti

Grazie ancora, vorrei fare un test con questo fotoaccoppiatore, ormai ho tutti i componenti, mi è molto comodo tra l'altro perchè con questa soluzione ho bisogno solo della resistenza per i fotodiodi. Ho deciso infatti di non interporre resistenze tra il gate e il fototransistor, essendo lui stesso limitato in corrente per effetto del rapporto corrente diodo/corrente uscita non lavora di sicuro in piena saturazione, quindi è già una resistenza lui, secondo me inutile metterne un altra fuori, vado solo a rallentare la carica scarica. Monitorerò la temperatura del fotoaccoppiatore, vediamo.

Per il triac.. comincio ad avere altri dubbi, e cioè come lavora il dimmer attuale.. perchè sappiamo che andare a tagliare le semionde non è mai buona cosa.. è possibile che il dimming lo faccia tagliando intere semionde? il dimmer è in grado di lavorare con buona "risoluzione", nel senso dei livelli di intensità, lo si capisce dal fade in e out delle lampade. E tagliando le semiondeun effetto simile di otterrebbe tagliandone troppe, e anche una lampadina a incandescenza avrebbe sfarfallio. Oppure raddrizza in continua e lavora in pwm con un mosfet, daltronde le lampadine e i led accettano la continua, ma il pwm con un altro alimentatore in cascata è problematico secondo me. Voi che ne pensate?

Link al commento
Condividi su altri siti

Ho fatto una ricerca e ho scoperto che questo dimmer è un trailing edge, quindi per me il circuito si complica, è ovvio che devo proseguire su questa strada ed evitare il triac.. che secondo me a lungo andare mette a rischio il funzionamento delle lampade LED.
Probabilmente ci sono dei mosfet studiati a questo scopo, in grado di lavorare con queste tensioni e magari di ridurre i componenti esterni. Ho trovato uno schema e sembra che venga sfruttato il diodo interno per permettere all'altro mosfet di condurre la semionda contaria, ma cavolo questi mosfet costano un occhio. Alla fine a me bastano 2 amper.. continuo a cercare:

trailing.thumb.jpg.b54461fe668a6c8b1785f7daea17f197.jpg

Modificato: da GiovanniG1
Link al commento
Condividi su altri siti

1 ora fa, GiovanniG1 scrisse:

Ho fatto una ricerca e ho scoperto che questo dimmer è un trailing edge,

 

ma devi pilotare il dimmer?

 

Tra l'altro un dimmer a controllo di fase (trailing edge) si polata con un livello di tensione o di corrente corrispondenti all'intensità di luce che si vuole ottenere.

 

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Devo sostituire un dimmer commerciale esistente perchè non collabora bene con la domotica (via WiFi), per un motivo che ancora non ho ben capito si sconfigura nel tempo, pertanto ho deciso di rimpiazzarli con una elettronica cablata, che non abbia problemi.
Devo quindi creare uno stadio trailing edge, comandato da un fotoaccoppiatore. Il circuito che ho trovato è troppo costoso per via dei mosfet, ma è anche molto potente, a me bastano solo 2 amper. Vorrei trovare un circuito pronto perchè non ho tempo di testare il dimmer, che se poi non funziona sono dolori, il circuito sta a casa del mio cliente e non posso assolutamente creargli disagi con le luci (!).
Se avete idee per favore consigliatemi, grazie per l'aiuto!

Link al commento
Condividi su altri siti

8 ore fa, GiovanniG1 scrisse:

Vorrei trovare un circuito pronto perchè non ho tempo di testare il dimmer, che se poi non funziona sono dolori, il circuito sta a casa del mio cliente e non posso assolutamente creargli disagi con le luci (!).

 

Devi dimmerare lampade a 230V o a 24V?

 

Poi scusami, se vuoi avere un sistema affidabile per un cliente pensi di usare arduino? non ti sembra contradditorio?

Se vuoi un sistema affidabile che ti garantisce da eventuali disagi del cliente, usa deii dispositivi domotici seri ed affidabili. Nel forum di impiantistica elettrica ci sono 2 sezioni dedicate agli apparati per domotica.

Link al commento
Condividi su altri siti

Perchè Arduino non dovrebbe essere affidabile? Se il circuito è ben progettato, l'alimentazione è stabile, perchè dovrebbe generare problemi?
Un pò tardi ora per distruggere tutto e usare un'altra tecnologia, senza considerare i costi esorbitati per tutti i devices che ha.
E poi parliamo di stadi semplici, con pochi componenti, non dovrebbero esserci nè grossi problemi a progettarli ne grosse sorprese, chiedo una mano a voi con la vostra esperienza se non considero qualcosa di importante, grazie per questo.


Ci sono dimmer a 24V e a 220V, sto sviluppando entrambi gli stadi. Per il 24V sembra che abbia risolto, ora mi concentro sul 220V.
Sembra che il trailing edge sia piuttosto snobbato tra gli appassionati, oltre a un paio di progetti non ho trovato altro, a questo punto non mi resta che sperimentare.

In realtà questa tecnologia sembra abbastanza semplice da ottenere, prendendo spunto dal progetto che ho trovato:
 

p157-f1.gif.d343174c613f883bbecbcaae291cf6fd.gif

Si potrebbe ridurlo al fotoaccoppiatore. Le differenze sono che devo lavorare sul filo caldo, il cablaggio non è modificabile, userei un piccolo trasformatore per pilotare i mosfet. In linea di principio va bene, ma ci sono dei dubbi, per esempio che questo trasformatore dovrebbe servirmi tutti e 7 i dimmer (sulla stessa fase).. ma non dovrebbero esserci problemi; quello zener forse ha degli scopi precisi, potrebbero esserci dei rimbalzi da soffocare? Non ne vedo visto le capacità esigue dei gate;
Ho trascurato lo zero crossing, che c'è ovviamente, ma su quello non ho particolari dubbi..
Grazie ancora per i consigli
20190827_123731.thumb.jpg.957dbc57b09c1511e5f222c148e476b0.jpg

 

Modificato: da GiovanniG1
Link al commento
Condividi su altri siti

8 minuti fa, GiovanniG1 scrisse:

Perchè Arduino non dovrebbe essere affidabile? Se il circuito è ben progettato, l'alimentazione è stabile, perchè dovrebbe generare problemi?

 

Non ho nessuna intenzione di riscrivere le varie analisi che ho già fatto su questo argomento, se ti interessa puoi rileggerti le vaire diascussioni, presenti nella sezione di arduino, in cui tratto l'argomento EMC di un dispositivo in cui l'immunità EMC è praticamente nulla.

 

 

Link al commento
Condividi su altri siti

va bene, certamente non si possono avere pretese che Arduino funzioni stabile in tutti gli ambienti, ma ho realizzato una macchina industriale con un Arduino Mega in vicinanza e sulla stessa linea trifase di altre macchine con potenti compressori, motori, ecc. E' acceso da un anno e mezzo e non ho mai avuto problemi, tra l'altro ho usato un clone cinese, quindi magari a livello di stampato fatto peggio.
Basta inscatolarlo con qualche accortezza e soprattutto realizzare un buon alimentatore, fltrato, ecc.

Tornando al tema confermo che il dimmer DC funziona benissimo, testato con carico da 8 Amper il mosfet si intiepidisce appena, con metà carico rimane freddo.. mi sembra che quasi lo scaldi io col polpastrello delle mani. Certamente questo mosfet è una bomba, resistenza interna incredibilmente bassa, si tratta del IRFI1310NPbF e lo consiglio, ha anche il corpo isolato e quindi si monta assieme ad altri sullo stesso dissipatore velocemente.
Nessuna resistenza tra fotoaccopiatore e mosfet, invece ne ho messa una da 27.000 ohm tra gate e massa, per evitare autoinneschi o qualsiasi altra problematica.
Altra aggiunta, trattandosi di fotodiodi in serie quando Arduino si carica le sue linee sono in alta impedenza, quindi c'è una corrente tra il positivo, i due fotodiodi e le resistenze che porterebbe in leggera conduzione i transistor, facendo lavorare il mosfet in zona attiva (forse). Per evitare questo metterò un transistor PNP sulla linea del positivo di tutti i fotoaccoppiatori, solo quando il controllore sarà pronto darà "tensione" ai fotodiodi. Il mosfet va in conduzione quando Arduino fornisce un livello logico 0 quindi il fotodiodo più importante è quello connesso al positivo.
 

Link al commento
Condividi su altri siti

22 minuti fa, GiovanniG1 scrisse:

E' acceso da un anno e mezzo e non ho mai avuto problemi, tra l'altro ho usato un clone cinese, quindi magari a livello di stampato fatto peggio.
Basta inscatolarlo con qualche accortezza e soprattutto realizzare un buon alimentatore, fltrato, ecc.

 

E' un modo un po' troppo semplicistico per affrontare un problema serio.

I test di immunità EMC non sono giochini, ma sono frutto di anni di studi, ricerche e verifiche sperimentali. Si eseguonon con modalità ben precise e rigorose, con strumentazione adatta e, soprattutto, sono riproducibili sempre.

Arduino è stato progettato come strumento per sviluppo software a basso costo e, nel suo progetto, la compatibilità elettromagnetica non è stata considerata perchè non rientra nei suoi scopi.

 

Io non accetterei mai un controllo industriale basato su arduino o raspberry.

 

Comuinque non sono problemi miei, se il tuo cliente è soddisfatto buon per lui.:smile:

 

Purtroppo quasta faciloneria nell'affrontare i problemi seri è un altro indice del degrado qualitativo di certa industria italiana.:(

Link al commento
Condividi su altri siti

Livio ti chiedo scusa, capsico quello che dici ma vorrei tornare sui binari della conversazione, analizzando meglio il circuito preferisco fare una modifica, il mio cablaggio prevede un fusibile a monte del dimmer sulla fase, se salta il trasformatore resterebbe in tensione, per evitare ogni possibile problema voglio separare i circuiti di potenza, quindi evitare di usare un trasformatore per ogni sistema, userò un semplice resistenza di caduta sulla 220.. se salta il fusibile l'intero circuito finale e pilota resteranno senza tensione.

Per calcolare questa caduta vorrei chiedervi aiuto. Suppongo che i mosfet assorbano nulla, solo un trasferimento di energia tra il condensatore di livellamento al momento dell'azionamento, e tra l'altro questo avviene una volta sola ad ogni semionda, dando tutto il tempo al condensatore di ricaricarsi nel frattempo. Voglio limitare il più possibile le dissipazioni sulla resistenza e zener (scelgo 9volt, per sopperire alle leggere cadute di tensioni sul mosfet).

Il circuito è semplice, diodo per far passare la semionda positiva, resistenza di caduta, zener e condensatore.


Il problema sta solo nella fase iniziale, per portare il condensatore da 0 alla tensione sufficiente per garantire la saturazione del mosfet che lavorerebbe per qualche momento in zona attiva. Con 82.000 ohm avei una dissipazione di circa mezzo watt su 9 volt, la coerrente media sarebbe di 2,23mA, il condensatore da 47uF ci metterebbe circa 2 decimi di secondo a raggingere il 66%.. direi sufficiente a portare i gate in piena conduzione, voi che ne pensate? Forse non è male..
I gate dei mosfet "pesano" 1,5nF ciascuno, togliamo anche un pò di energia dissipata dai fototransistor, penso che dovremmo starci..
Uso i mosfet 2SK3569che costano poco, hanno 500V e 0,57ohm. In parallelo inserirò dei diodi al silicio da 4A 1000V per aiutare il mosfet a dissipare di meno quando il diodo interno conduce, essendo shotty ha delle soglie più alte e dissipa di più. 

Modificato: da GiovanniG1
Link al commento
Condividi su altri siti

32 minuti fa, GiovanniG1 scrisse:

il condensatore da 47uF ci metterebbe circa 2 decimi di secondo a raggingere il 66%

 

C'èqualche cosa che non torna, probabilmente ho capito male io. Se hai una R = 82.000 ohm ed una C = 47µF, la RC sarà 82*103 * 47*10-6 = 3,854", quindi per raggiungere il 66% della tensione di carica impiegherà circa 4" (dopo una costante di tempo RC si raggiunge il 63% del valore di carica).

Link al commento
Condividi su altri siti

Grazie, bisogna considerare che per raggiunger ei 9 volt desiderati parto dai 220v (medi) e quindi il calcolo va fatto utilizzando la corrente (media) che investe il condensatore fino a 9v, cioè 2,23mA. Diverso invece se facciamo il cacolo supponendo una tensione di 9v che va a caricare lo stesso condensatore.

Quello che non ho considerato io è che i tempi raddoppiano perchè lo carico con una sola semionda.. potrei quindi optare per ridurre la capacità, forse anche 22uF bastano

Modificato: da GiovanniG1
Link al commento
Condividi su altri siti

Confermo che anche lo stadio 220V funziona bene, npn appena risolverò i problemi che ho con Arduino e la gestine dello zero crossing sarò lieto di fornire l'elenco dei componenti che ho utilizzato. A proposito, come fotoaccoppiatore zero crossing ho utilizzato H11L1 che è un trigger di shmitt, quindi sono sicuro che il segnale esca preciso, una volta a semionda, e che il Mega2560 non lavori nella zona "incerta" per cui possa generarmi una valanga di interrupt.


Al momento lo scoglio è il software.. non riesco ad avere un comportamento lineare nella gestione del taglio della semionda, eppure sto minimizzando il codice e cercando di lavorare più velocemente possibile. Mi viene il dubbio se queste routine millis(); e micros(); possano davvero essere efficaci.

 

il concetto è questo, come arriva il zero crossing attivo i mosfet e mi segno il tempo di sistema

nel ciclo loop controllo il tempo di sistema e se è passato il tempo necessario (intensità) metto a massa i gate dei mosfet.
Sembra che il processore sia troppo lento, la lampada si accende gradualmente (ogni decimo di secondo fa uno step in più, in 10 secondi arriva al massimo), ma mi dà molti flash random a piena intensità in qualsiasi punto di intensità, si perde qualcosa.. e il gate resta polarizzato per più semionde..  eppure i gate sono attivati solo nella routine di interrupt, che è attivata solo dal passaggio per lo zero, quindi il problema è la diseccitazione


int intensita;
volatile unsigned long tempo2;
unsigned long tempo;
volatile byte cross;

 

void setup() {

pinMode(19, INPUT_PULLUP);
pinMode(52, OUTPUT); digitalWrite(52,HIGH);
attachInterrupt(digitalPinToInterrupt(19), zero, RISING);
intensita=0;  tempo=millis(); tempo2=0; cross=LOW;
}


void loop() {

if (millis()>tempo+100) {tempo=millis();intensita++;}  //odni decimo aumento l'intensità
if (intensita>100) {intensita=0;}

if ((micros()-(intensita*100))>tempo2) {digitalWrite(52,HIGH); }   //100*100us=10ms, in teoria tutta la semionda, uso la sottrazione perchp ogni 70 secondi la routine micros (unsigned long) si resetta, così sono sicuro che anche in quella condizione posso avere il confronto.
if ((micros()-(5000))>tempo2){cross=LOW;}   //è una sicurezza in più, non posso in alcun modo toccare i tempi fino al prossimo zero, riabilito la routine di interrupt solo a metà semionda
}
   
  void zero() {
  if (cross==LOW) {noInterrupts();  //raccomandano di disabilitare le interrupt quando si scrivono variabili volatili, altra sicurezza
  tempo2=micros();
    digitalWrite(52,LOW);cross=HIGH; interrupts();}
  }

Link al commento
Condividi su altri siti

utilizzando in via sperimentale i delayMicroseconds(100*intensita) funziona ed è stabile, quindi devo veramente capire cos non va nel micros() , mi sono accorto che non avevo opportumanete convertito in long (intensita*100) ma non è cambiato nulla anche convertendo

Link al commento
Condividi su altri siti

Non so se può esserti d'aiuto, ma tieni conto che micros() avanza in step di 4 unità alla volta, come indicato nella documentazione:

 

Quote

On 16 MHz Arduino boards (e.g. Duemilanove and Nano), this function has a resolution of four microseconds (i.e. the value returned is always a multiple of four).

 

Ciao, Ale.

Link al commento
Condividi su altri siti

grazie pe rla risposta.. non cambia molto perchè io verifico che sia < o > di un certo valore.. certo che sta cosa è una delusione, forse mi conviene autonomamaente controllare il registro del timer...

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...