Bonjour, je dois réaliser un exercice dont voici l'énoncé :
"La première sortie doit s'activer si le rapport cyclique est inférieur à 40%, la seconde s'il est supérieur à 60%. S'il n'y a pas de signal, ou si le signal est carré, aucune sortie ne doit s'activer."
Voici mon code mais il ne fonctionne pas :
#define L1 4
#define Led1On digitalWrite(L1,1);
#define Led1Off digitalWrite(L1,0);
#define L2 5
#define Led2On digitalWrite(L2,1);
#define Led2Off digitalWrite(L2,0);
#define P1 2
#define Pous1On (digitalRead (P1)==0)
#define Pous1Off (digitalRead (P1)==1)
unsigned long duree,dureeA,dureeB;
void setup()
{
pinMode(P1, INPUT);
pinMode(L1, OUTPUT);
pinMode(L2, OUTPUT);
Serial.begin(9600);
}
void loop()
{
dureeA = pulseIn(P1, HIGH);
dureeB = pulseIn(P1, LOW);
duree=dureeA-dureeB;
if(duree<400000 && dureeA>0){Led1On;}
if(dureeA>600000){Led2On;}
Serial.print(duree);
Led1Off; Led2Off;
}
Je ne vois pas comment traiter les données reçues sur le moniteur série...
Si quelqu'un peut me mettre sur la voie, je ne suis pas sur d'utiliser la bonne méthode (pulseIn) ?
Merci