Autore |
Discussione  |
Matte63
Nuovo Arrivato
Città: La spezia
3 Messaggi |
Inserito il - 20 marzo 2013 : 14:34:46
|
Ciao a tutti, Volevo chiedere a chi conosce la scheda arduino di mandarmi un link o descrivermi come creare una centralina( alba, giorno, notte, tramonto) con Arduino... Il problema è che i led credo che illuminino poco e quindi volevo usare delle luci da 220v... E se uso dei rele non c'è l'effetto dissolvenza, grazie in anticipo
|
|
Matte63
Nuovo Arrivato
Città: La spezia
3 Messaggi |
Inserito il - 21 marzo 2013 : 16:51:39
|
Non troppi a rispondere |
 |
|
rugas
Membro Master
    

Città: Cremona
693 Messaggi |
|
Amministratore
Responsabile Forum
    

Prov.: Roma
Città: Roma
3535 Messaggi |
Inserito il - 21 marzo 2013 : 20:02:32
|
Dissolvenze incrociate a 220 con Arduino... Non semplice per diverse ragioni. 1) Non semplice per chi è a digiuno di elettronica. 2) Non semplice da realizzare intorno ad Arduino, non per la sua potenza ma per l'ardware che bisogna costruirgli intorno, dove gira la 220.
Quindi, costruire per costruire molto meglio la nostra centralina presentete nella sezione 'Tecniche' oppure quella di Sasà Sbarra che si trova in Rete.
|
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perchè. In ogni caso si finisce sempre a coniugare la teoria con la pratica: non funziona niente e non si sa il perchè. Albert Einstein E’ meglio stare in silenzio ed apparire stupidi piuttosto che aprire bocca e togliere ogni dubbio. Albert Einstein L'uomo incontra Dio dietro ogni porta che la scienza riesce ad aprire. Albert Einstein
|
 |
|
Matte63
Nuovo Arrivato
Città: La spezia
3 Messaggi |
Inserito il - 08 giugno 2013 : 20:37:46
|
Amministratore, scusa per il ritardo ma sono stato assente in questo periodo, ti ringrazio per la risposta, ma volevo chiedere solo se c'era un modo per controllare delle lampade 220 da arduino senza l'utilizzo di relè... Grazie in anticipo
|
 |
|
Amministratore
Responsabile Forum
    

Prov.: Roma
Città: Roma
3535 Messaggi |
Inserito il - 08 giugno 2013 : 22:23:27
|
Se non serve la dissolvenza un transistor e un relè sono la cosa più robusta e sicura. Se invece occorre una dissolvenza a 220 allora la cosa si complica sia per l'hardware sia per il software.
|
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perchè. In ogni caso si finisce sempre a coniugare la teoria con la pratica: non funziona niente e non si sa il perchè. Albert Einstein E’ meglio stare in silenzio ed apparire stupidi piuttosto che aprire bocca e togliere ogni dubbio. Albert Einstein L'uomo incontra Dio dietro ogni porta che la scienza riesce ad aprire. Albert Einstein
|
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 03 settembre 2013 : 09:45:38
|
Ciao a tutti, ho trovato un modo per autocostruirsi una centralina con arduino,il concetto è notevolmente semplice, servono solo 3 dimmer e 3 servo (potete usarne quanti ne volete, 1 dimmer e un servo per ogni canale di dissolvenza).
Ho già ordinato l'occorrente e dovrebbe arrivarmi entro la fine di settembre, se poi vi interessa farò un tutorial.
Comunque, vi spiego come funziona:
·Il dimmer serve per creare la dissolvenza, praticamente è un dispositivo controllato da un potenziometro che regola la tensione di rete da 0 a 220v. (Vi allego una foto di quello che ho comprato).
Immagine:
 68,36 KB
Praticamente si toglie quella manopola nera e si inserisce un ingranaggio. Ruotandolo si ha la dissolvenza.
·Il servo è un motore che gira solo fino a 180°, con Arduino si possono controllare i suoi movimenti con la precisione di 1°, quindi, mettendo un ingranaggio anche sul servo in modo da avere un rapporto tra i due ingranaggi di 2:1, il servo girerà fino a 180° e il dimmer girerà a 360°. vi allego una foto anche del servo:
Immagine:
 79,63 KB
Questa è un'immagine che ho trovato in rete del risultato finito:
Immagine:
 107,29 KB
|
Modificato da - stefano63 in data 15 settembre 2013 15:11:05 |
 |
|
magicopresepe
Membro Master
    

Prov.: Padova
Città: piacenza d'adige
449 Messaggi |
Inserito il - 03 settembre 2013 : 15:47:52
|
ciao stefano, non vorrei fare l'uccellaccio del malaugurio ma devo avvisarti che il tuo sistema avrà breve durata, con questo non voglio dire di non provare a farlo, anzi, è sempre entusiasmante provare a misurarsi con le proprie esperienze e riuscire ad ottenere un risultato. devo però avvisarti (essendoci passato personalmente) che seppure in un primo momento tutto funzionerà perfettamente e il risultato sembrerà riuscitissimo, non appena i potenziometri si saranno un po usurati(e non pensare che ci vorrà tantissimo tempo),le dissolvenze perderanno la loro linearità e si avrà un effetto non proprio piacevole di luci più o meno a scatti o che non partono lentamente. naturalmente tutto dipende da quanto viene usata la centralina, x un normale uso domestico direi che può funzionare bene x una stagione, forse due se i componenti sono di buona qualità,mentre x un presepe pubblico che resti acceso tutti i giorni x molte ore , dubito che si riesca ad arrivare all'epifania. naturalmente posso anche sbagliarmi, magari i componenti che usai io non erano il massimo ,o erano sfigati, ma ho voluto comunque condividere con te questa esperienza. |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 03 settembre 2013 : 16:18:20
|
Grazie per l'informazione magicopresepe, dubito che i materiali siano di buona qualità (li ho comprati dalla Cina a 3 euro l'uno), ma tanto la centralina la uso per un presepe domestico e dovrebbe durare almeno una stagione, al massimo cambierò i potenziometri se si usurano... |
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 03 settembre 2013 : 16:26:56
|
Ciao Stefano, condivido quanto esposto da magicopresepe e trovo che sia un inutile passaggio affidarsi ad un attuatore meccanico per controllare una dissolvenza. Arduino dispone di uscite PWM che possono essere utilizzate a tale scopo, certo occorre realizzare un circuito di interfaccia che permetta il riconoscimento del passaggio a zero della tensione di rete che dovrà essere gestito in interrupt. Il circuito sicuramente si complica ma risulterà più affidabile. Altra soluzione, per evitare la gestione dell'interrupt potrebbe essere quella di trasformare tramite un'interfaccia la variazione PWM in una tensione continua con cui comandare un dimmer controllato in tensione. |
www.presepevirtuale.it |
Modificato da - Skyrunner65 in data 03 settembre 2013 18:40:41 |
 |
|
rugas
Membro Master
    

Città: Cremona
693 Messaggi |
Inserito il - 03 settembre 2013 : 23:56:32
|
Stefano, il principio della tua idea mi ricorda la prima centralina con cui ebbi a che fare... era intorno più o meno al 1977 / 78 ed era costituita da due dimmer con i potenziometri sullo stesso asse e collegati in controfase che venivano fatti ruotare con un motoriduttore della crouzet che compiva 3/4 di giro prima di invertire il verso di rotazione... andando avanti cosi all'infinito
era un sistema meccanico semplicissimo che tuttavia riuscii ad usare anni dopo anche nel primo presepe fatto in chiesa
in effetti l'osservazione fatta sull'usura dei potenziometri è vera... anche se, da quanto mi ricordo, ci mise qualche anno prima di darmi noia... meno comunque di un modello successivo che, volendo essere più evoluto, evitava l'inversione di giro, sfruttando due potenziometri con la presa a centro corsa a cui era stato tolto il fermo di fine corsa e che quindi erano liberi di girare a 360 gradi
ecco questa versione si rivelò un disastro dopo solo poche ore di funzionamento
altri tempi comunque... tanto per fare un po' di storia delle centraline di un tempo che fu |
Unità Pastorale S.Agata S.Ilario S.Agostino - Cremona
http://it.pinterest.com/luca_aka_rugas/presepi-sagata-silario-cremona-italy/ http://www.youtube.com/user/rugasStuff
www.facebook.com/luca.akarugas |
 |
|
rugas
Membro Master
    

Città: Cremona
693 Messaggi |
Inserito il - 03 settembre 2013 : 23:58:35
|
Stefano, il principio della tua idea mi ricorda la prima centralina con cui ebbi a che fare... era intorno più o meno al 1977 / 78 ed era costituita da due dimmer con i potenziometri sullo stesso asse e collegati in controfase che venivano fatti ruotare con un motoriduttore della crouzet che compiva 3/4 di giro prima di invertire il verso di rotazione... andando avanti cosi all'infinito
era un sistema meccanico semplicissimo che tuttavia riuscii ad usare anni dopo anche nel primo presepe fatto in chiesa
in effetti l'osservazione fatta sull'usura dei potenziometri è vera... anche se, da quanto mi ricordo, ci mise qualche anno prima di darmi noia... meno comunque di un modello successivo che, volendo essere più evoluto, evitava l'inversione di giro, sfruttando due potenziometri con la presa a centro corsa a cui era stato tolto il fermo di fine corsa e che quindi erano liberi di girare a 360 gradi
ecco questa versione si rivelò un disastro dopo solo poche ore di funzionamento
altri tempi comunque... tanto per fare un po' di storia delle centraline di un tempo che fu |
Unità Pastorale S.Agata S.Ilario S.Agostino - Cremona
http://it.pinterest.com/luca_aka_rugas/presepi-sagata-silario-cremona-italy/ http://www.youtube.com/user/rugasStuff
www.facebook.com/luca.akarugas |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 04 settembre 2013 : 08:16:28
|
Ahahaha ma allora sono rimasto proprio indietro...  |
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 04 settembre 2013 : 08:21:02
|
Buongiorno, anche io nello stesso periodo avevo realizzato un sistema simile a quello descritto da Rugas utilizzando un motoriduttore di un programmatore di una lavatrice che con una biella azionava avanti-indietro un potenziometro tipo slide collegato al classico dimmer. Ricordo che funzionava abbastanza bene, ma ora con i dispositivi elettronici si possono realizzare sistemi a più dissolvenze decisamente più affidabili. |
www.presepevirtuale.it |
Modificato da - Skyrunner65 in data 04 settembre 2013 08:55:44 |
 |
|
Giaggio
Membro Master
    

Regione: Lazio
Prov.: Frosinone
Città: Alatri
412 Messaggi |
Inserito il - 04 settembre 2013 : 09:31:12
|
io lo faccio in casa il mio presepe con centralina.. preferisco comprarla gia fatta che rischiare di fare danni..penso che una centralina costruita sia meglio di una fatta con le mie inesperti mani... |
Chi non ama le donne, il vino e il canto e' solo uno scemo e non un Santo... |
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 04 settembre 2013 : 13:42:49
|
Concordo con quanto esposto da Giaggio, se non si hanno competenze in elettronica ed elettrotecnica è meglio ricorrere ad un prodotto commerciale! La motivazione che deve spingere all'autocostruzione di una centralina di controllo deve essere quella di sperimentare o ricercare delle funzionalità particolari non presenti in prodotti commerciali; non deve essere solo l'aspetto economico il motivo della scelta in quanto, pur essendo le centraline professionali abbastanza costose, la soluzione personalizzata porta la maggior parte delle volte a sostenere un costo maggiore, anche se autocostruita. Inoltre, se non si parte da un progetto già verificato, occorre mettere in conto molto tempo per la fase di progettazione, realizzazione del prototipo, messa a punto del firmware se si tratta di elettronica programmabile, verifica funzionale, realizzazione del prodotto finito compreso contenitore ecc. ecc. Certo, per chi ha passione per queste cose il tempo non conta!! |
www.presepevirtuale.it |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 04 settembre 2013 : 21:03:48
|
Il modulo 2Triac accetta come comando un segnale PWM sincronizzato con il passaggio a zero della tensione di rete e di ampiezza compresa tra 5 e 10V, in teoria è direttamente collegabile alle uscite PWM di Arduino anche se io l'ho realizzato per altre schede, il problema è che Arduino dovrà comandare il PWM a 100Hz sincronizzato con la frequenza di rete. Questo si può fare realizzando uno zerocross detector e collegarlo all'ingresso interrupt di Arduino (nel caso di arduino UNO è il digital pin 2 (INT0)) e realizzare il firmware in modo appropriato. Ovviamente non ho ancora sperimentato nulla in proposito, altrimenti l'avrei già documentato nel mio sito.
Comunque ho trovato questo link che spiega graficamente ciò che ho provato a descrivere a parole.
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ |
www.presepevirtuale.it |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 04 settembre 2013 : 21:07:09
|
Va bene grazie mille  |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 04 settembre 2013 : 22:26:20
|
Si, in pratica è una versione più dettagliata del sito che avevo trovato io! Penso sia un buon punto di partenza, certo poi bisognerà provvedere a realizzare più dissolvenze incrociate e sicuramente migliorare il layout del circuito (andrebbe inserito almeno un fusibile nella parte di potenza a 230V che dovrebbe essere più distanziata dalla parte di controllo e con delle piste leggermente maggiorate). Comunque il mio modulo a 2 Triac a questo punto potrebbe essere utilizzabile. Se sperimenti qualche soluzione tienici informati! |
www.presepevirtuale.it |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 08 settembre 2013 : 11:54:15
|
Ciao a tutti, in questi giorni mi sono documentato sul dimmer completamente digitale controllato da arduino e sono riuscito a fare uno schema elettrico con EAGLE CAD, il dimmer ha 3 canali e uno zerocross detector. L'ho controllato attentamente e credo che non ci siano errori, voi che dite? Se è tutto ok procedo con il disegnare la pcb.
Immagine:
 109,89 KB |
Modificato da - stefano63 in data 15 settembre 2013 14:43:11 |
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 08 settembre 2013 : 22:47:41
|
Ciao Stefano63, vedo che ti sei messo all'opera! Unica osservazione da fare è l'assenza di sistemi per la riduzione dei disturbi generati dal dimmer, questo problema non è da sottovalutare perchè può anche creare malfunzionamenti nelle schede elettroniche connesse alla stessa alimentazione o presenti nelle immediate vicinanze. Questo si può effettuare aggiungendo una rete RC in parallelo al triac (vedi anche il mio progetto) o/e dei toroidi(induttanze di filtro) in serie al carico. Intorno ad Arduino si potrebbe costruire una centralina completa di 4dimmer, alcuni relè utilizzando le uscite digitali non impegnate e collegando dei trimmer agli ingressi analogici si potrebbe effettuare delle regolazioni su tempi e luminosità, certo il software a questo punto si complica!!! |
www.presepevirtuale.it |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 08 settembre 2013 : 23:31:25
|
Ciao skyrunner, per il problema del disturbo di frequenza pensavo di mettere un filtro antidisturbo a valle del dimmer (Come questo).
Immagine:
 35,64 KB
...Vorrei infatti evitare che le armoniche mi vadano a creare ronzii ai neon, alla tv, a far scattare i magnetotermici e il contatore...
Nei prossimi giorni vedrò di aggiungere un altro canale e fare il pcb, con arduino ho intenzione di controllare l'intero presepe, quindi volevo creare un interfaccia utente con un display lcd e dei pulsanti.
|
Modificato da - stefano63 in data 15 settembre 2013 14:45:45 |
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 09 settembre 2013 : 10:04:24
|
Buongiorno, il filtro proposto può andare bene, il problema è che si tratta di un filtro da 1A quindi le lampade non potranno superare i 200W, dipende da quanto è grande il presepe! Inoltre per lavorare al meglio questo tipo di filtro necessita di una presa di terra. L'idea di una centralina completa per presepe basata su Arduino è ottima. |
www.presepevirtuale.it |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 13 settembre 2013 : 14:22:23
|
Ciao a tutti, eccomi di nuovo! Sono riuscito a costruire un dimmer commandato da arduino a 1 canale (per provare), funziona, però non come voglio io! Allora, avevo intenzione di fargli accendere una lampadina lentamente per un minuto, poi lasciarla accesa alla massima luminosità per un altro minuto e poi spegnerla lentamente per un minuto ancora. Il problema è questo, sono riuscito a scrivere il codice fino al primo minuto, ora non riesco a lasciarla accesa e spegerla.. Se c'è qualcuno che conosce il C meglio di me potrebbe aiutarmi?? Grazie. Vi posto il codice che ho usato
int AC_pin = 3; //Pin al MOC3020 - OptoTriac byte dim = 0; //Livello di luminosità iniziale, da 0 a 255. void setup() { pinMode(AC_pin, OUTPUT); attachInterrupt(0, light, FALLING); //Quando il pin 2 di Arduino è "FALLING" da "HIGH" a "LOW", inizia la procedura "light". }
void light() {
if (dim < 1) { //spegne il triac se dim è 0 digitalWrite(AC_pin, LOW); } if (dim > 254) { //accende il triace se dim è 255 digitalWrite(AC_pin, HIGH); } if (dim > 0 && dim < 255) { //Parte di dimming, se dim non è 0 e non è 255
delayMicroseconds(34*(255-dim)); digitalWrite(AC_pin, HIGH); delayMicroseconds(500); digitalWrite(AC_pin, LOW); } }
void loop() { for(int i=8; i<=255; i++){ //Accensione lenta per un minuto, ho impostato i=8 perche è l'unico numero che non mi fa fare dei "flash" alla lampadina dim=i; delay(150); if(dim==248){ break; } } } |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 13 settembre 2013 : 18:03:28
|
Ok niente, ho trovato la soluzione, anche se in modo un po' grezzo . Vi posto il codice, magari a qualcuno interessa...
int AC_pin = 3; //Pin al MOC3020 - OptoTriac byte dim = 0; //Livello di luminosità iniziale, da 0 a 255.
void setup() { pinMode(AC_pin, OUTPUT); attachInterrupt(0, light, FALLING); //Quando il pin 2 di Arduino è "FALLING" da "HIGH" a "LOW", inizia la procedura "light". }
void light() {
if (dim < 1) { //spegne il triac se dim è 0 digitalWrite(AC_pin, LOW); } if (dim > 254) { //accende il triace se dim è 255 digitalWrite(AC_pin, HIGH); }
if (dim > 0 && dim < 255) { //Parte di dimming, se dim non è 0 e non è 255
delayMicroseconds(34*(255-dim)); digitalWrite(AC_pin, HIGH); delayMicroseconds(500); digitalWrite(AC_pin, LOW); } }
void loop() { dim=8; //Lampadina spenta, si aggiunge 1 a 8 fino ad arrivare a 255.. Per dimmerare fino ad accenderla delay(50); dim+=1; //Si ripete questo comando per 247 volte per arrivare alla luminosità massima, poi si scrive dim-=1 tornare a 0 delay(50);
}
|
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 13 settembre 2013 : 20:28:41
|
Complimenti Stefano63, già è un buon inizio, poi tutto si può migliorare! |
www.presepevirtuale.it |
 |
|
Amministratore
Responsabile Forum
    

Prov.: Roma
Città: Roma
3535 Messaggi |
Inserito il - 15 settembre 2013 : 12:39:55
|
Stefano puoi usare anche la funzione analogwrite. Vai a leggere le specifiche sulla documentazione.
|
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perchè. In ogni caso si finisce sempre a coniugare la teoria con la pratica: non funziona niente e non si sa il perchè. Albert Einstein E’ meglio stare in silenzio ed apparire stupidi piuttosto che aprire bocca e togliere ogni dubbio. Albert Einstein L'uomo incontra Dio dietro ogni porta che la scienza riesce ad aprire. Albert Einstein
|
 |
|
rugas
Membro Master
    

Città: Cremona
693 Messaggi |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 15 settembre 2013 : 14:54:25
|
Amministratore, ho provato con la funzione analogWrite e non funziona, il risultato è solo un flash continuo, l'unico metodo funzionante che ho trovato è questo. Rugas, 255 gradini sono abbastanza, poi ovviamente se metti un delay troppo lungo tra un gradino e l'altro allora forse si potrebbero percepire, ma siccome sono 255, ogni gradino aggiunge o toglie 0.8 V (220v/255=0.8), una variazione di nemmeno un volt è difficile percepirla, soprattutto se viene utilizzata una lampadina a incandescenza |
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 15 settembre 2013 : 15:40:40
|
AnalogWrite si può utilizzare solo verso i pin che prevedono il PWM Out (quelli segnati con il simbolo tilde). La frequenza del PWM è circa 490Hz e quindi non è sincronizzata con la frequenza di rete, questo metodo è molto utile per regolare la luminosità di led o lampade alimentate in continua o regolare la velocità dei motori sempre in continua, ma temo che non si possa utilizzare per un dimmer in alternata!
Forse agendo direttamente sui registri del PWM? ... da sperimentare...
http://arduino.cc/en/Tutorial/SecretsOfArduinoPWM
Per ora il sistema adottato da Stefano penso sia la soluzione ideale! Appena avrò un pò di tempo verifico la compatibilità con la mia scheda 2Triac che ho già pronta.
|
www.presepevirtuale.it |
Modificato da - Skyrunner65 in data 17 settembre 2013 15:07:34 |
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
|
Amministratore
Responsabile Forum
    

Prov.: Roma
Città: Roma
3535 Messaggi |
Inserito il - 17 settembre 2013 : 19:50:40
|
Simpatico il circuitino con il 555...
|
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perchè. In ogni caso si finisce sempre a coniugare la teoria con la pratica: non funziona niente e non si sa il perchè. Albert Einstein E’ meglio stare in silenzio ed apparire stupidi piuttosto che aprire bocca e togliere ogni dubbio. Albert Einstein L'uomo incontra Dio dietro ogni porta che la scienza riesce ad aprire. Albert Einstein
|
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 17 settembre 2013 : 21:01:36
|
Si, è veramente originale e penso che un dimmer comandato in tensione più semplice di così non si possa fare! Per interfacciarlo ad Arduino probabilmente bisognerà cambiare il valore di qualche resistenza per farlo lavorare bene con una tensione di controllo compresa tra 0 e 5V. |
www.presepevirtuale.it |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 17 settembre 2013 : 21:53:34
|
Ciao a tutti, sono di nuovo qui con un maledettissimo problema, allora ho costruito la scheda da 4 canali, il problema é questo, non riesco a modificare il codice che ho fatto per farlo funzionare con 4 canali, ovvero, se provo ad aggiungere altre 3 variabili (dim1, dim2, dim3), quando vado a mettere in loop dim+=1 e (per esempio) dim2+=1, ottengo degli orribili flash.... Se invece dimmero un canale alla volta funziona...Avete qualche soluzione? |
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 17 settembre 2013 : 22:27:33
|
Puoi inserire il codice?
Per fare una prova ti conviene non aggiungere variabili "dim " ma solamente le istruzioni digitalWrite relative ai pin utilizzati, in sequenza nello stesso loop, magari alternando OFF con ON per provare se le dissolvenze si incrociano. Probabilmente, aumentando le istruzioni bisognerà aggiustare i tempi di ritardo per mantenere il sincronismo. |
www.presepevirtuale.it |
Modificato da - Skyrunner65 in data 18 settembre 2013 07:54:11 |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 18 settembre 2013 : 12:49:41
|
Ciao skyrunner, il codice è questo
//DIMMER 220V 4 CANALI
int C1 = 3; //Pin al MOC3020 - OptoTriac - Canale 1
int C2 = 5; //Pin al MOC3020 - OptoTriac - Canale 2
int C3 = 6; //Pin al MOC3020 - OptoTriac - Canale 3
int C4= 9; //Pin al MOC3020 - OptoTriac - Canale 4
byte dim1 = 0; //Livello di luminosità iniziale, da 0 a 255. Variabile canale 1
byte dim2 = 0; //Livello di luminosità iniziale, da 0 a 255. Variabile canale 2
byte dim3 = 0; //Livello di luminosità iniziale, da 0 a 255. Variabile canale 3
byte dim4 = 0; //Livello di luminosità iniziale, da 0 a 255. Variabile canale 4
void setup() {
pinMode( C1, OUTPUT);
pinMode( C2, OUTPUT);
pinMode( C3, OUTPUT);
pinMode( C4, OUTPUT);
attachInterrupt(0, light, FALLING); //Quando il pin 2 di Arduino è "FALLING" da "HIGH" a "LOW", inizia la procedura "light".
}
void light() {
if (dim1 < 1) { //spegne il triac se dim1 è 0 - CANALE 1
digitalWrite(C1, LOW);
}
if (dim2 < 1) { //spegne il triac se dim2 è 0 - CANALE 2
digitalWrite(C2, LOW);
}
if (dim3 < 1) { //spegne il triac se dim3 è 0 - CANALE 3
digitalWrite(C3, LOW);
}
if (dim4 < 1) { //spegne il triac se dim4 è 0 - CANALE 4
digitalWrite(C4, LOW);
}
if (dim1 > 254) { //accende il triac se dim è 255 - CANALE 1
digitalWrite(C1, HIGH);
}
if (dim2 > 254) { //accende il triac se dim è 255 - CANALE 2
digitalWrite(C2, HIGH);
}
if (dim3 > 254) { //accende il triac se dim è 255 - CANALE 3
digitalWrite(C3, HIGH);
}
if (dim4 > 254) { //accende il triac se dim è 255 - CANALE 4
digitalWrite(C4, HIGH);
}
if (dim1 > 0 && dim1 < 255) { //Parte di dimming, se dim non è 0 e non è 255 - CANALE 1
delayMicroseconds(34*(255-dim1));
digitalWrite(C1, HIGH);
delayMicroseconds(500);
digitalWrite(C1, LOW);
}
if (dim2 > 0 && dim2 < 255) { //Parte di dimming, se dim non è 0 e non è 255 - CANALE 2
delayMicroseconds(34*(255-dim2));
digitalWrite(C2, HIGH);
delayMicroseconds(500);
digitalWrite(C2, LOW);
}
if (dim3 > 0 && dim3 < 255) { //Parte di dimming, se dim non è 0 e non è 255 - CANALE 3
delayMicroseconds(34*(255-dim3));
digitalWrite(C3, HIGH);
delayMicroseconds(500);
digitalWrite(C3, LOW);
}
if (dim4 > 0 && dim4 < 255) { //Parte di dimming, se dim non è 0 e non è 255 - CANALE 4
delayMicroseconds(34*(255-dim4));
digitalWrite(C4, HIGH);
delayMicroseconds(500);
digitalWrite(C4, LOW);
}
}
void loop() {
dim1=8; //Lampadina spenta, si aggiunge 1 a 8 fino ad arrivare a 255.. Per dimmerare fino ad accenderla - Canale 1
delay(50);
dim1+=1; //Si ripete questo comando per 247 volte per arrivare alla luminosità massima, poi si mette dim-=1 tornare a 0
delay(50);
}
Se provo a portare dim1 a 120 su 255 ci arriva, il problema è che, quando aggiungo dim2o3o4 flasha.
Per esempio: dim1=120; Va bene, la lampadina si accende a metà della luminosità, poi aspetta un secondo... delay(1000); dim2=10; Ora voglio accendere la seconda lampadina, con la prima sempre accesa a metà luminosità, e flasha....
|
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 18 settembre 2013 : 14:46:55
|
Mi devo attrezzare con l'hardware per fare delle prove!!
Intanto, visto che hai tutto pronto prova a gestire l'interrupt in RISING invece che FALLING in modo da anticipare la sequenza di dimming e prova ad eseguirla su 128 step invece che 255. La lampada che lampeggia è quella che inizia la sequenza o quella che era già accesa? |
www.presepevirtuale.it |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 18 settembre 2013 : 15:40:21
|
Ok, adesso provo a mettere in RISING e a fare 128 step e ti faccio sapere. Lampeggiano entrambe le lampade... |
 |
|
Amministratore
Responsabile Forum
    

Prov.: Roma
Città: Roma
3535 Messaggi |
Inserito il - 18 settembre 2013 : 16:07:13
|
E' ovvio che si comporta in questo modo. Così com'è strutturato, il programma esegue una sequenza, quindi:
if (dim1 > 0 && dim1 < 255) { //Parte di dimming, se dim non è 0 e non è 255 - CANALE 1 delayMicroseconds(34*(255-dim1)); digitalWrite(C1, HIGH); delayMicroseconds(500); digitalWrite(C1, LOW); } if (dim2 > 0 && dim2 < 255) { //Parte di dimming, se dim non è 0 e non è 255 - CANALE 2 .... ....
quindi dim2 deve aspettare che termini l'if di dim1 e quindi prima che questo if venga eseguito passa del tempo. Stesso discorso per dim 3 e dim 4. dim4 addirittura deve aspettare il tempo di esecuzione di 1 2 e 3.
Normalmente i pwm software si realizzano sfruttato l'interrupt generato dal timer e per ottimizzarne la velocità si scrive ilò tutto in assembler.
Questo seguente è una parte di codice relativo all'interrupt per gestire dei pwm software scritto in assembler per micro PIC.
; ------- Interrupt Code ------------------------------------------------------- INT_CODE InstCount = 0 INT_START CHK?RP PIR1 btfss PIR1, TMR1IF GoTo NoTMR1Int RELOAD_TIMER if SPWM1used == 1 SPWMint _SPWM1PIN, SPWM1VAR End If if SPWM2used == 1 SPWMint _SPWM2PIN, SPWM2VAR End If if SPWM3used == 1 SPWMint _SPWM3PIN, SPWM3VAR End If if SPWM4used == 1 SPWMint _SPWM4PIN, SPWM4VAR End If if SPWM5used == 1 SPWMint _SPWM5PIN, SPWM5VAR End If if SPWM6used == 1 SPWMint _SPWM6PIN, SPWM6VAR End If if SPWM7used == 1 SPWMint _SPWM7PIN, SPWM7VAR End If if SPWM8used == 1 SPWMint _SPWM8PIN, SPWM8VAR End If CHK?RP _DutyCount incf _DutyCount, F NoTMR1Int ; ---- Test for other interrupts here (If needed) ------------------------------ INT_RETURN
; ------- End of Interrupt Code ------------------------------------------------
Gestisce fino a 8 pwm diversi e, ovviamente, il programma non è tutto quì ma è molto più lungo e complesso.
Questo serve a darti un esempio di quanto possa essere complesso gestire bene i pwm software. Ti avevo consigliato di usare amalogWrite proprio perchè questi problemi sono stai risolti da chi ha creato l'ide e il compilatore di Arduino. Arduinoi Mega ha la bellezza di 14 uscite PWM comandabili da analogWrite.
|
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perchè. In ogni caso si finisce sempre a coniugare la teoria con la pratica: non funziona niente e non si sa il perchè. Albert Einstein E’ meglio stare in silenzio ed apparire stupidi piuttosto che aprire bocca e togliere ogni dubbio. Albert Einstein L'uomo incontra Dio dietro ogni porta che la scienza riesce ad aprire. Albert Einstein
|
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 18 settembre 2013 : 16:20:22
|
Stefano, nel codice non vedo dove si incrementano le variabili "dim" aggiunte, parlo del void loop alla fine. |
www.presepevirtuale.it |
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 18 settembre 2013 : 16:36:33
|
Sicuramente l'uso di analogWrite semplifica il software ma complica l'hardware necessario. Allego anch' io, a titolo formativo una porzione di codice che realizza la dissolvenza incrociata tra due lampade, si tratta della microcentralina due dissolvenze riportata nel mio sito (solo per lampade a bassa tensione a 12Vcc).
http://www.presepevirtuale.it/progetti-bassa-tensione.html
// Microcentralina Presepe - Modulo 2 Dissolvenze con comando fuochi e // comando avvio tramonto. // Programma per Giorno-Notte PIC12F675 4MHz oscillatore interno. // Mauro Arcangeli 2012 R_1.0 // Compilatore - Mikroelektronika MikroC
#define Giorno GPIO.B1 // Output dissolvenza Luce Giorno #define Notte GPIO.B2 // Output dissolvenza Luce Notte, Stelle ecc. #define Tramo GPIO.B4 // Comando per Modulo Tramonto #define Fiamme GPIO.B5 // Comando per Modulo Fiamme
int PWN_COUNT = 1550; // 1600 Ok!! durata 40" leggerissimo tremolio // 1600 Valore Max 50"" tremolio lampada int i = 0; int p1 = 0; // Lettura potenziometro 1 int Val = 0; // Valore Attesa tra i cicli void PWM_0_TO_1(void); void PWM_1_TO_0(void); void Delay(int num); void main(void) { // ** Configurazione PIC ** OPTION_REG = 0b00001100; GPIO = 0b00000000; CMCON = 0b00000111; ADCON0 = 0b00000000; ANSEL = 0b00000000; WPU = 0b00111111; TRISIO = 0b00001001; INTCON = 0b00000000;
while(1) { PWM_0_TO_1(); P1 = Adc_Read(0); // Lettura ingresso analogico - TRIMMER if (( P1 > 0 ) && (P1 < 200 )) Val =1; if (( P1 > 200 ) && (P1 < 400 )) Val =2; if (( P1 > 400 ) && (P1 < 600 )) Val =3; if (( P1 > 600 ) && (P1 < 800 )) Val =4; if (( P1 > 800 ) && (P1 < 1000 )) Val =5; if ( P1 > 1000 ) Val =6; switch (Val) { case 1: Delay_ms(4000); // Ciclo minimo 1' circa case 2: Delay_ms(6000); case 3: Delay_ms(8000); // Attesa tra un ciclo e l'altro case 4: Delay_ms(10000); case 5: Delay_ms(12000); case 6: Delay_ms(14000); // Ciclo Max 2' Circa } PWM_1_TO_0(); P1 = Adc_Read(0); // Lettura ingresso analogico - TRIMMER if (( P1 > 0 ) && (P1 < 200 )) Val =1; if (( P1 > 200 ) && (P1 < 400 )) Val =2; if (( P1 > 400 ) && (P1 < 600 )) Val =3; if (( P1 > 600 ) && (P1 < 800 )) Val =4; if (( P1 > 800 ) && (P1 < 1000 )) Val =5; if ( P1 > 1000 ) Val =6; switch (Val) { case 1: Delay_ms(4000); // Ciclo minimo 1' circa case 2: Delay_ms(6000); case 3: Delay_ms(8000); case 4: Delay_ms(10000); // Attesa tra un ciclo e l'altro case 5: Delay_ms(12000); case 6: Delay_ms(14000); // Ciclo Max 2' Circa } } }
void PWM_0_TO_1(void) // Duty cycle - 0% to 100% { for (i = 0; i < PWN_COUNT; i++) { Tramo = 0; Giorno = 1; Notte = 0; if ( i > 1000 ) { Fiamme = 1; } Delay(PWN_COUNT - i); Giorno = 0; Notte = 1; Delay(i); } }
void PWM_1_TO_0(void) // Duty cycle - 100% to 0% { for (i = 0; i < PWN_COUNT; i++) { Giorno = 0; if ( i > 900 ) Tramo = 1; if ( i > 1450 ) Fiamme = 0; Notte = 1; Delay(PWN_COUNT - i); Giorno = 1 ; Notte = 0; Delay(i); } }
void Delay(int num) { while(num>0) num--; } |
www.presepevirtuale.it |
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 18 settembre 2013 : 20:11:31
|
Ho provato con i consigli di skyrunner e non funziona (le lampadine fanno quello che vogliono), quindi ho pensato di usare 4 atmega328 programmati da arduino, ognuno controlla una fase del giorno, programmati con i giusti tempi, e accendendoli tutti allo stesso tempo attraverso un rele con arduino dovrebbe funzionare bene... |
 |
|
Amministratore
Responsabile Forum
    

Prov.: Roma
Città: Roma
3535 Messaggi |
Inserito il - 18 settembre 2013 : 20:48:30
|
Troppo complicato. Se usi bene analogWrite, metti una rete rc in uscita al pwm e lo mandi al dimmer con il 555 inviato da Mauro fai presto e bene. Cerca in rete gli esempi che ne trovi diversi e se non sbaglio dovrebbe esserci un esempio nella cartella examples di Arduino. |
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perchè. In ogni caso si finisce sempre a coniugare la teoria con la pratica: non funziona niente e non si sa il perchè. Albert Einstein E’ meglio stare in silenzio ed apparire stupidi piuttosto che aprire bocca e togliere ogni dubbio. Albert Einstein L'uomo incontra Dio dietro ogni porta che la scienza riesce ad aprire. Albert Einstein
|
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 18 settembre 2013 : 20:53:39
|
Quattro microcontroller per 4 dissolvenze mi sembra esagerato!! Prima di tutto insisterei alla ricerca di una soluzione software, eventualmente ripiegherei verso una soluzione hardware come quella evidenziata da Giacomo. Altra soluzione: inserire sempre il filtro RC per ottenere un valore di tensione per poi interfacciarsi a questa scheda che ho progettato per collegarla a schede che prevedono uscite in tensione come la K8061. http://www.presepevirtuale.it/dac-to-pwm-converter.html In pratica converti il PWM in tensione e di nuovo in PWM però già sincronizzato con la rete in tutti e otto i canali. Unico problema risolvibile da software è l'inversione della rampa, cioè PWM 0% lampada accesa, 100% spenta. In ogni caso il problema del firmware resta!! Quindi conviene prima mettere a punto il programma facendo funzionare le quattro dissolvenze magari collegando dei semplici led in uscita. |
www.presepevirtuale.it |
Modificato da - Skyrunner65 in data 18 settembre 2013 21:34:34 |
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
|
Amministratore
Responsabile Forum
    

Prov.: Roma
Città: Roma
3535 Messaggi |
Inserito il - 19 settembre 2013 : 16:42:24
|
Con una risoluzione di 8 bit e 8 canali in uscita ho usato con molta soddisfazione il MAX521. http://pdfserv.maximintegrated.com/en/ds/MAX520-MAX521.pdf
|
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perchè. In ogni caso si finisce sempre a coniugare la teoria con la pratica: non funziona niente e non si sa il perchè. Albert Einstein E’ meglio stare in silenzio ed apparire stupidi piuttosto che aprire bocca e togliere ogni dubbio. Albert Einstein L'uomo incontra Dio dietro ogni porta che la scienza riesce ad aprire. Albert Einstein
|
 |
|
Amministratore
Responsabile Forum
    

Prov.: Roma
Città: Roma
3535 Messaggi |
Inserito il - 19 settembre 2013 : 16:50:02
|
Con una risoluzione di 8 bit e 8 canali in uscita ho usato con molta soddisfazione il MAX521. http://pdfserv.maximintegrated.com/en/ds/MAX520-MAX521.pdf
|
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perchè. In ogni caso si finisce sempre a coniugare la teoria con la pratica: non funziona niente e non si sa il perchè. Albert Einstein E’ meglio stare in silenzio ed apparire stupidi piuttosto che aprire bocca e togliere ogni dubbio. Albert Einstein L'uomo incontra Dio dietro ogni porta che la scienza riesce ad aprire. Albert Einstein
|
 |
|
stefano63
Nuovo Arrivato

Regione: Liguria
Prov.: La Spezia
Città: Sarzana
16 Messaggi |
Inserito il - 19 settembre 2013 : 17:37:16
|
Ciao a tutti, grazie per le proposte, avevo scelto di usare 4 atmega perchè volevo costruire una centralina che mi andasse a costare meno di una commerciale (finora ho speso sui 20€ per 4 canali dimmer) oltre che per soddisfazione di costruirmene una... Se vado ad aggiungere altri componenti, la situazione si complica sia a livello hardware che a livello di spesa. |
 |
|
Skyrunner65
Moderatore
    

Regione: Marche
Prov.: Macerata
Città: Porto Potenza Picena
885 Messaggi |
Inserito il - 19 settembre 2013 : 19:55:43
|
Interessante il MAX521! Almeno si trova anche in DIP package! Grazie Giacomo per l'informazione. |
www.presepevirtuale.it |
 |
|
Discussione  |
|