Go Down

Topic: Gestion de ventilateur avec PWM (Read 1 time) previous topic - next topic

Ayawa

Jan 06, 2013, 01:19 pm Last Edit: Jan 06, 2013, 01:22 pm by Ayawa Reason: 1
Salut,

Je débute en électronique, un peu moins en programmation.
Je cherche à réaliser un montage qui intègre un sonde de température, et un gestion de la ventilation en fonction de la température.
Pour le moment, je cherche juste à gérer les ventilateurs.
J'utilise des ventilateurs Arctic colling, avec pwm intégré (http://www.hardware.fr/articles/867-5/arctic-cooling-f12-f12-pro-pwm-test.html)
Je voudrais les brancher sur le 12V d'une alim de pc, et non pas les alimenter en 5V via la arduino. (L'arduino est également alimenté par l'alim de pc)
Voila mon schéma de montage et le code: Je suis ouvert à tous commentaires concernant l'ajout de resistance, diode ou autre transistor.
j'y connais rien, et ne comprend pas à quoi cela sert, ni comment on les utilises...
(http://www.imageshare.web.id/images/lb5zvywree2gzcpzkbaz.png; Schema)

Code: [Select]

int pwm[] = {9,10,11};

void setup(){
 for(int i = 0; i < 3;i++)
   pinMode(pwm[i], OUTPUT);

 Serial.begin(9600);
}

void loop(){
 
 
 analogWrite(pwm[0],0);
 analogWrite(pwm[1],0);
 delay(10000);

//*/

 analogWrite(pwm[0],200);
 analogWrite(pwm[1],200);
 delay(10000);

}


Voila, cela fonctionne presque ^^ Cependant même après un analogWrite(x,0), les ventilateurs tournent toujours (moins vite mais ils tournent).

J'avais essayer une autre méthode en codant avec les TCCR, OCRB etc... mais ce marche pas mieux ^^

Merci ;)

B@tto

Rapport avec "Réalisations et projets finis" ?
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

barbudor

Apparemment ça serait normal
D'autre se sont frotté au même problème et ont rajouté un transistor pour couper la chique au ventilo.

http://ukreefs.com/index.php?PHPSESSID=llbcauus5m89knnnemi1t8fe61&topic=605.msg4835#msg4835
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Ayawa

#3
Jan 06, 2013, 05:22 pm Last Edit: Jan 06, 2013, 05:53 pm by Ayawa Reason: 1

Rapport avec "Réalisations et projets finis" ?


Heu, aucun (et encore réalisations c'est pas loin), j'avais pas vu que je postais au mauvais endroit.
Si un modo passe par là ;)

Je vais tester avec des transistors, mais concrètement c'est quoi un transistor?
Comment ca marche dans le circuit? (pourquoi 3 "pins"?)

(Je sais que Google peut etre mon ami, mais les vrai personnes sont plus explicites et précises.)

Merci ;)


EDIT:
Ca donnerais un truc comme ca; Les bases des transistors doivent être reliées à quoi? Oo


barbudor

Un transistor en gros est un interrupteur de courant commandé en courant.
Il me semble que dans la section TUTO il y a un cours sur les transistors.
Ici il sert à couper le courant au ventilo quand tu veux l'arrêter  pour de bon.

Il se commande par un broche numérique de l'Arduino VIA une résistance de 1Kohms.

Dans le lien donné ils utilisent un transistor BC549C qui est un transistor petit signaux. C'est à dire qu'il est limité en puissance.
Combien consommes tes ventilo ?

Il existe aussi des transistors MOSFET qui se commande en tension.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Ayawa

#5
Jan 06, 2013, 06:44 pm Last Edit: Jan 06, 2013, 06:47 pm by Ayawa Reason: 1
Ok, merci :)

Les ventileurs ce sont des Artic Cooling F12 PWM, 12V, 0.15A.
Je vais me aller voir si je trouve le tuto ce soir, (je révise pour les partiels demain pour le moment...)

Je me rend compte que je n'ai pas besoin de gérer le vitesse, mais juste l'allumage ou l'extinction.
Dans ce cas, utiliser juste un transistor par ventilo, avec la base relié un une sortie numérique cela suffirait? (Si ça ce comporte comme un interrupteur, juste un digitalWrite(x,HIGH) ou digitalWrite(x,LOW) suffirait?)

Sinon, si je veux gérer le PWM, j'utilise deux broches de sorties par ventilateurs (une pour le PWM, une pour le transistor?)

Je repasse ce soir ;)

PS. question bonus ^^ ;
A quoi sert l'utilisation d'une diode entre le +12 et GND du ventilateur?
Est-il nécessaire d'ajouter une résistance au montage pour chaque ventilateur? (en générale, les gens utilisent une 10kohm pourquoi?)

B@tto

Un ventilateur c'est un moteur, et un moteur c'est surtout des bobines, donc une charge dite "inductive", à l'inverse d'une charge résistive (une résistance chauffante par exemple). Et donc une charge inductive, lorsqu'on la mets sous tension et qu'on coupe soudainement celle ci, génère de très haute tension qui peuvent flinguer le transi du coup on ajoute une diode dite "de roue libre" qui permet en fait de "boucler" la charge inductive et donc de sauver ton transi ;)
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Ayawa

#7
Jan 06, 2013, 07:00 pm Last Edit: Jan 06, 2013, 07:52 pm by Ayawa Reason: 1
Dac, merci ;)

Voila ducoup nouveau schema:

J'ajouterai les diodes mais la ca rentre pas sur le schema ^^

Pac2Kro

J'y connais pas grand chose, mais dans ton schéma, je dirai que la masse doit être relié à la masse.

Go Up