[Autre] Variation vitesse ventilateur suivant la température via Picaxe
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 54

Variation vitesse ventilateur suivant la température via Picaxe



  1. #1
    targatte

    Variation vitesse ventilateur suivant la température via Picaxe


    ------

    Bonjour à tous,

    j'ai un petit projet, je souhaite faire varier la vitesse de 4 ventilateurs suivant 4 seuils préétablie suivant la température
    je vous met le schéma et le programme Picaxe
    n’étant pas un spécialiste en électronique ni en programmation Picaxe
    pouvez vous y jeter un oeil
    merci d'avance

    Nom : Capture d'écran 2024-01-05 111306.png
Affichages : 369
Taille : 114,3 Ko


    Code:
    #picaxe 18M2
    #no_data
        dirsB=%00000111		;B.0,B.1,B.2, en sorties
        dirsC=%11000111		;C.0, C.1, C.2, C.6, C.7 en sorties
        symbol baud= T2400_4
        serout B.5,baud,(254,1,254,1)
        adcconfig %011
        pause 500
        do
           
            FVRsetup FVR1024        ;LM35 lecture de 0 ? 1,024 v
            w10=0			; met w10 ? 0
            for b1=1 to 5		; boucle de lecture 5 fois
                readadc10 B.3, w13	; affecte la valeur de B.3 ? w13
                w10=w10+w13   		; affecte la valeur de W13 ? W10
            next
            w10=w10/5-20    ;-20 pour calibration
            w12=w10/10
                  
          
    	if w12>20 and w12<40  then	;temperature entre 20? et 40?
    		high C.1			;sortie 25% (3v)
    		 b2=1				;sortie voyant
          endif
          if w12>40 and w12<50 then	;temperature entre 40? et 50?
    		high C.0			;sortie 50% (6v)
    		 b3=1				;sortie voyant
          endif  
      	if w12>50 and w12<60 then	;temperature entre 50? et 60?
    		high C.7			;sortie 75% (9v)
    		 b4=1				;sortie voyant
    	endif
    	if W12>60 then			;temperature superieur ? 60?
    		high C.6			;sortie 100% (12v)
    		 b5=1				;sortie voyant
    	endif
    	if b2=1  then
    		high C.2			;sortie 1 voyant (25%)
    	endif
    	if b3=1 then
    		high C.2, B.0		;sortie 2 voyants (50%)
    	endif
    	if b4=1  then
    		high C.2, B.0, B.1	;sortie 3 voyants (75%)
    	endif	
    	if b5=1 then
    		high C.2, B.0, B.1, B.2	;sortie 4 voyants (100%)
    	endif	 
    	serout B.5,baud,( 254,128,"T = ", #w12,"?","C  ")
        loop

    -----
    Dernière modification par gienas ; 05/01/2024 à 11h26. Motif: Ajouté les balises code, obligatoires pour les programmes

  2. #2
    antek

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Les alimentations fournissent réellement des +V/-V (avec donc des ddp de 2V) ? ou des +V/0V ?
    Si les ventilateurs soufflent dans le même flux il serait plus simple de les mettre en route un par un, plutôt que tous progressivement.
    De toutes façon pas avec des résistances série. Le picaxe n'a pas de fonction pwm ?
    L'électronique c'est comme le violon. Soit on joue juste, soit on joue tzigane . . .

  3. #3
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Bonjour,
    Oui, beaucoup de questions sur ce projet.
    Le but est de faire varier la vitesse de 4 ventilos.
    Ces ventilos seraient alimentés en 3, 6, 9, 12 V en parallèle, je doute que cela fonctionne
    Pourquoi 4 ventilos, je pense qu'ils ne sont pas au même endroit. Quel sont ces ventilos, quelques détails svp. As tu déjà essayé cette configuration?
    Il y a bien une sortie PWM sur B.3 du 18M2.
    Pourquoi un 18M2? Ce picaxe n'est pas mon préféré, Le 20M2 a beaucoup plus de possibilités.
    Quelques précisions sur l'alim, ou est la sortie 0V, quelles sont les véritables tensions de sorties ?
    Avec quoi programmes tu le picaxe? Une sortie DB9 de PC?
    Quelle est l'origine du LCD? un lien svp.
    Une dernière question, connais tu ce site: http://electromag1.wifeo.com/

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  4. #4
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Bonjour,
    En attendant les réponses aux questions précédentes, quelques réflexions sur le code.
    Il s'agit de réguler la vitesse de 4 ventilateurs en fonction de la température mesurée par un LM35.
    Je reconnais bien sûr la méthode de mesure. La correction de 2 °C est à ajuster expérimentalement.
    L'alimentation des ventilateurs à travers un pont de résistance donnant des tensions de 3,6,9,12V n'est pas la meilleure. La charge des ventilos modifiera cet étagement, perte d'énergie, utilisation de relais, etc.
    La méthode la plus efficace est l'utilisation d'un PWM , elle permet une variation continue de la vitesse, avec un NPN ou un mosfet. On peut garder un étagement, mais pourquoi?.
    Concernant l'affichage, le prix des afficheurs OLED est très élevé. On trouve en France des LCD économiques :https://www.gotronic.fr/art-afficheu...1602-26087.htm
    Il faut ajouter un convertisseur série: Le 18M2 peut reprendre du service, voir cette page :http://electromag1.wifeo.com/lcd-serie-18m2.php.
    J'ai testé, ça fonctionne bien. Les 5 petits circuits imprimés coutent moins de 5 euros avec JLCPCB, Les Gerber sont fournis.
    Je vois dans le code : baud T2400_4. Le T était nécessaire avec les adaptateurs "picaxe" kit FRM010", il a disparu, avec l'adaptateur 18M2, il faut "N2400".
    Avec un LCD, on peut afficher la température mesurée, mais aussi le pourcentage de PWM correspondant, et avec une variation continue, les leds ne se justifient plus.
    MM
    Dernière modification par mag1 ; 06/01/2024 à 10h56.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  5. A voir en vidéo sur Futura
  6. #5
    Forhorse

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    +1 pour le PWM, surtout que les 4 ventilateurs doivent être alimenté en même temps.
    D'ailleurs si on s'en tient à l'idée d'origine, les diodes D1 à D4 sont inutiles.

    Pour l'afficheur il existe des LCD 2x16 avec module I2C integré pour a peine plus cher que l'afficheur seul (comparé au prix du LCD + PCB + 18M2...)
    Sinon un OLED 0.96" en i2C ne coute pas beaucoup plus cher (moins de 9 euros sur amazon et même pas 2 euros sur aliexpress)
    Tout projet flou conduit à une connerie précise !

  7. #6
    Forhorse

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Proposition avec un Arduino Nano :
    - Pas besoin d'une double alimentation 12V/5V : le régulateur 5V est embarqué sur l'Arduino
    - Pas besoin de convertisseur USB/série pour la programmation : il est embarqué sur l'Arduino
    - Pas besoin d'une LED "TENSION OK" : elle est embarqué sur l'Arduino (led "power")

    Cout Arduino Nano sur alixepress : environ 2.5€
    Cout display OLED 0.96" 128x64 SSD1306 sur aliexpress environ 2€

    Utilisation d'un pilotage en PWM nécessitant un transistor MOSFET plutôt que de 4 seuils qui demandent 4 résistances de puissance + 4 relais

    Nom : Ventilateur.png
Affichages : 244
Taille : 32,3 Ko

    Q1, D1, C3, R1 et R2 sont à adapter en fonction de la puissance des ventilateurs (tel que présenté là ça doit fonctionner pour un courant de 1 à 2A, au delà il faut certainement affiner)
    Tout projet flou conduit à une connerie précise !

  8. #7
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Citation Envoyé par Forhorse Voir le message
    Proposition avec un Arduino Nano :
    - Pas besoin d'une double alimentation 12V/5V : le régulateur 5V est embarqué sur l'Arduino
    - Pas besoin de convertisseur USB/série pour la programmation : il est embarqué sur l'Arduino
    - Pas besoin d'une LED "TENSION OK" : elle est embarqué sur l'Arduino (led "power")
    Parfait, y a plus qu'à faire le programme.
    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  9. #8
    Forhorse

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Quelque chose du genre devrait fonctionner suivant le même principe que la proposition d'origine
    On peut naturellement améliorer, par exemple en pilotant la vitesses des ventilateurs de façons proportionnelle à la température et non pas par paliers.
    C'est une base de travail on va dire.


    Code:
    #include <Adafruit_SSD1306.h>
    
    #define nombreDePixelsEnLargeur 128         // Taille de l'écran OLED, en pixel, au niveau de sa largeur
    #define nombreDePixelsEnHauteur 64          // Taille de l'écran OLED, en pixel, au niveau de sa hauteur
    #define brocheResetOLED         -1          // Reset de l'OLED partagé avec l'Arduino (d'où la valeur à -1, et non un numéro de pin)
    #define adresseI2CecranOLED     0x3C        // Adresse de "mon" écran OLED sur le bus i2c (généralement égal à 0x3C ou 0x3D)
    
    Adafruit_SSD1306 ecranOLED(nombreDePixelsEnLargeur, nombreDePixelsEnHauteur, &Wire, brocheResetOLED);
    
    const int ledPin = LED_BUILTIN;
    int ledState = LOW;
    unsigned long previousMillis = 0;
    
    
    int TamponADC[8];
    int PointeurADC=0;
    int intRead;
    int intPower = 0;
    
    // ========================
    // Initialisation programme
    // ========================
    void setup() {
      pinMode(ledPin, OUTPUT); //Led integrée
      pinMode(12,OUTPUT); //LED 25%
      pinMode(11,OUTPUT); //LED 50%
      pinMode(10,OUTPUT); //LED 75%
      pinMode(9,OUTPUT); //LED 100%
      pinMode(5,OUTPUT); // sortie PWM
    
      // Initialisation de l'écran OLED
      ecranOLED.begin(SSD1306_SWITCHCAPVCC, adresseI2CecranOLED);
     
      ecranOLED.clearDisplay();                    // Effacement de l'intégralité du buffer
      ecranOLED.setTextSize(3);                   // Taille des caractères 
      ecranOLED.setCursor(10, 20);                // Déplacement du curseur en position (x,y)
      ecranOLED.setTextColor(SSD1306_BLACK, SSD1306_WHITE);   // Couleur du texte, et couleur du fond
      ecranOLED.print("Hello");
      ecranOLED.display();                            // Transfert le buffer à l'écran
      delay(1000);
        
    }
    
    // =================
    // Boucle principale
    // =================
    void loop() {
      TamponADC[PointeurADC] = analogRead(A0);
      PointeurADC++;
      if (PointeurADC > 7){
        PointeurADC = 0;
        intRead = 0;
        for (int i=0;i<8;i++){
          intRead += TamponADC[i];
        }
        intRead /= 8;
      }
      
      //float intTemp = intRead * 500.0 / 1023.0; //pour travail sur flotant avec partie décimale de la temperature
      long intTemp = intRead * 500 / 1023; //pour travail sur entier uniquement (valeur tronquée !)
      
    
      intPower = 0;
      ClearLEDs();
    
      if (intTemp > 20) {
        intPower = 25;
        digitalWrite(12,LOW);
        
      } 
      if (intTemp > 40) {
        intPower = 50;
        digitalWrite(11,LOW);
      }
      if (intTemp > 50) {
        intPower = 75;
        digitalWrite(10,LOW);
      }
      if (intTemp > 60) {
        intPower = 100;
        digitalWrite(9,LOW);
      }
    
      int intPWMout = intPower * 255 / 100;
      analogWrite(5,intPWMout);
    
      // Tempo pour rafraichissement OLED + clignotement LED
      unsigned long currentMillis = millis();
      if (currentMillis - previousMillis >= 700) {
        previousMillis = currentMillis;
        if (ledState == LOW) {
          ledState = HIGH;
        } else {
          ledState = LOW;
        }
        digitalWrite(ledPin, ledState);
       //Affichage des valeurs :
       ecranOLED.clearDisplay();
       ecranOLED.setTextSize(2);
       ecranOLED.setCursor(0, 0);
       ecranOLED.setTextColor(SSD1306_BLACK, SSD1306_WHITE);
       ecranOLED.println("Temp:");
       ecranOLED.setTextColor(SSD1306_WHITE);
       ecranOLED.print(intTemp);
       ecranOLED.print((char)247);
       ecranOLED.println("C");
       ecranOLED.setTextColor(SSD1306_BLACK, SSD1306_WHITE);
       ecranOLED.println("Power:");
       ecranOLED.setTextColor(SSD1306_WHITE);
       ecranOLED.print(intPower);
       ecranOLED.display();
      
      }
    }
    
    void ClearLEDs (){
      digitalWrite(12,HIGH);
      digitalWrite(11,HIGH);
      digitalWrite(10,HIGH);
      digitalWrite(9,HIGH);
    }
    Tout projet flou conduit à une connerie précise !

  10. #9
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Version picaxe, avec un PWM sur B.3, seule broche supportant cette fonction:
    Code:
    #picaxe 18M2
    #no_data
    	symbol baud= N2400_4	
    	symbol cpt=b1
    	symbol temp=w13
    	symbol lec=w12
    	symbol cumul=w11
    	symbol duty=w10
    	symbol delta=w9
    	symbol afduty=w8
    	dirsB=%00000111		;B.0,B.1,B.2, en sorties
    	dirsC=%11000111		;C.0, C.1, C.2, C.6, C.7 en sortie
    	serout B.5,baud,(254,1) ;raz LCD
    	adcconfig %011
    	pwmout B.3, 250, 1000	;pwm 4000Hz 100% 	;valeur duty : 20°=>250 et 60°C=>1000 
    	pause 500	;initialisation LCD
    	do       
    		FVRsetup FVR1024        ;LM35 lecture de 0 à 1,024 v
    		cumul=0		; met w10 à 0
    		for cpt=1 to 5		; boucle de lecture 5 fois
    		   readadc10 B.3,lec	; affecte la valeur de B.3 à lec
    		   cumul=cumul+lec   		; cumul des 5 lectures
    		next
    		cumul=cumul/5		;-20    ;-20 pour calibration, a confirmer
    		temp=cumul/10		;températue en °C	
    		temp=40		;pour simulation 40°C
    		if temp<20 then
    		  duty=250
    		elseif temp>60 then
    		  duty=1000
    		else
    			delta=temp-20
    			duty=75*delta/4+250			
    		  pwmduty B.3 ,duty
    		endif
    		afduty=duty/10
    		serout B.5,baud,(254,128,"Temp = ", #temp," ßC  "); ß (ALT+0223)=> ° non simulé
    		serout B.5,baud,(254,192,"PWM  = ",#afduty," %  ")
    		pause 1000
    loop
    Nom : ventilo.JPG
Affichages : 245
Taille : 93,7 Ko

    targatte pourra choisir....si il revient.
    MM
    Dernière modification par mag1 ; 06/01/2024 à 21h23.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  11. #10
    targatte

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Bonjour a tous,

    merci pour tous ces retour, je vais essayer de répondre au question
    l'alimentation fait bien 0v/12v et 0v/5v
    le 18M2 simplement parce que je l'ai sous la main
    l'afficheur OLED n'est la que pour le réglage, il n'a pas pour but de rester, et ce modèle je lais également sous la main
    la programmation ce fait avec un DB9 et convertisseur DB9 USB
    j'avais bien pensais a un mode proportionnel mais je savais pas trop comment le programmer et quoi mettre entre le Picaxe et les ventilateurs
    du coup le TOR était plus facile pour moi
    mon choix reste sur le Picaxe uniquement parce que je l'ai sous la main car la proposition de Forhorse est super intéressante

  12. #11
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Citation Envoyé par targatte Voir le message
    Bonjour a tous,

    merci pour tous ces retour, je vais essayer de répondre au question
    l'alimentation fait bien 0v/12v et 0v/5v
    le 18M2 simplement parce que je l'ai sous la main
    l'afficheur OLED n'est la que pour le réglage, il n'a pas pour but de rester, et ce modèle je lais également sous la main
    la programmation ce fait avec un DB9 et convertisseur DB9 USB
    j'avais bien pensais a un mode proportionnel mais je savais pas trop comment le programmer et quoi mettre entre le Picaxe et les ventilateurs
    du coup le TOR était plus facile pour moi
    mon choix reste sur le Picaxe uniquement parce que je l'ai sous la main car la proposition de Forhorse est super intéressante
    Bonjour,
    Attention, le 5V doit être régulé, sinon, utiliser le 12V avec régulateur LM7805
    Tu devrais redéfinir le CDC un peu plus précisément. Le code #9 est proportionnel entre 25 et 100% entre 20 et 60°C, sans led puisque le % de pwm est affiché sur le LCD. on peut les remettre si il n'y plus de LCD. La sortie est celle proposée en #6.
    Pour info, avec un LCD, un 08M2 suffit.

    As tu déjà programmé un picaxe. avec ton convertisseur DB9/USB .
    Si il y a utilisation du LCD, quel est l'interface? série ou autre?

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  13. #12
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Citation Envoyé par targatte Voir le message
    mon choix reste sur le Picaxe uniquement parce que je l'ai sous la main car la proposition de Forhorse est super intéressante
    Bonjour,
    Il est vrai que l'arduino, avec ses biblo et le C++ a quelques arguments. Le picaxe est beaucoup plus rustique, mais pour moi, le basic est ce qu'il y a de plus simple pour un non initié.
    Voici une version picaxe, avec LCD et leds, le LCD est supposé "série picaxe". Les leds sont clignotantes, étagées entre 20 et 60°C (vert, orange , rouge ?)
    le schéma:
    Nom : ventil18M2.JPG
Affichages : 229
Taille : 48,0 Ko

    Le code:
    Il y a deux lignes (ici en commentaire) pour simuler la lecture du LM35 par un clic droit sur C.1 pendant la simulation PE6.
    Le LCD est accompagné d'une signalisation leds, on a donc une idée du fonctionnent sans utilisation obligatoire du LCD

    Code:
    ;ventilo MM 07/01/24
    ;entrée LM25 sur B.2
    ;sortie pwm sur B.3
    ;sortie leds % PWM sur 5 leds  B.4 à B.7 et C.0
    #picaxe 18M2
    #no_data
    	symbol baud= N2400_4	
    	symbol LCD=C.2	;sortie LCD série
    	symbol TM=B.2		;entrée TM35
    	symbol PWout=B.3	;sortie PWM
    	symbol cpt=b1		;compteur
    	symbol led=b2		;n° sortie led: 4,5,6,7,8
    	symbol temp=w13	;
    	symbol lec=w12
    	symbol cumul=w11
    	symbol duty=w10
    	symbol delta=w9
    	symbol afduty=w8	;affichage % PWM
    	serout LCD,baud,(254,1) ;raz LCD
    	adcconfig %011
    	pwmout PWout, 250, 1000	;pwm 4000Hz 100% 	;valeur duty : 20°=>250 et 60°C=>1000 
    	pause 500	;initialisation LCD
    	do       
    		FVRsetup FVR1024        ;LM35 lecture de 0 à 1,024 v
    		cumul=0		; met w10 à 0
    		for cpt=1 to 5		; boucle de lecture 5 fois
    		   readadc10 B.2,lec	; affecte la valeur de B.3 ? w13
    		   cumul=cumul+lec   		; cumul des 5 lectures
    		next
    		cumul=cumul/5		;-20 pour calibration, a confirmer
    		temp=cumul/10		;troncature températue en °C	
    			;readadc C.1,b3			;lecture temp pour simu
    			;temp=40*b3/255 + 20		;mise éhelle t° simu
    		if temp<20 then
    		  duty=250
    		elseif temp>60 then
    		  duty=1000
    		else
    			delta=temp-20
    			duty=75*delta/4+250		  
    		endif
    		pwmduty B.3 ,duty
    		afduty=duty/10
    		led=temp/12+3		;calcul n° led 20 à 60°C => leds B.4 à C.0
    		low led	;allumage led
    		pause 500
    		serout LCD,baud,(254,128,"Temp = ", #temp," ßC  "); ß (ALT+0223)=> ° non simulé
    		serout LCD,baud,(254,192,"PWM  = ",#afduty," %  ")		
    		high led	;ext led
    		pause 500
           loop
    
    A essayer...ou pas.
    MM
    Dernière modification par mag1 ; 08/01/2024 à 14h55.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  14. #13
    targatte

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Bonjour Mag1,

    le 5v viens d'une alim a découpage (5.08v exactement),
    pour le CDC les ventilateurs ne tourne pas en dessous de 35°c et sont a 100% au dessus de 65°c c'est valeur sont amené a évoluer l'ors du réglage sur le terrain
    il y a 1 led "présence tension", et 4 led qui s'allume au fur est a mesure de la monté en vitesse (d'où les seuils 25%, 50%, 75%, 100%)
    oui j'ai déjà programmé un Picaxe avec le convertisseur DB9/USB, le LCD est en interface série et n'est la que pour la phase de réglage

  15. #14
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Citation Envoyé par targatte Voir le message
    le 5v viens d'une alim a découpage (5.08v exactement),
    pour le CDC les ventilateurs ne tourne pas en dessous de 35°c et sont a 100% au dessus de 65°c c'est valeur sont amené a évoluer l'ors du réglage sur le terrain
    il y a 1 led "présence tension", et 4 led qui s'allume au fur est a mesure de la monté en vitesse (d'où les seuils 25%, 50%, 75%, 100%)
    oui j'ai déjà programmé un Picaxe avec le convertisseur DB9/USB, le LCD est en interface série et n'est la que pour la phase de réglage
    Bonjour,
    Quelques précisions:
    La vitesse des ventilos est liée de la température lue, ne serait il pas plus judicieux d'allumer les leds en fonction de la T°?
    Quelle étagement ? Ex :
    < 35° => led 1
    35 à 44 => led 2
    45 à 54 => led 3
    55 à 64 => led 4
    > 65 => led 5
    Il y aurait donc 5 leds, le PWM varie continuellement de 25 à 100% entre 35 et 65°C.
    Je fais un programme dans ce sens, à essayer et à modifier.
    Si il n'y a qu'une led allumée à la fois, une seule résistance de limitation suffit.
    MM
    Dernière modification par mag1 ; 09/01/2024 à 12h35.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  16. #15
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Mise à jour avec un allumage des leds plus précis, ft de la t°:
    Code:
    ;ventilo MM 09/01/24
    ;entrée LM35 sur B.2
    ;sortie pwm sur B.3
    ;sortie leds % PWM sur 5 leds  B.4 à B.7 et C.0
    #picaxe 18M2
    #no_data
    	symbol baud= N2400_4	
    	symbol LCD=C.2 ;sortie LCD série
    	symbol TM=B.2		;entrée TM35
    	symbol PWout=B.3	;sortie PWM
    	symbol cpt=b1		;compteur
    	symbol led=b2		;n° sortie led: 4,5,6,7,8
    	symbol temp=w13	;
    	symbol lec=w12
    	symbol cumul=w11
    	symbol duty=w10
    	symbol delta=w9
    	symbol afduty=w8	;affichage % PWM
    	serout LCD,baud,(254,1) ;raz LCD
    	adcconfig %011
    	pwmout PWout, 250, 1000	;pwm 4000Hz 100% 	;valeur duty : 20°=>250 et 60°C=>1000 
    	pause 500	;initialisation LCD
    	do       
    		FVRsetup FVR1024        ;LM35 lecture de 0 à 1,024 v
    		cumul=0		; met w10 à 0
    		for cpt=1 to 5		; boucle de lecture 5 fois
    		   readadc10 B.2,lec	; affecte la valeur de B.3 ? w13
    		   cumul=cumul+lec   		; cumul des 5 lectures
    		next
    		cumul=cumul/5		;-20 pour calibration, a confirmer
    		temp=cumul/10		;troncature températue en °C	
    			;readadc B.1, temp		;pour simulateur
    			;temp=50*temp/255 +20	;temp variable de 20 à 70°C
    		if temp<35 then
    		  duty=250
    		elseif temp>65 then
    		  duty=1000
    		else							;on est entre 35 et 65°C
    			delta=temp-35			;de 35 à 65, la variation est de 30°C
    			duty=75*delta/3+250	;variation PWM de 25 à 100% =75 %=>750*delta/30	  
    		endif
    			gosub afled		;sous prog affichage leds
    		pwmduty B.3 ,duty
    		afduty=duty/10			
    		pause 500
    		serout LCD,baud,(254,128,"Temp = ", #temp," ßC  "); ß=(ALT+0223)=> ° non simulé
    		serout LCD,baud,(254,192,"PWM  = ",#afduty," %  ")		
    		high 4,5,6,7,8 ;extinction led			
    		pause 500		
    loop
    
    afled:
    	select temp
    		case<35
    			low 4
    		case 35 to 44
    			low 5
    		case 45 to 54
    			low 6
    		case 55 to 64
    			low 7
    		case >=65
    			low 8		
    		endselect
    		return
    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  17. #16
    targatte

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    ok pour moi,
    mais petite précision les leds des t° précédente reste allumée (<35°c led 1, 35° a 44° led 1 et 2... > 65° toutes les leds)

  18. #17
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Citation Envoyé par targatte Voir le message
    ok pour moi,
    mais petite précision les leds des t° précédente reste allumée (<35°c led 1, 35° a 44° led 1 et 2... > 65° toutes les leds)
    Info: le courant total est limité à 90mA. Une led éclaire très bien à 10mA
    Modif code:
    Code:
    ;ventilo MM 09/01/24
    ;entrée LM35 sur B.2
    ;sortie pwm sur B.3
    ;sortie leds % PWM sur 5 leds  B.4 à B.7 et C.0
    #picaxe 18M2
    #no_data
    	symbol baud= N2400_4	
    	symbol LCD=C.2 ;sortie LCD série
    	symbol TM=B.2		;entrée TM35
    	symbol PWout=B.3	;sortie PWM
    	symbol cpt=b1		;compteur
    	symbol led=b2		;n° sortie led: 4,5,6,7,8
    	symbol temp=w13	;
    	symbol lec=w12
    	symbol cumul=w11
    	symbol duty=w10
    	symbol delta=w9
    	symbol afduty=w8	;affichage % PWM
    	serout LCD,baud,(254,1) ;raz LCD
    	adcconfig %011
    	pwmout PWout, 250, 1000	;pwm 4000Hz 100% 	;valeur duty : 20°=>250 et 60°C=>1000 
    	pause 500	;initialisation LCD
    	do       
    		FVRsetup FVR1024        ;LM35 lecture de 0 à 1,024 v
    		cumul=0		; met w10 à 0
    		for cpt=1 to 5		; boucle de lecture 5 fois
    		   readadc10 B.2,lec	; affecte la valeur de B.3 ? w13
    		   cumul=cumul+lec   		; cumul des 5 lectures
    		next
    		cumul=cumul/5		;-20 pour calibration, a confirmer
    		temp=cumul/10		;troncature températue en °C	
    			;readadc B.1, temp		;pour simulateur
    			;temp=50*temp/255 +20	;temp variable de 20 à 70°C
    		if temp<35 then
    		  duty=250
    		elseif temp>65 then
    		  duty=1000
    		else							;on est entre 35 et 65°C
    			delta=temp-35			;de 35 à 65, la variation est de 30°C
    			duty=75*delta/3+250	;variation PWM de 25 à 100% =75 %=>750*delta/30	  
    		endif
    			gosub afled		;sous prog affichage leds
    		pwmduty PWout ,duty
    		afduty=duty/10			
    		serout LCD,baud,(254,128,"Temp = ", #temp," ßC  "); ß=(ALT+0223)=> ° non simulé
    		serout LCD,baud,(254,192,"PWM  = ",#afduty," %  ")		
    	loop
    
    afled:
    	select temp
    		case<35
    			low 4	:high 5,6,7,8
    		case 35 to 44
    			low 4,5	:high 6,7,8
    		case 45 to 54
    			low 4,5,6	:high 7,8
    		case 55 to 64
    			low 4,5,6,7:high 8
    		case >=65	
    			low 4,5,6,7,8		
    		endselect
    		return
    Dernière modification par mag1 ; 09/01/2024 à 16h14.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  19. #18
    Seb.26

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Pour réguler proprement la vitesse il faut un PID : https://fr.wikipedia.org/wiki/R%C3%A...%20ferm%C3%A9e.

    Tu trouveras des exemples dans le langage de ton choix sur le net sans problème, l'entrée du PID sera la température actuelle et la sortie du PID sera ta consigne de PWM.
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  20. #19
    Forhorse

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Un PID c'est quand on veut réguler quelque chose.
    Ici, sauf erreur, il n'est pas question de réguler quoi que ce soit, juste souffler plus fort quand c'est plus chaud.
    Tout projet flou conduit à une connerie précise !

  21. #20
    targatte

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Bonjour,

    première essais non concluant, le LM35 chauffe exagérément (a ne pas pouvoir pauser un doigt dessus), la valeur de température est 1, et le PWM est 1 a l'afficheur, aucune variation des valeur malgré un coup de sèche cheveux

  22. #21
    Forhorse

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Si ton LM35 chauffe c'est sans doute qu'il est mal branché... et potentiellement mort.
    Tu peux le remplacer, et surtout vérifier ton câblage.
    Tout projet flou conduit à une connerie précise !

  23. #22
    targatte

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    j'ai verifié le câblage,il est bon, j'ai essayé avec un deuxième idem

  24. #23
    targatte

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    autant pour moi je crois que je l'ai mis a l'envers

  25. #24
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Citation Envoyé par targatte Voir le message
    autant pour moi je crois que je l'ai mis a l'envers
    Bonjour,
    Ah ben, évidemment, ça marche moins bien...
    Mais si il chauffe à ne pas pouvoir laisser le doigt dessus...c'est pas la peine de prendre un sèche cheveux
    https://www.electroschematics.com/wp...-DATASHEET.pdf

    La vue du brochage est de dessous.
    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  26. #25
    targatte

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    bonjour,
    oui j'ai bêtement confondu vue de dessus et vue de dessous lol
    deuxième essai: retour de t° ok
    pb les ventilateurs tourne alors que la t° est inférieur a 35° et le PWN affiche 0

  27. #26
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Citation Envoyé par targatte Voir le message
    oui j'ai bêtement confondu vue de dessus et vue de dessous lol
    deuxième essai: retour de t° ok
    pb les ventilateurs tourne alors que la t° est inférieur a 35° et le PWN affiche 0
    Bonjour,
    Rassure toi, on a tous fait une erreur de polarité un jour.
    Que les ventilos tournent, c'est normal, le PWM est de 25% au dessous de 35°C
    Mais l'affichage du PWM n'est pas bon. Vérifier ces lignes
    Code:
    	pwmduty PWout ,duty
    	afduty=duty/10			
    	serout LCD,baud,(254,128,"Temp = ", #temp," ßC  "); ß=(ALT+0223)=> ° non simulé
    	serout LCD,baud,(254,192,"PWM  = ",#afduty," %  ")
    Nom : venti1.JPG
Affichages : 180
Taille : 91,9 Ko
    A suivre
    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  28. #27
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Citation Envoyé par targatte Voir le message
    pour le CDC les ventilateurs ne tourne pas en dessous de 35°c et sont a 100% au dessus de 65°c c'est valeur sont amené a évoluer l'ors du réglage sur le terrain
    Bonjour,
    J'ai relu #13, les ventilos ne tournent pas en dessous de 35°C.....J'avais mal lu
    Et donc, il faut modifier une ligne:
    Code:
    if temp<35 then
            duty=0
    remplacer simplement 250 par 0. Mais a partir de 35°C, les ventilos tourneront à 25%. On ne peut pas faire tourner ces moteurs trop lentement, ils s'arrêtent. Les ventilos 4 fils avec PWM ont aussi un seuil mini
    A propos, il y a combien de fils sur les tiens?
    MM
    Dernière modification par mag1 ; 17/01/2024 à 12h46.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  29. #28
    targatte

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Bonjour,

    les ventilo sont des 2 fils, nouveau problème des la mise en service les ventilo tourne a 100% quelque soit la t°, j'ai pas investigué plus pour l'instant

  30. #29
    mag1

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Citation Envoyé par targatte Voir le message
    Bonjour,

    les ventilo sont des 2 fils, nouveau problème des la mise en service les ventilo tourne a 100% quelque soit la t°, j'ai pas investigué plus pour l'instant
    Bonjour,
    Oui, c'est prévu comme ça dans le code, juste pur vérifier que les ventilos fonctionnent, mais ils doivent ensuite s'ajuster à la lecture de la 1ère température,
    Quelle est la valeur de la tempé lue?
    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  31. #30
    targatte

    Re : Variation vitesse ventilateur suivant la temperature via Picaxe

    Bonjour,

    la température était de 20°

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Variation de vitesse ventilateur de plafond via PWM
    Par FuturaRoberto dans le forum Bricolage et décoration
    Réponses: 2
    Dernier message: 06/08/2022, 14h26
  2. Variation température et débit ventilateur.
    Par invitef27c47f9 dans le forum Physique
    Réponses: 4
    Dernier message: 29/03/2016, 10h19
  3. Variation de température suivant variation de densité.
    Par invite636b4473 dans le forum Physique
    Réponses: 2
    Dernier message: 11/11/2014, 22h33
  4. Variation vitesse ventilateur
    Par invite52bb20c2 dans le forum Électronique
    Réponses: 13
    Dernier message: 09/09/2014, 12h09
  5. variation vitesse ventilateur
    Par invite90a4b511 dans le forum Électronique
    Réponses: 1
    Dernier message: 19/11/2007, 01h00
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...