Auteur Sujet: Upgrade d'un rhéobus DC vers PWM avec un Arduino  (Lu 11987 fois)

Hors ligne Flop

  • Global Moderator
  • OCT Master
  • *****
  • Auteur du sujet
  • Messages: 1925
    • CPU: i7-4930K
    • CG: SLI - Asus Gtx980 ti Strix
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #20 le: samedi 28 mars 2015 à 00:00 »
Work in progress :



Asus RIVBE - 4930K@4.375Ghz-1.376V H24 - 32Go G.Skill 2666
- CPU + PCH : rad de 360*60 + mcp35x
- SLI : rad de 480*60 + mcp35x
- CaseLabs STH10

Mes tests un peu barrés : http://www.octeam.fr/forum/index.php?topic=4679.msg87482#msg87482
Watercooling à -10°C avec de l'eau, du sel, c'est le test Nr 9 !!!

Rhéobus PWM Home Made : http://www.octeam.fr/forum/index.php?topic=4785.0



Hors ligne chrisnvdia

  • Global Moderator
  • OCT Master
  • *****
  • Messages: 1286
    • CPU: i5 2500K
    • CG: HD 6850
    • sos pc .org
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #21 le: samedi 28 mars 2015 à 09:04 »
Vache elle est balaise ta tour  8)


C'est quoi la carte qui est debout en bas à gauche ?

Hors ligne Flop

  • Global Moderator
  • OCT Master
  • *****
  • Auteur du sujet
  • Messages: 1925
    • CPU: i7-4930K
    • CG: SLI - Asus Gtx980 ti Strix
Re : Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #22 le: samedi 28 mars 2015 à 09:36 »
Vache elle est balaise ta tour  8)


C'est quoi la carte qui est debout en bas à gauche ?

Ouais c'est un monstre !
C'est celle là (mais en blanc )

La carte debout c'est l'OC Panel de asus, ça t'affiche les températures, vitesses et tu peux changer le BCLK et autre paramètres directement dessus sans avoir à installer de logiciel.
Asus RIVBE - 4930K@4.375Ghz-1.376V H24 - 32Go G.Skill 2666
- CPU + PCH : rad de 360*60 + mcp35x
- SLI : rad de 480*60 + mcp35x
- CaseLabs STH10

Mes tests un peu barrés : http://www.octeam.fr/forum/index.php?topic=4679.msg87482#msg87482
Watercooling à -10°C avec de l'eau, du sel, c'est le test Nr 9 !!!

Rhéobus PWM Home Made : http://www.octeam.fr/forum/index.php?topic=4785.0



Hors ligne chrisnvdia

  • Global Moderator
  • OCT Master
  • *****
  • Messages: 1286
    • CPU: i5 2500K
    • CG: HD 6850
    • sos pc .org
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #23 le: samedi 28 mars 2015 à 12:10 »
Elle est superbe mais trop grand pour moi  ;D

Par contre l'OC Panel d' Asus sa c'est cool mais sa va uniquement sur les cartes Asus je pense

ou peut être sur les Asrock aussi vue que Asus et Asrock c'est la même boite

Hors ligne Furax

  • Global Moderator
  • OCT Master
  • *****
  • Messages: 9846
    • CPU: I7 5930k / I7-920 DO / I7-4700MQ
    • CG: ASUS GTX 1080 TI Poseidon / MSI GTX 580 / GTX 970M
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #24 le: samedi 28 mars 2015 à 12:12 »
Ce boitier serrait parfait pour accroché mon photon :D

j'en ai un d'oc panel mais honnêtement je l'utilise pas. Il est racké en baie et je ne le regarde jamais. 
Asus Rampage V Extreme
I7-5960X Roxor
G-Skill 4*8GO 3200Mhz CL14
Samsung 960 EVO NvMe 250Go

SSD samsung 850 EVO 500Go
SSD Sandisk UltraDisk 128Go
Asus GTX 1080 TI Poseidon
Alimentation : Seasonic p-860
Thermaltake Core P5

P4G MSI GT-70 2OC I7-4700MQ gtx 970M

Hors ligne chrisnvdia

  • Global Moderator
  • OCT Master
  • *****
  • Messages: 1286
    • CPU: i5 2500K
    • CG: HD 6850
    • sos pc .org
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #25 le: samedi 28 mars 2015 à 12:31 »
C'est clair quand c'est racké c'est un peut chiant faut se pencher ou bien mettre la tour sur le bureau  ;D

Sur ma 2ème tour qui était une Advance 850B j'avais le panel avec les T° , l'heure et la vitesse des ventilos

Jamais je m'en suis servis , si juste au débout pour la date et l'heure c'est tout.

D'ailleurs cette tour je l'ai vendu le Weekend dernier à 30€ le mec pense avoir fait une bonne affaire car il a vue à + de 200€  :haha:

Si j'avais sue je l'aurais vendu plus chère  :-[

Qui à déjà vue une tour advance à plus de 200€  :read2:

Hors ligne Flop

  • Global Moderator
  • OCT Master
  • *****
  • Auteur du sujet
  • Messages: 1925
    • CPU: i7-4930K
    • CG: SLI - Asus Gtx980 ti Strix
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #26 le: lundi 30 mars 2015 à 11:20 »
Bon le travail "manuel" est terminé, je fais un premier compte rendu :

Objectif de l'upgrade :

Transformer un rhéobus classique en un rhéobus PWM 4 fils sans faire de modification qui annulerait la garantie.

Rhéobus utilisé :

Bitfenix Recon Blanc 5 voies 10W, contrôlable manuellement par écran tactile et par internet en USB.



Principe d'un rhéobus classique :

Un rhéobus classique fait varier la vitesse du ventilateur en faisant varier la tension appliqué de 0 à 12V.
Les inconvénients sont nombreux et ce système à pour seul intérêt de n'être pas cher !

a) Les ventilateurs peuvent s’arrêter si la tension envoyé = 0
b) La vitesse des ventilateurs n'est pas stable, ce qui provoque du bruits
c) Le réglage de vitesse n'est pas précis et il est impossible de faire touner les ventilateurs au minimum, le risque est trop grand qu'il s’éteigne !! !!
d) le rhéobus alimente les ventilateurs et est limité en puissance. Dans mon cas 10W ce qui rend impossible la régulation de rad de 480 en push/pull.

Exemple de calcul de consommation :
Mes ventilateurs de 120mm consomment 0.13A sous 12V => 0.13*12=1.56W
Pour un Push/pull d'un rad 480, ça fait 8 ventilateurs -> 1.56*8 = 12.48W => Rhéobus qui crame

Principe d'un ventilateur PWM 4 fils

Mes ventilateurs sont des ventilateurs PWM 4 fils.
Ça veut dire qu'ils sont alimentés en permanence en 12V.
Le fil supplémentaire sert à indiquer au ventilateurs la vitesse à laquelle il doit tourner en appliquant un signal PWM sur la broche 4.
Ce type de ventilateurs est utilisé pour les ventilateurs processeurs usine d'intel par exemple.

Avantage :

a) La norme impose que même pour un signal PWM minimal, le ventilateur ne doit pas s’arrêter, don con peut faire tourner au VRAI minimum de vitesse sans risque.
b) Les ventilateurs peuvent être reliés directement à l'alimentation, il n'y a pas de limitation du à la puissance d'un rhéobus.
c) Le réglage de vitesse est très stable donc les ventilateurs sont peu bruyants
d) Le réglage de vitesse est très précis.

Inconvénients :

a) Il existe très peu de rhéobus compatible
b) la majorité des cartes mères n'ont qu'une seule sortie PWM pour le ventilateur processeur qui est limité en courant puisque branché sur la carte mère.
c) Certainement l'argument négatif le plus important : Le PRIX !! Par exemple 15€ le ventilateur classique de 120mm de marque AKASA.

Principe de la modification :

Ma modification va consister à me brancher sur les sorties ventilateur du rhéobus, je vais lire la valeur de la tension que le rhéobus envoie à la sortie ( de 0V à 12V ).
Je saurais donc quelle vitesse le rhéobus souhaite.
Par exemple si il envoi 6 volts au lieu de 12 volts , c'est qu'il veut faire tourner le ventilateur à la moitié de la vitesse maximum.
Je génère donc un signal PWM conformément à la vitesse souhaité et je l'envoi sur le fil PWM du ventilateur pour qu'il tourne à la vitesse demandée.
Le fil de lecture de la vitesse ( 3ème fils des ventilateurs ) sera relié normalement au rhéobus qui lira la vitesse actuelle du ventilateur directement sans se rendre compte que ce n'est plus vraiment lui qui indique la vitesse.
Pas si compliqué dit comme ça  ;)
« Modifié: lundi 30 mars 2015 à 14:23 par Flop »
Asus RIVBE - 4930K@4.375Ghz-1.376V H24 - 32Go G.Skill 2666
- CPU + PCH : rad de 360*60 + mcp35x
- SLI : rad de 480*60 + mcp35x
- CaseLabs STH10

Mes tests un peu barrés : http://www.octeam.fr/forum/index.php?topic=4679.msg87482#msg87482
Watercooling à -10°C avec de l'eau, du sel, c'est le test Nr 9 !!!

Rhéobus PWM Home Made : http://www.octeam.fr/forum/index.php?topic=4785.0



Hors ligne Flop

  • Global Moderator
  • OCT Master
  • *****
  • Auteur du sujet
  • Messages: 1925
    • CPU: i7-4930K
    • CG: SLI - Asus Gtx980 ti Strix
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #27 le: lundi 30 mars 2015 à 11:21 »
Partie réalisation :

Pour arriver à faire ce "traducteur" de tension variable vers signal PWM je vais utiliser un arduino.

Il possède des entrées analogiques qui sont donc capable de lire une tension entre 0 et 5V.
Il possède des sorties digitales qui sont capable de générer un signal PWM.

Et donc premier problème à résoudre :

Mon rhéobus génère une tension entre 0V et 12V et mon arduino ne sait lire que jusqu’à 5V !
Je vais utiliser le principe du pont diviseur de tension avec des résistances méga connu en électronique :



Vsortie = (R1/(R1+R2)) x Ventrée

La tension d'entrée est divisé par un nombre qui dépens des valeurs de R1 et R2.
J'ai pris R1=15k ohms et R2=10k Ohms. -> R1/(R1+R2) = 10/(10+15) = 0.4
On obtient :

Vsortie = 0.4 x Ventrée.

Si on prend Ventrée-max = 12V, on obtient Vsortie-max=0.4*12=4.8V ce qui est dans la plage compatible avec les entrées de l'Arduino.

En Ventrée ce sera la sortie ventilateur du rhéobus qui varie de 0 à 12Volts.
En Vsortie ce sera mon arduino qui lira une conversion de 0 à 5Volts.

Réalisation cablage :

Les cables fournis avec le rhéobus sont démontable, il suffit d'appuyer sur un languette pour pouvoir sortir le fil du connecteur





Je les ai donc démonté et j'ai modifié les connecteurs grâce à du matériel que je possède déjà.
J'ai des connecteurs 4 fils blanc que vous pouvez voir sur la photo et les parties métalliques que l'on insère dans les connecteurs
Vous pouvez aussi couper et souder les fils , mais dans ce cas, plus de garantie !

Les connecteurs qui se branchent sur le rhéobus sont maintenant prêt à être branché sur une plaque électronique.
J'ai modifié les câbles qui se branchent sur les ventilateurs en ajoutant un fils supplémentaire, puis j'ai ajouté de la gaine tressés et de la gaine thermo rétractable pour avoir de beau câble.



Pour alimenter l'arduino en 5V et les ventilateurs en 12V sans avoir à me brancher sur le rhéobus, j'ai prévu une alimentation entièrement séparée.
J'ai utilisé un doubleur de connecteur molex et des fils récupérés sur une vielle alimentation. J'ai aussi gainé le tout pour faire propre.



J'ai branché tout ça sur une plaque réalisée par mes soins sur laquelle j'ai mis des connecteurs 4 pins pour les ventilateurs.
En haut ce sont les 5 connecteurs d'origine qu'on branche sur les 5 sorties du rhéobus ( avant elles servaient à relier directement les ventilateurs )
En bas il y a les 5 connecteurs 4 fils pour les ventilateurs.
A droite le câble d'alimentation qui fournira 5 Volts à L'arduino et 12V aux ventilateurs. ( cable capable de supporter plusieurs ampères donc un nombre élevés de ventilateurs. )





Il reste maintenant à ajouter l'arduino traducteur !!  ;)










« Modifié: lundi 30 mars 2015 à 14:25 par Flop »
Asus RIVBE - 4930K@4.375Ghz-1.376V H24 - 32Go G.Skill 2666
- CPU + PCH : rad de 360*60 + mcp35x
- SLI : rad de 480*60 + mcp35x
- CaseLabs STH10

Mes tests un peu barrés : http://www.octeam.fr/forum/index.php?topic=4679.msg87482#msg87482
Watercooling à -10°C avec de l'eau, du sel, c'est le test Nr 9 !!!

Rhéobus PWM Home Made : http://www.octeam.fr/forum/index.php?topic=4785.0



Hors ligne Flop

  • Global Moderator
  • OCT Master
  • *****
  • Auteur du sujet
  • Messages: 1925
    • CPU: i7-4930K
    • CG: SLI - Asus Gtx980 ti Strix
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #28 le: lundi 30 mars 2015 à 11:21 »
Ajout de l'arduino :

J'ai pris un Arduino Pro Mini, l'avantage étant qu'il est extrêmement petit et pas cher !
J'en ai trouvé à 3€ sur ebay.

Une fois les fils soudé, ça donne ça :



Et le tout branché sur le rhéobus qui est resté intact :



L'imprévu : ( je prévois toujours un imprévu ! )

J'ai réalisé une première version du programme arduino qui fonctionne très bien mais le rhéobus Bitfenix à un défaut que je trouve vraiment très ennuyeux !!
Au démarrage et pendant au moins 30 secondes il fait tourner tous les ventilateurs à fond pour les tester.
Si comme moi, vous avez 15 ventilateurs, je peux vous dire que même les voisins savent quand vous allumez votre PC. >:(

J'ai donc modifié le programme et utilisé des sorties disponibles de l'arduino pour simuler des ventilateurs.

Le principe est simple :
Au démarrage du rhéobus, l'arduino crée un signal imitant un signal RPM à 2000 tours par minute d'un ventilateur.
Le rhéobus croit donc que les ventilateurs tournent à fond alors qu'en fait l'arduino les fait déjà tourner à faible vitesse.
Ensuite l'arduino attend que le rhéobus soit entièrement démarré et alors il arrête la simulation et laisse le vrai signal RPM des ventilateurs arriver au rhéobus qui peut alors gérer normalement la vitesse.

Et donc voici la dernière version du sketch arduino :
ATTENTION : programme exemple, le vrai programme beaucoup plus long est en pièce jointe ( bitfenix2.zip )!

////////////////////////// début programme Arduino


int VOIE1_DC = A4;
int VOIE1_PWM = 10;
int VOIE1_RPM = 12;

int VOIE2_DC = A0;
int VOIE2_PWM = 9;
int VOIE2_RPM = 8;

int VOIE3_DC = A1;
int VOIE3_PWM = 6;
int VOIE3_RPM = 7;

int VOIE4_DC = A2;
int VOIE4_PWM = 5;
int VOIE4_RPM = 4;

int VOIE5_DC = A3;
int VOIE5_PWM = 3;
int VOIE5_RPM = 2;

// variable
float somme=0;
long start=0;
int consigne=0;
void setup() {  // iniatilisation des parametres et démarrage du "traducteur"
  Serial.begin(115200);
  Serial.print("Départ");
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,INPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(A4,INPUT);
  pinMode(A0,INPUT);
  pinMode(A1,INPUT);
  pinMode(A2,INPUT);
  pinMode(A3,INPUT);


  start=millis();
 
 
  //Tous les ventilateurs au minimum de vitesse
  analogWrite(VOIE1_PWM, 0);
  analogWrite(VOIE2_PWM, 0);
  analogWrite(VOIE3_PWM, 0);
  analogWrite(VOIE4_PWM, 0);
  analogWrite(VOIE5_PWM, 0);
 
  delay(2000);    // attente pour être sur que le rhéobus est pret
 
  // Partie servant à ne pas avoir les ventilateurs qui tournent à fond pendant 30 secondes au démarrage du rhéobus
  // On lui fait croire que les ventilateurs tournent à fond mais ce n'est pas le cas
 
  while (analogRead(VOIE1_DC)>1000){  // on attend que le rhéobus ait fini son initialisation
       digitalWrite(VOIE1_RPM, LOW);
       digitalWrite(VOIE2_RPM, LOW);    // simulation ventilateur qui tourne
       digitalWrite(VOIE3_RPM, LOW);
       digitalWrite(VOIE4_RPM, LOW);
       digitalWrite(VOIE5_RPM, LOW);
       delay(9);             
       digitalWrite(VOIE1_RPM, HIGH);
       digitalWrite(VOIE2_RPM, HIGH);
       digitalWrite(VOIE3_RPM, HIGH);
       digitalWrite(VOIE4_RPM, HIGH);
       digitalWrite(VOIE5_RPM, HIGH);             
       delay(9);
       }
  // le rhéobus à fini de s'initialiser car il cherche à baisser la vitesse de la voie 1 
  // donc on met toutes les sorties servant à simuler des ventilateurs en entrée pour les inhiber.     
  pinMode(VOIE1_RPM,INPUT);
  pinMode(VOIE2_RPM,INPUT);
  pinMode(VOIE3_RPM,INPUT);
  pinMode(VOIE4_RPM,INPUT);
  pinMode(VOIE5_RPM,INPUT);
  Serial.println("Fin attente");
}




void loop() {  // boucle de fonctionnement du "traducteur"
 
  somme=0;
  for (int i=0;i<10;i++)
    somme+=analogRead(VOIE1_DC);
  somme=12.5*(somme/10)/1024.0;
  consigne=255*somme/12;
 if (consigne>254) consigne=254;

  analogWrite(VOIE1_PWM, consigne);   
 
if  ( (millis()-start)>500){
  start=millis();
  Serial.print("Voltage : ");
  Serial.print(somme);
  Serial.print("Consigne : ");
  Serial.println(consigne);
 // Serial.print(" RPM : ");
//  somme=pulseIn(12,HIGH);
//  Serial.println(15*1000000/somme);
  }

}

////////////////////////// FIN programme Arduino


Et voilà !
J'ai maintenant un rhéobus blanc, tactile, 5 voies, PWM, contrôlable par internet, qui n'est pas limité en courant et me permettant de gérer mes 5 séries de ventilateurs ( 15 ventilateurs en tout ).

Il me reste à monter ça dans ma tour.  ;D


« Modifié: lundi 30 mars 2015 à 14:18 par Flop »
Asus RIVBE - 4930K@4.375Ghz-1.376V H24 - 32Go G.Skill 2666
- CPU + PCH : rad de 360*60 + mcp35x
- SLI : rad de 480*60 + mcp35x
- CaseLabs STH10

Mes tests un peu barrés : http://www.octeam.fr/forum/index.php?topic=4679.msg87482#msg87482
Watercooling à -10°C avec de l'eau, du sel, c'est le test Nr 9 !!!

Rhéobus PWM Home Made : http://www.octeam.fr/forum/index.php?topic=4785.0



Hors ligne TriSk3L

  • Administrateur
  • OCT Master
  • *****
  • Messages: 10860
  • Bencheur 3D
    • CPU: i7 5960x @ 4.5ghz H24
    • CG: Asus GTX 980 Ti Strix
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #29 le: mardi 31 mars 2015 à 12:32 »
Encore du chinois pour moi mais je dis respect, c'est juste super. Pour ceux qui touchent un peu en electronique, ça va les intéresser et c'est MADE IN OCTEAM!  8)

Et hop, épinglé!  :)
i7 5960x @ 4.5ghz H24 :aikido:
Asus X99-Deluxe
G.skill Ripjaws 4 - 2666mhz Cas 15

Asus GTX 980 Ti Strix


http://www.octeam.fr/forum/index.php?topic=4753.msg90091#msg90091

Hors ligne Flop

  • Global Moderator
  • OCT Master
  • *****
  • Auteur du sujet
  • Messages: 1925
    • CPU: i7-4930K
    • CG: SLI - Asus Gtx980 ti Strix
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #30 le: mardi 31 mars 2015 à 13:31 »
Et oui c'est une exclu  ;D

Mais faut pas être si calé que ça.

Et puis si vraiment ça intéresse quelqu'un je peux très bien envoyer un kit avec la plaque faite, les composants soudés et la connectique qu'il faut pour modifier les câbles.
Je ferai un prix pas déconnant  ;)

Asus RIVBE - 4930K@4.375Ghz-1.376V H24 - 32Go G.Skill 2666
- CPU + PCH : rad de 360*60 + mcp35x
- SLI : rad de 480*60 + mcp35x
- CaseLabs STH10

Mes tests un peu barrés : http://www.octeam.fr/forum/index.php?topic=4679.msg87482#msg87482
Watercooling à -10°C avec de l'eau, du sel, c'est le test Nr 9 !!!

Rhéobus PWM Home Made : http://www.octeam.fr/forum/index.php?topic=4785.0



Hors ligne TriSk3L

  • Administrateur
  • OCT Master
  • *****
  • Messages: 10860
  • Bencheur 3D
    • CPU: i7 5960x @ 4.5ghz H24
    • CG: Asus GTX 980 Ti Strix
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #31 le: mardi 31 mars 2015 à 13:56 »
Ben honnêtement, si tu réfléchis bien, tu peux y gagner à faire ça.
i7 5960x @ 4.5ghz H24 :aikido:
Asus X99-Deluxe
G.skill Ripjaws 4 - 2666mhz Cas 15

Asus GTX 980 Ti Strix


http://www.octeam.fr/forum/index.php?topic=4753.msg90091#msg90091

Hors ligne Furax

  • Global Moderator
  • OCT Master
  • *****
  • Messages: 9846
    • CPU: I7 5930k / I7-920 DO / I7-4700MQ
    • CG: ASUS GTX 1080 TI Poseidon / MSI GTX 580 / GTX 970M
Re : Upgrade d'un rhéobus DC vers PWM avec un Arduino
« Réponse #32 le: mercredi 01 avril 2015 à 11:41 »
Bien joué  :)
Asus Rampage V Extreme
I7-5960X Roxor
G-Skill 4*8GO 3200Mhz CL14
Samsung 960 EVO NvMe 250Go

SSD samsung 850 EVO 500Go
SSD Sandisk UltraDisk 128Go
Asus GTX 1080 TI Poseidon
Alimentation : Seasonic p-860
Thermaltake Core P5

P4G MSI GT-70 2OC I7-4700MQ gtx 970M