Bonjour,
Voici mon programme :
char alphabet[26] = {"abcdefghijklmnopqrstuvwxyz"};
//F=5 ; O=14 ; U=20 ; D=3 ; R=17 ; E=4 ; K=10; T=19 ; Z=25 ; I=8 ; W=22 ; J=9
int pinPR = A0; //pin de connexion pour la photorésistance
int valMin = 0
; // on initialise la valeur minimale au plus haut
int valMax = 600; // et la valeur maximale au plus bas
int compteur = 0;
int pourcentageMax = 70; //valeur obtenue suite à plusieurs tests
void setup()
{
Serial.begin(9600);
}
void loop()
{
int valeur = analogRead(pinPR); // on lit la valeur transmise par la photorésistance
/*if (valeur>valMax) //on compare avec valMax
valMax=valeur; // on modifie valMax
if (valeur<valMin) // on compare avec valMin
valMin=valeur; // on modifie valMin*/
int pourcentage = map(valeur, valMin, valMax, 0, 100); //pourcentage entre les bornes
//Séquence d'affichage
/*Serial.print("Valeur : ");
Serial.print(valMin);
Serial.print(" < ");
Serial.print(valeur);
Serial.print(" < ");
Serial.print(valMax);
Serial.print(" soit : ");
Serial.print(pourcentage);
Serial.println(" %");*/
delay(400);
if (pourcentage <= pourcentageMax)
{
compteur=0;
}
else
{
compteur++;
}
if (compteur==1)
{
Serial.print("Valeur : ");
Serial.print(valMin);
Serial.print(" < ");
Serial.print(valeur);
Serial.print(" < ");
Serial.print(valMax);
Serial.print(" soit : ");
Serial.print(pourcentage);
Serial.println(" %");
Serial.println("une courte");
}
else if (compteur==3)
{
Serial.print("Valeur : ");
Serial.print(valMin);
Serial.print(" < ");
Serial.print(valeur);
Serial.print(" < ");
Serial.print(valMax);
Serial.print(" soit : ");
Serial.print(pourcentage);
Serial.println(" %");
Serial.println("une longue");
}
}
Ce programme a pour but d'affecter un pourcentage de lumière capter par une photorésistance à des caractères morses. Sachant que cette valeur moyenne est calculée toutes les 400mms. Et qu'une courte dure 400mms et une longue 1200mms. Mon problème est le suivant : j'aimerais que lorsque mon compteur est égale à 3 alors il affiche qu'il y "une longue", mais qu'il n'affiche pas en même temps qu'il y a "une courte". Car pour être égale à 3, mon compteur à forcément été égal à 1 auparavant et a donc vérifiée la condition "compteur==1".
Désolé si je ne suis pas très explicite, merci d'avance pour vos réponses.