Temporisation avec arduino mega2560

a marqué ce sujet comme résolu.

Bonjour et je vous remercie d'avance pour votre aide.

Mon problème, je pense qu'il est simple mais nécessite une intuition de génie que je n'ai pas encore à l'heure où j’écris ces lignes. ci dessous voici mon code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <FlexiTimer2.h>
#include "Arduino.h"

int entreeNum15 = 15;   
int entreeNum16 = 16;  
int etatEntreeNum16 = 0;  
int etatEntreeNum15 = 0;  
int sortieNum02 = 2;  
int sortieNum03 = 3;
int temporisationRelais = 250; // 250 ms 
int temps1 = 0 , temps2 = 0 

void setup ()
{
  FlexiTimer2::set(10,interruption);
  FlexiTimer2::start();
  pinMode(entreeNum15,INPUT);
  pinMode(entreeNum16,INPUT);
  pinMode(sortieNum02,OUTPUT);
  pinMode(sortieNum03,OUTPUT);
}

void loop()
{
  etatEntreeNum15 = digitalRead(entreeNum15);
  etatEntreeNum16 = digitalRead(entreeNum16);
  if(etatEntreeNum15 && etatEntreeNum16)  // exemple 
  {
    while(temps1<=temporisatisation)
        analogWrite(sortieNum02,255); // je met le relais à etat Bas
  }
  temps1=0;
  temps2=0;
  if(etatEntreeNum15 && etatEntreeNum16)  // exemple 
  {
    while(temps2<=temporisation)
        analogWrite(sortieNum03,255); // je met le relais à etat Bas
  }
  temps1=0;
  temps2=0;
}

void interruption()
{
 temps1++;
 temps2++;
}

Avec ce code, mon souci est que je n'entre pas dans le 2ième IF tant que la condition de mon 1er WHILE est vraie. Esperant que j'était assez clair sur mon problème, si vous avez des idées sur comment je pourrais optimiser ce code, je reste ouvert à toute proposition .

P.S , je ne peux pas utiliser la fonction millis (), contrainte d'entreprise.

D'avance, je vous en remercie.

+0 -0

J'avoue que ton problème n'est pas très claire… Si tu veux entrer dans ton if même si la condition n'est pas fausse, tu n'as qu'a le mettre dans le while ?

Je ne comprend pas bien ou est définie temporisation*. Et tes boucles pour moi sont infinies. Il doit y avoir un truc qui m'échappe.

*) temporisatisation ? J'arrive même pas à lire le mot xD

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte