Alimentation d'un VMC pour wc

[code]

/* Projet
 *  Allumer une lampe,créer un compteur de 90secondes puis alimenter un relay.
 *  A l'extinction de la lampe,créer une tempo de 10secondes et remettre le compteur 
    et le tempo à "0".
 *  A l'extinction de la lampe  avant les 90secondes , remettre le compteur à "0"
   */

//les broches
int photoResistance = A0;
int pinrelay = 13;

//les variables
int compteur=0;
int tempo=0;


void setup() {
   //definition de la broche 13 en mode de sortie
  pinMode (pinrelay,OUTPUT);}

void loop() {

  //indique que la brocheA0 est égale à "valeur"
  int valeur = analogRead (photoResistance);

//si la lumière éteinte, démarrer la tempo
if (valeur<800 && compteur!=0){
  // départ tempo
while (tempo!=10){tempo=tempo+1;delay(1000);}
if (valeur<600 && tempo==10)
//laisser le relay alimenter pendant 10secondes
digitalWrite (pinrelay,HIGH);
//désactivation du relay
  digitalWrite (pinrelay,LOW);compteur=0;tempo=0;}
  //départ du compteur 1 minute et 30 secondes.
 if (compteur!=90){ 
     compteur=compteur+1;
  delay (1000);}
  if (valeur>900 && compteur==90)
digitalWrite (pinrelay,HIGH);}

/*[u]projet réalisé[/u]  
*Pour résumer le projet est destiné à commander le VMC des toilettes,à partir
d'une photo résistance située dans les toilettes.
*Une fois la lumière allumée:
*Si l'on ne dépasse pas 1minute 30,le VMC ne se déclenche pas et à l'extinction de la lumière
 le compteur ainsi que la tempo sont remis à zero.
*Quand on dépasse  1 minute 30,le VMC est alimenté jusqu'à l'extinction de la lumière et il 
reste alimenté encore 10secondes puis se ferme.*/

[/img][/code]

Ne soyez pas trop méchant avec moi ,c'est le premier programme que je fais avec l'arduino, je pense qu'il y a mieux à faire, mais je débute!!

Bravo c'est bien d'explorer et partager

À quoi sert ce code

while (tempo!=10){tempo=tempo+1;delay(1000);}
if (valeur<600 && tempo==10)....

Est-ce que tempo peut valoir autre chose que 10 d'après vous dans le if?
Pourquoi ne pas faire delay(10000);plutot que 10 fois une seconde?
Ne manquerait il pas des {} sur le if?
Ce serait bien de presser Ctrl-T ou cmd-T pour indenter correctement le code

bonjour
merci d'avoir pris la peine de contrôler mon programme.
j'ai retiré le if (valeur < 600 && tempo == 10) effectivement il ne servait à rien.
concernant le delay(1000), quand je change :

while (tempo != 1) {
tempo = tempo + 1;
delay(10000);

quelle différence y a t-il?
pour indenter le code , je ne connaissais pas Ctrl-T
comment faire pour le modifier sur mon post?
encore merci pour votre aide.

prevost:
bonjour
merci d'avoir pris la peine de contrôler mon programme.
j'ai retiré le if (valeur < 600 && tempo == 10) effectivement il ne servait à rien.
concernant le delay(1000), quand je change :

while (tempo != 1) {
tempo = tempo + 1;
delay(10000);}

quelle différence y a t-il?
pour indenter le code , je ne connaissais pas Ctrl-T
comment faire pour le modifier sur mon post?
encore merci pour votre aide.

ce code
while (tempo!=10){tempo=tempo+1;delay(1000);}fait 10 fois de suite une attente active de 1 seconde. donc vous attendez 10 secondes.
il est quand même plus simple de faire directement une attente active de 10 secondes avec juste
delay(10000);Le while ne sert vraiment pas à grand chose et rend la lecture de votre code plus complexe que nécessaire et utilise de la mémoire pour une variable inutile (tempo).

pour indenter le code , je ne connaissais pas Ctrl-T. comment faire pour le modifier sur mon post?

vous avez un bouton "Quick Edit" sous votre post. appuyez dessus et vous pouvez modifier le contenu. si vous ne le voyez pas, allez dans le préférences de votre compte et changez les prefs pour l'affichage du forum.