dimensionare resistenze per ventola

Ciao a tutti, sono nuovo sul forum e altrettanto nuovo nel mondo Arduino.

Volevo semplicemente chiedere, dopo alcune ricerche fallimentari nel web, se e come posso dimensionare le resistenze da collegare a una ventola prelevata da una base di raffreddamento per notebook.
La base era composta da tre ventole in parallelo, e l'unica indicazione che c'è su di esse è che vanno a 5V ( gran scoperta ).

Perciò vista la scandalosa ignoranza in elettronica, e anche la paura di far danno ad Arduino vi chiedo aiuto.
Posso ottenere info sulla ventola con un semplice multimetro? Come posso fare?

Ho provato a collegarla inserendo una resistenza di circa 100 ohm tra il pin13 e il positivo della ventola, l'altro capo a massa ma non va.

Grazie a tutti :slight_smile:

Semplicemente NON puoi collegare la ventola direttamente ad un pin di Arduino ...

La ventola assorbe X milliAmper (sicuramente più dei 10-15 mA che al massimo può darti Arduino su un pin) e quindi ... non è che se metti una resistenza la puoi far funzionare ... se metti la resistenza, riduci la corrente e quella non funziona più !

Per pilotarla ti serve un circuito con un transistor che piloti con un pin di Arduino e quello, a sua volta, pilota la ventola :slight_smile:

Guglielmo

Prova a guardare QUI ... scheda numero 5, come si collega un motorino in corrente continua ...

La tua ventola è a velocità fissa o ha anche un filo per la regolazione della velocità ???

Guglielmo

Le basi di raffreddamento per notebook di solito prendono l'alimentazione tramite USB.
Se è così, le tre ventole possono assorbire al massimo 3x150 mA, essendo 500 mA il limite massimo di corrente erogabile da una porta USB.

Grazie per le risposte rapide.

Immaginavo fosse un problema di corrente, e appunto ho inserito la resistenza per evitare possibili danneggiamenti.

Ho visto il prontuario ( che avevo già stampato :slight_smile: )!!
Io ho uno starter kit base:

e ho a disposizione solo transistor BC337. Studiando il datasheet potrebbe andare bene?
Nel prontuario parla della possibilità di usare i pin con PWM...in questo modo potrei gestire la corrente di base e quindi anche la velocità di rotazione della ventola?
Mi mancherebbe in pratica il capacitore e il diodo di ricircolo ( posso usare un comune led? ).

Il progetto sarebbe quello banale di attivare la ventola in base ai dati letti dal sensore di temperatura.

GRAZIE GRAZIE GRAZIE per l'aiuto!

ah P.S. la ventola ha solo due fili, quindi a velocità fissa

collegando il + della ventola al +V di Arduino ed il - a massa attraverso il transistor, puoi pilotare il transistor con un pin per accendere e spegnere la ventola (metti una resistenza da 1K fra il pin e la base del transistor) ... se devi ridurre la velocita', puoi usare il PWM per pilotare il transistor (mettendo un condensatore in parallelo alla ventolina va anche meglio), oppure usare uno o due diodi per ridurre la tensione sulla ventola (ogni diodo toglie circa 0,75V)

Frandroido:
...
e ho a disposizione solo transistor BC337. Studiando il datasheet potrebbe andare bene?

Mah ... se effettivamente la massima corrente di quelle ventoline è di 150 mA ... dato che lo fai lavorare in saturazione (o ON o OFF) ... dovrebbe andare ... :wink:

Frandroido:
Nel prontuario parla della possibilità di usare i pin con PWM...in questo modo potrei gestire la corrente di base e quindi anche la velocità di rotazione della ventola?

NI ... ovvero, NO, non gestisci la corrente di base, ma SI regoli la velocità ... XD
La regolazione della velocità in PWM non avviene con la regolazione della corrente di base, ma con una tecnica di ON/OFF molto veloce ... guarda QUESTO tutorial per capire come funziona :wink:

Frandroido:
Mi mancherebbe in pratica il capacitore e il diodo di ricircolo ( posso usare un comune led? ).

Quelli devi procurateli e ... no, non usare un LED, ti serve un vero diodo. Va benone quello indicato, 1N4007, costa pochissimo ed è piuttosto robusto :slight_smile:

Guglielmo

Etemenanki:
collegando il + della ventola al +V di Arduino ed il - a massa attraverso il transistor, puoi pilotare il transistor con un pin per accendere e spegnere la ventola (metti una resistenza da 1K fra il pin e la base del transistor) ... se devi ridurre la velocita', puoi usare il PWM per pilotare il transistor (mettendo un condensatore in parallelo alla ventolina va anche meglio), oppure usare uno o due diodi per ridurre la tensione sulla ventola (ogni diodo toglie circa 0,75V)

il +V di Arduino sarebbe il pin a 5V?
Secondo il prontuario c'è una resistenza di 100ohm sulla base e una di 100K tra base e emettitore. Come mai mi consigli 1K tra pin e base del transistor?
L'utilità del condensatore quale sarebbe? stabilizzare il flusso di corrente all'interno della ventola?

gpb01:
NI ... ovvero, NO, non gestisci la corrente di base, ma SI regoli la velocità ... XD
La regolazione della velocità in PWM non avviene con la regolazione della corrente di base, ma con una tecnica di ON/OFF molto veloce ... guarda QUESTO tutorial per capire come funziona :wink:

Hai perfettamente ragione, ho studiato il PWM teoricamente ma non l'ho mai applicato praticamente. E' impressionante l'abisso presente tra teorica e pratica.
Se il PWM lavora in tensione e la regolazione della base avviene in corrente come ottengo la variazione di velocità?

Datemi solo gli input e prometto che studierò come un matto per approfondire!
E comunque grazie ancora!

1K e' piu che sufficente, e carica il pin di uscita con soli 5mA, mentre 100 ohm succhierebbero circa 50mA (e la massima corrente che un pin puo erogare e' di 20mA, e comunque e' sempre meglio non superare i 10) ... la 100K fra base e massa la puoi lasciare, fa da "sicura" ed evita che il transistor vada in conduzione a causa di possibili disturbi se la connessione di base si apre :wink:

Il condensatore non e' indispensabile, livella un po il valore della tensione media, se c'e' in genere funziona un po meglio, ma dipende dalla ventola ... basta uno basso, 1uF o simile.

Frandroido:
Se il PWM lavora in tensione e la regolazione della base avviene in corrente come ottengo la variazione di velocità?

Ma ... hai guardato il tutorial che ti ho linkato ??? :astonished: :astonished: :astonished: Perché è piuttosto chiaro ...

Guglielmo

Etemenanki:
1K e' piu che sufficente, e carica il pin di uscita con soli 5mA, mentre 100 ohm succhierebbero circa 50mA (e la massima corrente che un pin puo erogare e' di 20mA, e comunque e' sempre meglio non superare i 10) ... la 100K fra base e massa la puoi lasciare, fa da "sicura" ed evita che il transistor vada in conduzione a causa di possibili disturbi se la connessione di base si apre :wink:

Il condensatore non e' indispensabile, livella un po il valore della tensione media, se c'e' in genere funziona un po meglio, ma dipende dalla ventola ... basta uno basso, 1uF o simile.

GRAZIE!!!

gpb01:

Frandroido:
Se il PWM lavora in tensione e la regolazione della base avviene in corrente come ottengo la variazione di velocità?

Ma ... hai guardato il tutorial che ti ho linkato ??? :astonished: :astonished: :astonished: Perché è piuttosto chiaro ...

Guglielmo

Scusami. Magari riformulo la domanda. Per quel che sò le curve di tensione e corrente non sono uguali tra loro. Allora la mia curiosità era quella di sapere l'andamento della corrente sulla base in funzione dell'oscillazione di tensione data dal PWM. Magari approfondisco da solo! Pardon :slight_smile:

Il PWM cambia il duty-cycle (rapporto fra il tempo "high" e quello "low" dello stato del pin, non la frequenza), e questo causa un cambiamento nella tensione MEDIA all'uscita ... dato che la corrente dipende dalla tensione, se la tensione media si riduce e la resistenza del circuito rimane la stessa, anche la corrente media si riduce ... :wink:

Ok!!! adesso approfondisco, provo e vi faccio sapere :slight_smile: tanto lo so che verranno fuori altri dubbi

Etemenanki:
Il PWM cambia il duty-cycle (rapporto fra il tempo "high" e quello "low" dello stato del pin, non la frequenza), e questo causa un cambiamento nella tensione MEDIA all'uscita ... dato che la corrente dipende dalla tensione, se la tensione media si riduce e la resistenza del circuito rimane la stessa, anche la corrente media si riduce ... :wink:

Sono tornato all'attacco.

prima di tutto ti chiedo: questo datasheet va bene? Diotec Elektronische 128288, DS datasheet pdf
Per lo stesso transistor ho trovato datasheet differenti, contenenti piu o meno informazioni, ma con valori similari quindi sono un po confuso.

Ho ripreso un po la teoria degli NPN e ho provato a fare i calcoletti.

Se la corrente di collettore dovrebbe essere circa 150mA e hFe ( o beta ) è 250 da datasheet, ottengo una corrente di base di saturazione pari a 0,6 mA secondo la formula Ib=Ic/hFe.

Poi consideranto la Vb = 5Volt e la Vbe = 0,7Volt cerco di calcolare la resistenza di base per avere la corrente Ib = 0.6mA e ottengo un valore di 7Kohm!! O.o dove sbaglio?

Stai facendo molti calcoli inutili ...
... NON ti serve far lavorare il transistor in zona lineare, ti serve farlo lavorare in saturazione ... ON oppure del tutto interdetto OFF !

In PWM non ci sono valori intermedi ... come ti è stato spiegato NON stai pilotando le ventole variando la corrente con il transistor, ma semplicemente inviando treni di impulsi ON-OFF di ampiezza differente ...

... in pratica è come se tu fossi in grado di attaccare e staccare il filo di alimentazione centinaia di volte al secondo, decidendo ogni volta quanti millisecondi lasciarlo collegato e quanti no :wink:

Usa il resistore che ti ha consigliato Etem !

Guglielmo

Ho un altra domandina inerente...spero di non andare OT.

Dopo aver fatto funzionare la ventola tramite transistor e in PWM, ho collegato un ricevitore IR che mi permetta di variare la velocità della ventola a distanza.

Scrivendo lo sketch, e collegando la ventola ( tramite transistor ) al pin11 e il sensore-ir al pin5 quando vado a fare lo switch case
funziona solo il tasto nove ( cioè HIGH ) e il tasto 0 ( cioè LOW ) quasi come se non fosse possibile il PWM sul pin11 ( in altri sketch funziona ).

switch(hash) {
    
    
    case 2340753640: // 9
      
      Serial.println("Tasto 9");
      //analogWrite(FanPin, Vfan[9] );   ????????????????
      analogWrite(FanPin,255);
      blink();
      break;
      
    case 1747313982: // 8
      
      Serial.println("Tasto 8");
      analogWrite(FanPin,229);
      blink();
      break;

...etc

invertendo i pin invece funziona perfettamente. Non ho trovato risposta a questa cosa. Mi sapreste aiutare?

In più per approfondire, una volta fatto funzionare il tutto, nel tentativo di cambiare la frequenza del PWM sul pin 5 ho usato il codice sotto ( trovato nella sezione internazionale ) che porta la freq a circa 61Hz.

 TCCR0B = TCCR0B & 0b11111000 | 0x05;

Sicuramente la ventola funziona a queste freq perchè ho fatto le prove tramite altri sketch, ma adesso il sensore ir non funziona più adeguatamente. Come mai? Teoricamente il codice dovrebbe modificare solo la frequenza sul pin5 e pin6.