gestion aquarium recifal allumage progressif

djbouns:
salut
voici le model de mon driver

http://www.eio.com/p-41276-sure-electronics-le-ll14113-high-power-10w-20w-15a-led-dc-driver.aspx

il seras commander par mon arduino lol

bonjour
c'est un driver pour LED en courant, ça fonctionnera peut etre avec ton ventilo, mais rien de moins sur !
tu l'a déjà utilisé dans cette application ? , d'autres l'ont fait ? , ou tu es parti sur ce driver "comme ça" ? :grin:

bonsoir
ces le meme driver que pour mes leds.
vue qu'il m'en reste un non utiliser je veux l'utiliser pour cela

bonsoir
pourquoi penser vous que sa ne marcheras pas ???
quelqu’un d'autre pour le code ???

djbouns:
bonsoir
pourquoi penser vous que sa ne marcheras pas ???
quelqu’un d'autre pour le code ???

bonjour
Je n'ai pas dit que cela ne marchera pas, j'ai dit qu'il n'est pas sur que cela fonctionne ou fonctionne de manière pérenne :grin:
l'objet commandé (là le ventilo) n'etant pas l'objet initial (les leds) prevu pour etre commandé par ce driver.

alors retour sur le ventilo avant de passer aux tests : 8)
ton ventilo est de quel type , quelle motorisation (ne pas confondre avec l'alimentation du moteur) : moteur brushless ? , simple moteur DC 2 poles , autres ? ,

Bonjour

il s'agit d'un ventilo 6cm 2 pole 12v dc 7w.
Je ne comprend pas trop pourquoi sa te questionne temps que sa.
mon driver dit "driver led" sert a faire varier mon 12v en fonction de ma sorti pwm 5v de mon arduino.
Que se soit des led ou un ventilo, le driver ne feras pas la différence et délivreras le courant demander non ?

djbouns:
Bonjour

il s'agit d'un ventilo 6cm 2 pole 12v dc 7w.
Je ne comprend pas trop pourquoi sa te questionne temps que sa.
mon driver dit "driver led" sert a faire varier mon 12v en fonction de ma sorti pwm 5v de mon arduino.
Que se soit des led ou un ventilo, le driver ne feras pas la différence et délivreras le courant demander non ?

bonsoir
perso ça ne me questionne pas plus que ça :grin: , ce n'est pas mon materiel 8)

fais donc un simple test avec ton driver, ton ventilo et ton driver
commande ce dernier en PWM arduino , fais des test en injectant de la PWM par palier de 5 ou 10 et regarde le comportement de ton ventilo
et si cela fonctionne bien et que cela te convient alors c'est tout bon pour integrer ça dans ton appli.

Bonsoir
au paravent javait 5 ventilo brancher sur 5 driver qui controlait des led selon les heures (les 10w + ventilos) et sa fonctionait correctement.
il n'y a donc plus de raison que sa ne marche plus.
la seul difference la est que je ne veut que le ventilot soit proportionel a la temperature et plus un alumage selon l'heure.
peut tu me donner une parti du code a adapter stp

slt a tous,

dsl je remonte un peu le topic car le sujet m'interesse.
je voulais prendre des nouvelles de djbouns pour savoir si il avait terminé son programme et lui posé quelque question:

la dernière version du programme que tu as posté fonctionne t'elle chez toi? je viens de le lire et il ne devrait pas fonctionné, il y a quelque erreur de signe comme par ex:

else if ((heure <= 21) && (heure > 8 )){
analogWrite(rouge, 0);

ca ne peut pas marché.

je pense que tu as du te trompé et pas collé la dernieres version de ton programme.

tu t'en es sortie avec la gestion de tes ventilateurs?

cdt,

bonjour,

le dernier code que j'utilisait etait :

#include "LiquidCrystal.h"
#include "Arduino.h"
#include "Wire.h"
#include "DS1307.h"

LiquidCrystal lcd(7, 2, 3, 4, 5, 6);
int pompe = 8;
int soleil = 9;
int ventilateur = 10;
int rampeled = 11;
int led = 12;
int niveau = 13;

int valeurPWM=0;

int minut;
int heure;
int seconde;
int time;

float sensorPin;
float temp;
float temp1;
float Vact = 0;  // variable valeur instantanée
int Fd=20; // facteur de division de la moyenne = moyenne toutes les FD boucles ici 20
long Accm=0; // accumulateur pour moyenne
int Nbcl=0; // compteur de boucles
float vitventilo;
int off;
int printvitvent;

void setup() {
  
  lcd.begin(16,2);
Serial.begin(9600);

  pinMode(pompe, OUTPUT);  
  pinMode(ventilateur, OUTPUT);  
  pinMode(soleil, OUTPUT);  
  pinMode(led, OUTPUT);  
  pinMode(rampeled, OUTPUT); 
  pinMode(niveau, INPUT);
} 
  
  
  void loop(){
  
sensorPin = analogRead(0);
Vact = ((sensorPin*0.5)+1.5)*100 ;
Accm=Accm+Vact;
Nbcl ++;

if (Nbcl == Fd) { 
  temp1 = (Accm / Fd) ;
  temp = temp1/100;
  Accm= Accm-(Accm/20) ;
  Nbcl= 19;
  }   
else{
   temp = (Accm / Nbcl) ;
   temp = temp/100;   
   }

//Récupération de l'heure du DS1307**********************************************************************************************
  heure = RTC.get(DS1307_HR,true);  
  minut = RTC.get(DS1307_MIN,true);
  seconde = RTC.get(DS1307_SEC,true);
  time = (heure * 100) + minut;
  
//Affichage ******************************************************************************************
 lcd.clear();
 lcd.setCursor(0,0);
   lcd.print ("  AQUA GESTION  ");
   lcd.setCursor(0,1);
   lcd.print("     ");
  if (heure < 10)
  {
    lcd.print("0");
  }
  lcd.print(heure);
  lcd.print("H");
  if (minut < 10)
  {
    lcd.print("0");
  }
  lcd.print(minut);
lcd.print("      ");
  delay (5000);
lcd.setCursor(0,1);
lcd.print("     ");
  lcd.print(temp);
  lcd.print((char)223);
  lcd.print("     ");
  delay (5000);


 //*****Controle des sorties eclairage *********
 //***on-off***** soleil ***
  
 if ((time >= 930) && (time < 1020)){ 
    valeurPWM = map(time, 930, 1019, 0, 255);
    analogWrite (soleil, valeurPWM);
lcd.setCursor(0,1);
    lcd.print(" + + soleil + + ");
    delay(5000);
  }
 else if ((time >= 2230) && (time < 2300)){  
   valeurPWM = map(time, 2230, 2259, 255, 0);
    analogWrite (soleil, valeurPWM); 
lcd.setCursor(0,1);
    lcd.print(" - - soleil - - ");
    delay(5000);
  }   
  else if ((time >= 1020 ) && (time < 2230)) {
    analogWrite(soleil, 255);
  }
else {
    analogWrite(soleil, 0);
      lcd.setCursor(0,1);
    lcd.print("   BONNE NUIT   ");
    delay(5000);
}


//***on-off*****led 1w***
     if((time >= 1030) && (time < 2225)){
    digitalWrite(led, HIGH);
   }
  else{
    digitalWrite(led, LOW);
   }
    

//***on-off***** ventilateur  ***

lcd.setCursor(0,0);
lcd.print("     ");
  lcd.print(temp);
  lcd.print((char)223);
  lcd.print("     ");

if (temp1 > 2725){
  temp1 = 2725;
}
 
 if (temp1 < 2676){
  temp1 = 2625;
}

 vitventilo = map(temp1,2625,2725, 0, 255);
 analogWrite (ventilateur, vitventilo);
  lcd.setCursor(0,1);
    lcd.print("ventilateur ");
        off = ((vitventilo*100)/255);
    if (off == 0){
    lcd.print(" OFF");
    delay(5000);
    }
    
    else {
    printvitvent = ((vitventilo*100)/255);
    lcd.print(printvitvent);
    lcd.print("% ");
    delay(5000);
    }

//***on-off***** pompe ***
if (digitalRead (niveau) == HIGH)
{
   lcd.setCursor(0,1);
    lcd.print("niveau d'eau BAS");
    delay(5000);
 if ((time >= 800) && (time <= 2359)){
 if ((minut % 10)== 0) {
   delay (35000);
     lcd.setCursor(0,1);
    lcd.print("  ajout  d'eau  ");
    digitalWrite(pompe, HIGH);
    delay (4500);
    digitalWrite(pompe, LOW);
    
}
}
}
 else if (digitalRead (niveau) == LOW){
      lcd.setCursor(0,1);
    lcd.print("niveau d'eau  OK");
    delay(5000);
} 

 }

tout fonctionnait correctement.
depuis, j'ai déménager et j'en est profiter pour agrandir mon bac.
du coup, pour le moment, j'ai un arduino pour faire l'osmolation, un pour mes pompe doseuse et un autre pour la gestion provisoire de mon éclairage.

Merci pour ta réponse, je vais regardé ca en détail,
en tout cas, merci pour ton post qui aide bien

bonne continuation