Problema sketch regolatore velocità ventola con motore asincrono 220 V

Ciao a tutta la comunity come da topic ho a che fare con una ventola alla quale modificare il numero di giri
La ventola è di tipo a chiocciola o centrifuga questo lo specifico per il fatto che se sbaglio a descrivere il tipo di motore qualcuno possa correggermi.
Cmq il tipo di mltore dovrebbe essere asincrono monofase.
Ora come ora il controllo dei giri lo sto effettuando tramite regolatore per ventilatori della elicel ma l'inconveniente è che, apparte la difficoltà ad impostare la velocità conveniente, nn mantiene regolari il numero di giri aumentando in maniera spropositata per un paio di minuti per poi scendere più o meno alla velocità precedente.
Per questo motivo ho deciso di provare a costruire un variatore pilotato da arduino
Smontando il Regolatore che utilizzo attualmente è un semplice circuito con potenziometro triac resistenze e 2 condensatori e una bobina.
Visto che c'è il triac ho riprodotto lo schema dato da pigghixxx relativo al triac... continuando le ricerche ho realizzato anche il circuito per lo zeroX il tutto funziona in maniera egreggia , con carichi resistivi!
Provando lo stesso sketch sulla ventola nn ottengo niente ora il dubbio è.: è lo sketch o il circuito?Data mia nn grandissima esperienza con l'elettronica nn escluderei nessuna ipotesi per questo chiedo a voi una mano

Se con il carico resistivo funziona, allora il problema è legato al fatto che il triac si spegne dopo essersi accesso.
Se hai realizzato un controllo usando Arduino, il trigger lo devi inviare continuamente fino alla fine della semionda, in questo modo se il triac si spegni viene riacceso dall'impulso successivo. Quindi quello che devi inviare al triac è un treno di impulsi che parte in ritardo (stabbilito da utente) e termina alla fine della semionda, cioè quando lo zero cross te lo segnala.

Posta qualcosa, circuito, sketch, pezzi di codice ecc, qualunque cosa che hai fatto fino ad adesso.

Ciao.

Per postare codice e allegati segui queste le istruzioni (punto 7, 8 e 9) --> [REGOLAMENTO] Come usare questa sezione del forum - Italiano - Arduino Forum

Benvenuto.

ok il tempo di sistemare lo schema e sendo un po di cosette :smiley:

ecco qua lo schema dello zeroX + collegamento triac
e il codice di partenza

int AC_LOAD = 3;    // Output to Opto Triac pin
int dimming = 128;  // Dimming level (0-128)  0 = ON, 128 = OFF

void setup()
{
  pinMode(AC_LOAD, OUTPUT);// Set AC Load pin as output
  attachInterrupt(0, zero_crosss_int, RISING);  // Choose the zero cross interrupt # from the table above
}

// the interrupt function must take no parameters and return nothing
void zero_crosss_int()  // function to be fired at the zero crossing to dim the light
{
  // Firing angle calculation : 1 full 50Hz wave =1/50=20ms 
  // Every zerocrossing thus: (50Hz)-> 10ms (1/2 Cycle) For 60Hz => 8.33ms (10.000/120)
  // 10ms=10000us
  // (10000us - 10us) / 128 = 75 (Approx) For 60Hz =>65

  int dimtime = (75*dimming);    // For 60Hz =>65    
  delayMicroseconds(dimtime);    // Off cycle
  digitalWrite(AC_LOAD, HIGH);   // triac firing
  delayMicroseconds(10);         // triac On propogation delay (for 60Hz use 8.33)
  digitalWrite(AC_LOAD, LOW);    // triac Off
}

void loop()  {
  for (int i=5; i <= 128; i++){
    dimming=i;
    delay(10);
   }
}

Il diodo 1N4004 sull'opto che sincronizza e' connesso nello stesso senso del led, in quel modo il led non si accendera' mai ... inoltre, se non usi un'opto con ingresso in AC (o un ponte di diodi per pilotarlo), sincronizzi solo una semionda ...

hai ragione per il led ma al montaggio l'ho collegato giusto ovvero nel senso opposto ed ho usato un 1n4007.
scusa non ho capito per l'opto con ingresso in ac, avrei dovuto usare due 4n25 per poter sincronizzare anche l'altra semionda?
Sempre riguardo la seconda semionda, è necessaria perchè siamo in presenza di un carico induttivo giusto=?

No, la seconda semionda e' necessaria perche' la regolazione la si fa su entrambe :wink: ... non serve usare un secondo opto, o si usa un'opto con ingresso AC (hanno due diodi led all'interno connessi in antiparallelo), o si puo usare un ponte raddrizzatore (bastano 4 diodi 1N4148) con cui pilotare il led (all'ingresso AC del ponte va la rete, ed all'uscita + e - i terminali del led dell'opto, cosi si accende per entrambe le semionde ... niente condensatori, ovviamente)

dicevo l'altro opto collegandolo al contrario non sarebbe l'equivalente dell'opto con ingresso AC?
tipo quest'altro schema trovato in rete?

non ho caricato bene l'immagine

Si, se hai un'opto che ti avanza, va bene anche cosi.

Infatti. .. ora talasciando la parte hardware che ho già a disposizione, con le dovute modifiche da apportare
Che tipo di sketch dovrei iniziare ad improntare
Ricordo che devo pilotare carico induttivo e avevo letto che il treno di impulsi nn era tanto indicato xke riscaldava parecchio

Allora ragazzi ho apportato le dovute modifiche alla parte hardware per l'individuazione del passaggio allo zero e sono riuscito a dimmare una ventola radiale senza condensatore con questo sketch

const int carico =10;  //pin dell'uscita del segnale per il gate
const int plus=3;  // pulsantino per aumentare il delay
const int minus=7;  //diminuzione delay
double dim =0;  //valore delay
unsigned long millisButton=0;
boolean ZeroX=0;

void Zero_detect(){
   ZeroX=1;
 }
void setup(){
  pinMode(carico, OUTPUT);
  pinMode(plus,INPUT);
  digitalWrite(plus,HIGH);
  pinMode(minus,INPUT);
  digitalWrite(minus,HIGH);
  millisClose=millis();
  attachInterrupt(0, Zero_detect,FALLING);
  Serial.begin(9600);
  
}
void loop(){
 
  if (digitalRead(plus)==LOW){
    if(millis()- millisButton> 500){
       millisButton=millis();

  dim+=1;
  intervallo--;

       Serial.println(dim);
    }
  }
  if (digitalRead(minus)==LOW){
    if(millis()- millisButton> 500){
      millisButton=millis();

if (dim >0){
  dim-=1;
  intervallo++;
}
      Serial.println(dim);
    }
  }
Dimming1();
 
  
}



void Dimming1(){
  if (ZeroX==1){
   dimmer1();
    ZeroX=0;
  }
}
void dimmer1(){
   delay(dim);
   digitalWrite(carico,HIGH);
   delay(2);
   digitalWrite(carico,LOW);
}

Con questo tipo di ventola che nn ha condensatore il tutto funzica abbastanza bene tranne che mettendo il delay di apertura a 0 non parte e controllando col tester il livello di tensione è a 106 V circa portandolo a 2 mi sale a 220V e da li aumentando a step di 1 millisecondo mi diminuisce la tensione e la velocità regolarmente.
Ora le mie domande sono:

  1. come mai se nn metto delay per l'apertura del triac mi scendono a 100 i volt?
  2. provando lo stesso sketch con la ventola per la quale sto creando questo regolatore la ventola non risponde alla caduta di tensione mantenendo i giri alti... sarà il condensatore? se si come posso operare perchè funzioni?

Aspetta un momento, vuoi usare un regolatore di tensione per cercare di regolare un'asincrono in AC con condensatore ? ... ho dei dubbi che ti faccia una qualche regolazione efficente, quel tipo di motori in genere cambiano la velocita' in base alla frequenza, non in base alla tensione ...

con lo sketch di cui sopra, con la ventola radiale che ho a casa riesco ad ottenere 5 livelli di velocità
con il motore in questione ne ottengo 3
c'è da dire che attualmente viene regolata da regolatore con triac con potenziometro

Mi sono ricordato una cosa ... anni fa, facendo un po di esperimenti con una ventola a 220V (che aveva il condensatore), ero riuscito a variarne la velocita', entro certi limiti, in un paio di modi ... uno ovviamente era la variazione della capacita' del condensatore, il che non e' esattamente semplice (avevo messo 5 o 6 condensatori diversi con un vecchio commutatore rotante :P), e l'altro sistema, dopo un po di prove e frustrazioni varie :stuck_out_tongue: XD, era la variazione della tensione in uno dei due rami (bobina principale), mantenendo invece fissa la tensione nel ramo con il condensatore ... sempre limitata era, ma migliore che collegando il variatore direttamente ... se solo riesco a ritrovarlo in mezzo agli schemi vecchi, o almeno a ricordarmelo, ti butto giu uno schemino ...

EDIT: non so piu dove e' finito, quindi l'ho ridisegnato un po a memoria ... non posso garantirti al 100% che sia funzionante con il tuo motore, primo perche' il motore con cui avevo provato io era piccolo, e probabilmente diverso dal tuo, e secondo perche' la memoria non e' piu quella di 30 anni fa (e gia allora non era un gran che :stuck_out_tongue: XD) ... ma mi sembra che fosse come nello schema allegato ...

Il primo schema e' la normale connessione dei motori asincroni, le due bobine sono connesse una diretta ed una attraverso il condensatore che sfasa tensione e corrente ... nel secondo schema, avevo lasciata connessa direttamente la bobina secondaria attraverso il condensatore, e regolavo la tensione solo su quella che normalmente e' connessa direttamente ... non aveva una regolazione fluida e regolare, ma andava comunque meglio che collegando il motore in serie al regolatore come si fa di solito per i motori a spazzole ...

L'induttanza L1 ed il condensatore CF sono per filtrare via i disturbi prodotti dal triac durante le commutazioni, non ricordo i valori che avevo usato, l'induttanza era un toroide recuperato da un'alimentatore ed il condensatore era qualcosa tipo 100 o 150 nF 450V poliestere, puoi variarli per ottenere il minore disturbo possibile ... il triac era un normalissimo triac da 400V 4A, la lampadina al neon era una spia per la 220 senza la resistenza in serie (ma si puo sostituire con un qualsiasi DIAC da una quarantina di volt, all'epoca si usavano i bulbetti al neon perche' i DIAC erano un lusso, ora te li tirano nella schiena :P) ... il condensatore da 4.7uF era quello che c'era connesso alla mia ventola, ovviamente il tuo motore potrebbe avere un condensatore di tipo e valore diverso (anzi quasi sicuramente sara' diverso), quindi devi lasciare quello che c'e' gia ... quanto al potenziometro ed alla resistenza da 10K, anche quelli puoi provare a cambiarli per ottenere il risultato migliore possibile con il tuo tipo di motore, se quei valori dessero problemi ...

Praticamente lo schema che hai messo nn è altro a primo acchito che lo schema del regolatore che utilizzo attualmente
Io vorrei regolare il tutto con arduino e fino ad ora sono riuscito ad ottenere tre step di velocità. Il tipo di regolatore che mi riproponi e che attualmente utilizzo con risultati nn soddisfacenti x il mio scopo mi varia la velocità ma nn è stabile ovvero superato un certo punto nella regolazione del potenziometro mi scappa la velocità per questo avevo pensato di controllarlo tramite arduino

Dopo un paio di tentativi sono riuscito a controllare per metà il motore in questione ma nn nella maniera che necessito quindi, valutando altre soluzioni alternative devo ripiegare su un motore dc 12V da controllare in pwm
A questo punto facendo tesoro di ogni lezione datami da ognuno di voi tramite questo post e altri che ho letto posso dire che in qualche modo il topic è risolto :wink: