EAGLE DIDATTICA PRATICA - Dimmer Arduino Controlled

PREMETTO che di questo argomento si è già trattato nel Topic "DIMMER 220V comandato direttamente da Arduino da PWD o porta Analogica", e questo NON vuole essere un duplicato, ho solo preso come spunto il progetto nato in quel Topic per DIDATTICARE su qualcosa di PRATICO (alcune indicazioni sono già state date nel Topic sopra mensionato)

Premessa fatta, quello che vorrei è aprire un confronto appunto sullo schema postato da Maxvetro per un Dimmer comandato da Arduino. Schema al quale Testato consigliava di aggiungere due 1n4007, uno in serie al led opto, ed uno in antiparallelo al led opto, per proteggerli e - testualmente - evitare loro di finire presto in un "mondo migliore" :D. Scopo finale, la realizzazione del PCB, realizzazione del Dimmer con pubblicazione integrale del progetto step-by-step con foto e video.

Il sottoscritto, in una botta di enorme autostima ha provato a cimentarsi nel riportare in EAGLE 6.1.0 Light, lo schema appunto postato da Maxvetro, cercando anche di realizzare un primo sbroglio del PCB (facendo peraltro una valanga di errori da niubbo quale sono !), ma ad un certo punto l'autostima è CROLLATA e la necessità di aiuto si è fatta evidente.

Quindi, (nell'incertezza di aver posizionato in modo corretto i diodi così come indicato da Testato) proporrei:

1 - CONTROLLO dello schema elettrico ed eventuali consigli per modifiche/migliorie

2 - INDICAZIONI sulla corretta strada per creare il PCB Personalmente ho cercando di sbrogliare il PCB è vista la necessità di cambiare la dimensione delle piste per la parte 220V, ho provato [l'unico modo che conosco è Click Dx sulla pista, Proprietà, Width, OK] :astonished:, ma mi sembra impossibile che questa sia la strada giusta e che si debba fare singolarmente per ogni tratto. Possibile che non si possa "raggruppare" e modificare la grandezza delle piste per un gruppo di queste, così ci vuole una vita !!! =( Inoltre, DOPO aver fatto "l'autorouting" e creato le piste, se si sposta un componente, è possibile fare una sorta di refresh che riaggiusti in automatico le piste interessate allo spostamento effettuato (riesegua insomma l'autorouting) ?

ciao

in Eagle puoi usare le net classes per definire caratteristiche diverse (spessore...) a "gruppi" (classes) di collegamenti: http://www.cuteminds.com/index.php/it/nelclass

@lucadentella: GRAZIE, il tutorial è chiarissimo

Una precisazione: hai messo le giunzioni (i pallini verdi) un pò a casaccio, sembrano sparati con la cerbottana... Dovrebbero andare solo dove più linee di collegamento si uniscono, non su ogni singolo componente. Ciao

:grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: gliel'ho detto anche io nell'altro post, si vede che a lui piacciono i puntini verdi :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin: :grin:

SI LO SO !!!!

Testato e Co. mi avevano già cazziato per questo :blush:, però ho una scusante 8) ! Quando ho fatto la prima volta il ridisegno dello schema, per qualche motivo, alcuni collegamenti (pur essendo tangenti o sovrapposti) non risultavano collegati quando provavo a fare il PCB. Il primo tentativo per risolvere il problema è stato quello di creare le giunzioni con il pallino verde, poi si sa, uno tira l'altro (ach, quelle erano le ciliegie :blush:) e li ho messi un po' dappertutto..... Dai questa per il primo schema in EAGLE ... PASSATEMELA !!!!

Prometto solennemente che appena lo schema sarà VALIDATO, e giungerà ad una release finale LO RIDISEGNO TUTTO senza pallini verdi inutili. Croce sul cuore :roll_eyes:

Per ora comunque sto impazzendo con il tentativo di sbroglio. lucadentella mi ha dato una dritta ad un tutorial per quanto riguarda la dimensione delle piste che ho capito e messo in atto subito; mi resta ancora il dilemma di come poter spostare un componente nel PCB dopo aver fato l'autorouting e poter ridisegnare le piste in automatico senza doverle spostare a mano o peggio dover ripartire da zero. QUALCOSA MI SFUGGE !!!

Per verificare se hai fatto il collegamento per bene, prova a spostare il componente attaccato. Se vedi che si sposta anche il "filo", allora ci hai dato :P Ad esempio, prendi R4: se tirandola verso il basso vedi che i 2 collegamenti laterali vengono giù con essa, sei a posto.

Piste: normalmente io uso 0.24 per dati, 0.32 per alimentazione (Vcc e Gnd). Poi ricordati che se devi far fare il PCB ad un service, ogni service ha dei requisiti minimi da rispettare per spessore delle piste, diametro dei fori, distanza di isolamento tra pista e piano di massa, distanza fra componenti ecc... Se devi fare il PCB in casa conviene stare larghini, è inutile andare ad impelagarsi con piste appiccicate e con poca distanza fra la pista stessa ed il piano di massa, per non diventare "grulli" quando si deve saldare.

Sull'ultima tua richiesta, io generalmente faccio così: prima di fare l'autorouting salvo il file. Se poi combino diversi pasticci, chiudo senza salvare e riapro la versione precedente :sweat_smile:

Per verificare se hai fatto il collegamento per bene, prova a spostare il componente attaccato. Se vedi che si sposta anche il "filo", allora ci hai dato Ad esempio, prendi R4: se tirandola verso il basso vedi che i 2 collegamenti laterali vengono giù con essa, sei a posto.

@leo72: Grazie per l'indicazione, adesso ho capito come fare, il problema l'ho incontrato al primo tentativo ma mi sono trascinato dietro i pallini verdi fino a questa versione in questo schema (L'ho rifatto comunque) !

Per quanto riguarda i PCB, li realizzo da solo (ne ho già fatti diversi, però fino ad adesso sempre sbrogliati e disegnati da me con CorelDraw - una faticaccia). Uso la tecnica con stampante laser, foglio cerato, acido e tutto mi funziona bene. Ho fatto degli stampatini niente male, roba semplice si, però carini e precisi.

Io sto utilizzando come Te, 0,24 per i dati, 0,32 per Vcc e Gnd e 0,50 per la parte 220V (basterà 0,50 ?) Quello che non ho capito bene è come cambiare la distanza tra le piste per ogni gruppo..... sempre da NET CLASSES ?

Per quanto riguarda l'autorouting, speravo esistesse appunto la possibilità di RIDISEGNARE dopo aver spostato un componente (mi pare una funzione così indispensabile ed ovvia che mi pare impossibile non ci sia !) Infatti, spesso, dopo aver fatto AUTOROUTING ci si accorge che spostando uno o più componenti si possono evitare ponticelli e passaggi troppo vicini.

@Testato & Pelletta: Va meglio così lo schema ? :grin: :grin: :grin: :grin: :grin:

Mica tanto... ora ne hai levati troppi :grin:

Sulla 230V non ti aiuto, non ho esperienza con l'AC.

Le impostazioni dell'autoroute le modifichi dalla finestra che si apre quando clicchi sull'icona dell'autorouter.

Rimanendo all'autorouting, per fare una sorta di rollback puoi fare così. Se hai notato, esiste il pulsantino per riconvertire una pista nel suo collegamento volante (il segmento giallo). Se sposti un componenti, elimina le piste riportandole a segmento giallo e poi falle ridisegnare nuovamente.

@Pelletta: Però ho controllato e le giunzioni ci sono tutte ! Quali mancano ?

[EDIT]
@Leo72: Si, faccio anche così qualche volta, ma mi pare troppo farraginoso, non ti pare ?

Allora: prima e dopo D2 prima e dopo D4 prima R3 dopo R7 sopra e sotto C2

INVERTI D1

@Pelletta: Ma mi confermi che questo è solo per rispettare uno standard di lettura dello schema vero, perchè per quanto riguarda le giunzioni, in questo modo quelle da Te indicate anche senza pallino verde sono attive e connesse ;) !

La tecnica è semplice: quando tre linee si incrociano tra loro il bollino di giunzione serve per far comprendere che quele tre linee sono iun collegamento tra loro, altrimenti significa che stanno passando l'una sopra l'altra ma senza essere in contatto elettrico: prendi D4, il suo catodo incrocia la pista proveniente da R1 e l'anodo di OK1, se nelle tue intenzioni quel punto è una giunzione ci metti il pallino, altrimenti no. Invece la giunzione tra due punti soltanto NON deve mai avere il bollino in quanto è certamente una giunzione, chiaro il concetto?

cgs64: @Pelletta: Ma mi confermi che questo è solo per rispettare uno standard di lettura dello schema vero, perchè per quanto riguarda le giunzioni, in questo modo quelle da Te indicate anche senza pallino verde sono attive e connesse ;) !

Penso di si, servono solo per facilitare la lettura dello schema; eagle lo sa quali collegamenti si sovrappongono senza essere collegati, ma chi legge lo schema non lo scopre fino a quando fa il circuito e gli esplode in faccia :)

@Menniti: OK, chiaro e limpido. Ricevuto, eseguo.

@Testato: D1 invertito

@Pelletta: Ah ah ah ah ah, OK, corretto ! Speriamo vada bene e ... niente esplosioni :blush: !

Ottimo, come vedi basta un semplice principio e tutto va da sé, l'incrocio tra la pista collegata al gate di T1 con quella collegata a R6-R7-C1 dimostra chiaramente che hai compreso il principio alla perfezione, i miei complimenti!

aggiungici due 1n4007
uno in serie al led opto, ed uno in antiparallelo al led opto

@Testato: Dalla tua indicazione nel vecchio post avevo capito diversamente

@Menniti: :wink:

RIPUBBLICO anche il codice di MAXVETRO per la gestione del Dimmer con Arduino così come Lui lo aveva postato per comodità di chi volesse consultarlo al volo.

ecco lo schema ( fatto a mano ma in questo momento non ho altro ) ed il codice

int var = 1000  ;
void setup()
{
  attachInterrupt(0, zero_cross_detect, RISING);
  pinMode(10, OUTPUT);
  Serial.begin(9600);
  pinMode ( 3 , INPUT );
}

void zero_cross_detect() {  delayMicroseconds(var);  digitalWrite(10, HIGH);  delayMicroseconds(1000);  digitalWrite(10, LOW); }

void loop() {  if ( digitalRead(3) == LOW ) {     var = var + 50 ;   delay ( 10 ) ;   if ( var == 9000 ) {      var = 1000;   }  } }




brevemente provo a commentarlo :

la funzione "attachInterrupt" non fa altro che dire ad arduino che nel momento in cui vede una variazione da negativo a positivo ( RISING ) sul pin 2 ( interrupt 0 ) di andare ad eseguire il codice all'interno del void "zero_cross_detect" , quindi ogni inizio del ciclo dell'onda 220 Vac ;
Questa variazione la creiamo con i 2 optoisolatori 4N25 ( due per ottenere variazioni sulle sinusoidi positive e negative )

A questo punto ci troviamo a definire una variabile ( var ) che "ritarda" il positivo in uscita sul pin10

Sappiamo che un TRIAC , una volta mandato in conduzione , rimano tale fin quando non finisce di circolare la correte tra i 2 terminali ( A1 ed A2 ) 
Noi lo mandiamo in conduzione dopo il tempo "var" ( 1000 = massima luminosità ; 9000 = minima luminosità ) per togliere subito corrente dopo 1 millisecondo



 delayMicroseconds(var);  digitalWrite(10, HIGH);  delayMicroseconds(1000);  digitalWrite(10, LOW); ```

ed ecco che abbiamo ricreato il principio di funzionamento del varialuce tradizionale

il codice dentro il void loop serve , con la pressione del pulsate , di variare l'intesità

Da qui in poi tutto a vostra fantasia ....

Spero di essere stato utile