Gestire ventola PWM

Salve ragazzi,
premetto che ormai da giorni cerco informazioni in merito, ma per assurdo ho trovato tutto e il contrario di tutto, quindi ormai ho solo una grande confusione, quindi chiedo lumi.

la domanda è questa:
devo regolare la velocità di una ventola tramite un segnale PWM generato da arduino, poco importa la logica con cui varierà, al momento ho diverse idee, il problema è che non ho ancora capito con quali componenti hardware lavorare...

Nello specifico:

  1. quale ventola mi conviene utilizzare? 2,3 o 4 fili?
  2. a seconda della ventola scelta, quali altri componenti hardware mi servono? (transistor, mosfet, ecc ecc)

grazie mille

Quelle a 2 pin le puoi controllare, sempre con un MOSFET, in PWM come dei motorini elettrici, le 3 o 4 fili hanno una logica a bordo e sono nate per essere comandate in PWM (hanno un pin apposta).

Gli schemi di collegamento potrebbero essere questi (salvo errori e/o omissioni) ...

3 FILI:

4 FILI:

Guglielmo

ciao Guglielmo,
grazie mille per la risposta, ti faccio peró due domande relative a quanto mi scrivi:

  1. le due fili ho letto peró che ci vogliono determinati mosfet, quale di preciso?
    Andrebbe bene anche un transistor? Se si quale o quali sono i criteri di scelta?

  2. nelle 4 fili il segnale pwm deve essere prodotto tra 21khz e 28khz e leggevo che nn é cosí semplice su arduino, sai dirmi qualcosa in merito?

10 / 5000

Questo stesso
BUZ-11_motor

La corrente del collettore (Ic) deve sopportare comodamente la corrente assorbita dal ventola. E la frequenza di taglio deve supportare la frequenza PWM.
Saluti.

1 Like

... qui, fino a quando le correnti lo permettono, consigliamo sempre il IRL540 che è un "logic level".

Ci sono varie semplici librerie e strumenti grafici che, sui classici Arduino, ti permettono di impostare la frequenza di PWM al valore da te scelto. Basta fare un po' di ricerche su Google ed anche qui sul forum Italiano dove se ne già parlato. :wink:

Guglielmo

Ho trovato in effetti alcuni video con del codice per cambiare la frequenza prodotta in pwm, ho anche visto che a volte non produce grandi risultati, quindi proverò e testerò.
In ogni caso se volessi utilizzare le 4 pin non mi servirebbe l' IRL540 che sembra introvabile su amazon a meno che non si aspetti un'eternità, un'alternativa a lui quale potrebbe essere se c'è? Altrimenti aspetterò o ancora meglio andrò sicuramente sulle 4 pin.
Per il resto grazie mille di tutto !

... trovabilissimo su qualsiasi distributore serio di materiale elettronico ... Mouse, RS-Components, Digi-Key, ecc. ecc. :slight_smile:

Guglielmo

Si lo so Guglielmo, ma io compro su amazon per mille motivi che non sto a spiegarti quindi ho necessità di acquistare lì, alla malparata se alla fine serviranno andrò su RSComponents :wink:
Nuovamente grazie, ora sono alle prese con il PMS5003, non capisco dagli esempi in rete come tirar fuori i valori che restituisce, mi sposto qui sul forum e faccio una ricerca, eventualmente apro un topic

Ciao. In alcuni progetti avevo usato il IRLZ44 che è sempre logic-level. Però non essendo ferrato sull'hardware non so dirti se è "compatibile" nel tuo caso.
Se @gpb01 ti da conferma magari riesci a trovarlo anche su amazon

Allora gente, siamo al dunque ma c'è qualcosa che non torna...
Alla fine ho preso una ventola a 4PIN pensando (ingenuamente) di facilitarmi la vita...
Ho realizzato un circuito in cui ho collegato quanto segue:

+12V alimentazione ventola
GND in comune tra alimentatore e arduino
filo giallo -> pin digitale di arduino
filo blu (controllo PWM) -> pinPWM di arduino

ho po scritto questo sketch al volo per capire se andava:

const int fan_control = 11;
int potVal;
int fanSpeed;

void setup() {

  Serial.begin(9600);
  pinMode(fan_control, OUTPUT);
  analogWrite(fan_control, 0);

}

void loop() {

  potVal = analogRead(A1);
  fanSpeed = map(potVal, 0, 1023, 0, 255);
  analogWrite(fan_control, fanSpeed);
  Serial.print("POT VAL: ");
  Serial.println(potVal);
  Serial.print("FAN SPEED: ");
  Serial.println(fanSpeed);
  delay(1000);

}

La ventola in effetti va, se aumento il valore del potenziometro la velocità aumenta, ma il punto è che con il potenziometro a zero la ventola continua a girare...
Appena concludo questo post provo a variare il pinPWM e portarlo a lavorare a 25KHz, vediamo se è quello, altrimenti dove sto sbagliando secondo voi?

Fai debug, aggiungi delle Serial.print e stampa i valori, specie di potVal e fanSpeed.

Guglielmo

Quando ho il potenziometro a 0
POTVAL = circa 23
FanSpeed = 7

quindi sembrerebbe che il valore del potenziometro non vada mai a zero, però io ho fatto un'ulteriore prova e ho inserito nello sketch:

analogWrite(fan_control, 0);

e la ventola va sempre anche in quel caso...
è possibile che il problema sia hardware? che ne so, pin girati della ventola o altro?

Fosse anche una sola riga, il codice, da REGOLAMENTO, va racchiuso negli appositi tag ... :roll_eyes:

... cortesemente, quindi, edita il tuo post più sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona </> nella barra degli strumenti per contrassegnarla come codice. Così com'è non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac all'intero del IDE). Grazie. :slight_smile:

Guglielmo

ok dovrei aver sistemato il post, mea culpa.