Pages: 1 2 3 [4]   Go Down
Author Topic: gestion aquarium recifal allumage progressif  (Read 7767 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Faraday Member
**
Karma: 33
Posts: 4975
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-mr-green , ce n'est pas mon materiel   smiley-cool

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.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 160
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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,
Logged

Offline Offline
God Member
*****
Karma: 5
Posts: 687
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut @ tous
Bubule va peut-être vous être utile dans vos questions , je l'ai contacté .
@+
Will

Logged

The truth is elsewhere !!

Offline Offline
Full Member
***
Karma: 0
Posts: 160
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,

le dernier code que j'utilisait etait :

Code:
#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);
}

 }
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 160
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

bonne continuation
Logged

Pages: 1 2 3 [4]   Go Up
Jump to: