// Les constantes ne changent pas durant le programme.
// Utilisée ici pour définir la numéro de la broche :
const int findecourse = 8; // crée un identifiant pour la broche utilisée avec le bouton poussoir
const int led = 13; // crée un identifiant pour la broche utilisée avec la LED
const int programation = 12; // cree un identifiant pour la broche utilisee avec le switch de programation
const int ouverture = 2; // n° broche pour contacteur ouverture
const int fermeture = 3; // n° broche pour contacteur fermeture
const int moteurouverture = 4; // n° broche relais moteur ouverture
const int moteurfermeture = 5; // n° broche relais moteur fermeture
// Les variables sont modifiées au cours du programme
int findecoursePushCounter = 0; // variable pour le comptage du nombre d'appuis sur le bouton poussoir
int findecourseState = 0; //Variable pour l'état actuel du bouton poussoir
int lastFindecourseState = 0; // Variable pour l'état précédent du bouton poussoir
int etatProgramation; //etat de la programation
int compteur = 0; // un compteur
int etatMoteurouverture; // etat actuel du relais ouverture
int etatMoteurfermeture; // etat actuel du relais fermeture
int etatFindecourse; // etat actuel du capteur de fin de course
int etatCompteur; // etat actuel du compteur
int memoire = LOW;
void setup()
{
// met la broche en entrée
pinMode(findecourse, INPUT);
//met la broche en entree
pinMode(programation, INPUT);
// met la broche en sortie
pinMode(led, OUTPUT);
// met la broche en sortie
pinMode(moteurouverture, OUTPUT);
// met la broche en sortie
pinMode(moteurfermeture, OUTPUT);
// met ele broche en entrée
pinMode(ouverture, INPUT);
// met la broche en entrée
pinMode(fermeture, INPUT);
// initialise la communication série
// Attention : utiliser la meme vitesse de communication pour le Terminal Série
Serial.begin(9600);
}
void loop()
{
// lit l'état actuel du bouton poussoir et le mémorise dans la variable
findecourseState = digitalRead(findecourse);
if ((etatProgramation = HIGH) && (etatFindecourse == HIGH))
{
// on incremente le compteur
compteur++;
}
// on enregistre le compteur
memoire = etatCompteur;
}{
// etat actuel du fin de course et memorise dans la variable
findecourseState = digitalRead(findecourse);
// compare l'état actuel du fin de course à l'état précédent mémorisé
if (findecourseState != lastFindecourseState); {
// si l'état du fin de course a changé et est HAUT et que la fermeture est haut, on incrémente la variable de comptage
if ((findecourseState == HIGH) && (fermeture == HIGH));{
// si l'état actuel du bouton est HAUT
// il est passé de BAS à HAUT
findecoursePushCounter++;
// affiche les messages sur le PC
Serial.println("ALLUME");
Serial.print("nombre d'appuis: ");
Serial.println(button1PushCounter, DEC); // affiche la valeur au format décimal
}
else {
// si le bouton courant est BAS
// il est passé de HAUT à BAS :
Serial.println("ETEINT");
}
// memorise l etat courant du fin de course
// pour les prochain passages de la boucle loop
lastFindecourseState = findecourseState;
}
{
//si etat de la fin de course a changer et est haut et que l ouverture est haut, on decremente la variable de comptage
if ((findecourseState == HIGH) && (ouverture == HIGH)){
// si l etat actuel de la fin de course est haut
//il est passe de bas a haut
findecoursePushcounter--;
// affiche les messages sur le PC
Serial.println("ALLUME");
Serial.print("nombre d'appuis: ");
Serial.println(button1PushCounter, DEC); // affiche la valeur au format décimal
}
else {
// si le bouton courant est BAS
// il est passé de HAUT à BAS :
Serial.println("ETEINT");
}
// memorise l etat courant du fin de course
// pour les prochain passages de la boucle loop
lastFindecourseState = findecourseState;
}{
// si ouverture a l etat haut
// mettre le relais ouverture a l eta haut
if (ouverture == HIGH);
digitaWrite(relaisouverture, HIGH); // relais a l etat haut
}{
// si fermeture a l etat haut
// mettre relais fermeture a l etat haut
if (fermeture == HIGH);
digitalWrite (relaisfermeture, HIGH);}{
// si ouverture sur haut
// relais fermeture sur bas
if (ouverture == HIGH);
digitalWrite (relaisfermeture, LOW);}{
// si fermeture sur haut
// mettre relais ouverture sur bas
if (fermeture == high);
digitalWrite (relaisouverture, LOW);}{
//si ouverture a l etat haut et que findecoursepushcounter est egal ou supperieur au compteur enregistre en programation
//arrete le relais ouverture
if ((ouverture == HIGH) && (findecoursePushCounter >= compteur))
digitalWrite(relaisouverture == LOW);}{
// si fermeture a l etat haut et que findecoursepushcounter est egal ou inferieur a "0"
// arretée relais fermeture
if ((fermeture == HIGH) && (findecoursePushCounter <= 0))
digitalWrite (relaisfermeture == LOW); }
{
// si fin de course a l etat haut allumer la led
// sinon eteindre la led
if (findecourse == HIGH),
digitalWrite(led, HIGH);
} else {//sinon
digitalWrite(led, LOW);
}
erreur : 65:2: error: expected unqualified-id before ‘{’ token
Il y a plein d’erreurs comme dit par JLuc et fdufnews.
J’en ai corrigé quelques une.
A toi de trouver la dernière ‘variable non déclarée’.
Cela ne présume pas du bon fonctionnement du programme.
// Les constantes ne changent pas durant le programme.
// Utilisée ici pour définir la numéro de la broche :
const int findecourse = 8; // crée un identifiant pour la broche utilisée avec le bouton poussoir
const int led = 13; // crée un identifiant pour la broche utilisée avec la LED
const int programation = 12; // cree un identifiant pour la broche utilisee avec le switch de programation
const int ouverture = 2; // n° broche pour contacteur ouverture
const int fermeture = 3; // n° broche pour contacteur fermeture
const int moteurouverture = 4; // n° broche relais moteur ouverture
const int moteurfermeture = 5; // n° broche relais moteur fermeture
// Les variables sont modifiées au cours du programme
int findecoursePushCounter = 0; // variable pour le comptage du nombre d'appuis sur le bouton poussoir
int findecourseState = 0; //Variable pour l'état actuel du bouton poussoir
int lastFindecourseState = 0; // Variable pour l'état précédent du bouton poussoir
int etatProgramation; //etat de la programation
int compteur = 0; // un compteur
int etatMoteurouverture; // etat actuel du relais ouverture
int etatMoteurfermeture; // etat actuel du relais fermeture
int etatFindecourse; // etat actuel du capteur de fin de course
int etatCompteur; // etat actuel du compteur
int memoire = LOW;
void setup()
{
// met la broche en entrée
pinMode(findecourse, INPUT);
//met la broche en entree
pinMode(programation, INPUT);
// met la broche en sortie
pinMode(led, OUTPUT);
// met la broche en sortie
pinMode(moteurouverture, OUTPUT);
// met la broche en sortie
pinMode(moteurfermeture, OUTPUT);
// met ele broche en entrée
pinMode(ouverture, INPUT);
// met la broche en entrée
pinMode(fermeture, INPUT);
// initialise la communication série
// Attention : utiliser la meme vitesse de communication pour le Terminal Série
Serial.begin(9600);
}
void loop()
{
// lit l'état actuel du bouton poussoir et le mémorise dans la variable
findecourseState = digitalRead(findecourse);
if ((etatProgramation == HIGH) && (etatFindecourse == HIGH))
{
// on incremente le compteur
compteur++;
}
// on enregistre le compteur
memoire = etatCompteur;
// etat actuel du fin de course et memorise dans la variable
findecourseState = digitalRead(findecourse);
// compare l'état actuel du fin de course à l'état précédent mémorisé
if (findecourseState != lastFindecourseState); {
// si l'état du fin de course a changé et est HAUT et que la fermeture est haut, on incrémente la variable de comptage
if ((findecourseState == HIGH) && (fermeture == HIGH));{
// si l'état actuel du bouton est HAUT
// il est passé de BAS à HAUT
findecoursePushCounter++;
// affiche les messages sur le PC
Serial.println("ALLUME");
Serial.print("nombre d'appuis: ");
Serial.println(button1PushCounter, DEC); // affiche la valeur au format décimal
}
else {
// si le bouton courant est BAS
// il est passé de HAUT à BAS :
Serial.println("ETEINT");
}
// memorise l etat courant du fin de course
// pour les prochain passages de la boucle loop
lastFindecourseState = findecourseState;
}
//si etat de la fin de course a changer et est haut et que l ouverture est haut, on decremente la variable de comptage
if ((findecourseState == HIGH) && (ouverture == HIGH)){
// si l etat actuel de la fin de course est haut
//il est passe de bas a haut
findecoursePushcounter--;
// affiche les messages sur le PC
Serial.println("ALLUME");
Serial.print("nombre d'appuis: ");
Serial.println(button1PushCounter, DEC); // affiche la valeur au format décimal
}
else {
// si le bouton courant est BAS
// il est passé de HAUT à BAS :
Serial.println("ETEINT");
}
// memorise l etat courant du fin de course
// pour les prochain passages de la boucle loop
lastFindecourseState = findecourseState;
// si ouverture a l etat haut
// mettre le relais ouverture a l eta haut
if (ouverture == HIGH);
digitaWrite(relaisouverture, HIGH); // relais a l etat haut
// si fermeture a l etat haut
// mettre relais fermeture a l etat haut
if (fermeture == HIGH);
digitalWrite (relaisfermeture, HIGH);}{
// si ouverture sur haut
// relais fermeture sur bas
if (ouverture == HIGH);
digitalWrite (relaisfermeture, LOW);}{
// si fermeture sur haut
// mettre relais ouverture sur bas
if (fermeture == high);
digitalWrite (relaisouverture, LOW);}{
//si ouverture a l etat haut et que findecoursepushcounter est egal ou supperieur au compteur enregistre en programation
//arrete le relais ouverture
if ((ouverture == HIGH) && (findecoursePushCounter >= compteur))
digitalWrite(relaisouverture == LOW);}{
// si fermeture a l etat haut et que findecoursepushcounter est egal ou inferieur a "0"
// arretée relais fermeture
if ((fermeture == HIGH) && (findecoursePushCounter <= 0))
digitalWrite (relaisfermeture == LOW);
// si fin de course a l etat haut allumer la led
// sinon eteindre la led
if (findecourse == HIGH):
digitalWrite(led, HIGH);
else //sinon
digitalWrite(led, LOW);
}
// Les constantes ne changent pas durant le programme.
// Utilisée ici pour définir la numéro de la broche :
const int findecourse = 8; // crée un identifiant pour la broche utilisée avec le bouton poussoir
const int led = 13; // crée un identifiant pour la broche utilisée avec la LED
const int programation = 12; // cree un identifiant pour la broche utilisee avec le switch de programation
const int ouverture = 2; // n° broche pour contacteur ouverture
const int fermeture = 3; // n° broche pour contacteur fermeture
const int moteurouverture = 4; // n° broche relais moteur ouverture
const int moteurfermeture = 5; // n° broche relais moteur fermeture
// Les variables sont modifiées au cours du programme
int findecoursePushCounter = 0; // variable pour le comptage du nombre d'appuis sur le bouton poussoir
int findecourseState = 0; //Variable pour l'état actuel du bouton poussoir
int lastFindecourseState = 0; // Variable pour l'état précédent du bouton poussoir
int etatProgramation; //etat de la programation
int compteur = 0; // un compteur
int etatMoteurouverture; // etat actuel du relais ouverture
int etatMoteurfermeture; // etat actuel du relais fermeture
int etatFindecourse; // etat actuel du capteur de fin de course
int etatCompteur; // etat actuel du compteur
int memoire = LOW;
void setup()
{
// met la broche en entrée
pinMode(findecourse, INPUT);
//met la broche en entree
pinMode(programation, INPUT);
// met la broche en sortie
pinMode(led, OUTPUT);
// met la broche en sortie
pinMode(moteurouverture, OUTPUT);
// met la broche en sortie
pinMode(moteurfermeture, OUTPUT);
// met ele broche en entrée
pinMode(ouverture, INPUT);
// met la broche en entrée
pinMode(fermeture, INPUT);
// initialise la communication série
// Attention : utiliser la meme vitesse de communication pour le Terminal Série
Serial.begin(9600);
}
void loop()
{
// lit l'état actuel du bouton poussoir et le mémorise dans la variable
findecourseState = digitalRead(findecourse);
if ((etatProgramation == HIGH) && (etatFindecourse == HIGH))
{
// on incremente le compteur
compteur++;
}
// on enregistre le compteur
memoire = etatCompteur;
// etat actuel du fin de course et memorise dans la variable
findecourseState = digitalRead(findecourse);
// compare l'état actuel du fin de course à l'état précédent mémorisé
if (findecourseState != lastFindecourseState) {
// si l'état du fin de course a changé et est HAUT et que la fermeture est haut, on incrémente la variable de comptage
if ((findecourseState == HIGH) && (fermeture == HIGH)){
// si l'état actuel du bouton est HAUT
// il est passé de BAS à HAUT
findecoursePushCounter++;
// affiche les messages sur le PC
Serial.println("ALLUME");
Serial.print("nombre d'appuis: ");
Serial.println(findecoursePushCounter, DEC); // affiche la valeur au format décimal
}
else {
// si le bouton courant est BAS
// il est passé de HAUT à BAS :
Serial.println("ETEINT");
}
// memorise l etat courant du fin de course
// pour les prochain passages de la boucle loop
lastFindecourseState = findecourseState;
}
//si etat de la fin de course a changer et est haut et que l ouverture est haut, on decremente la variable de comptage
if ((findecourseState == HIGH) && (ouverture == HIGH)){
// si l etat actuel de la fin de course est haut
//il est passe de bas a haut
findecoursePushCounter--;
// affiche les messages sur le PC
Serial.println("ALLUME");
Serial.print("nombre d'appuis: ");
Serial.println(findecoursePushCounter, DEC); // affiche la valeur au format décimal
}
else
// si le bouton courant est BAS
// il est passé de HAUT à BAS :
Serial.println("ETEINT");
}
// memorise l etat courant du fin de course
// pour les prochain passages de la boucle loop
lastFindecourseState = findecourseState ;
// si ouverture a l etat haut
// mettre le relais ouverture a l eta haut
if (ouverture == HIGH):
digitalWrite(moteurouverture, HIGH); // relais a l etat haut
// si fermeture a l etat haut
// mettre relais fermeture a l etat haut
if (fermeture == HIGH):
digitalWrite (moteurfermeture, HIGH);}{
// si ouverture sur haut
// relais fermeture sur bas
if (ouverture == HIGH):
digitalWrite (moteurfermeture, LOW);}{
// si fermeture sur haut
// mettre relais ouverture sur bas
if (fermeture == high):
digitalWrite (moteurouverture, LOW);}{
//si ouverture a l etat haut et que findecoursepushcounter est egal ou supperieur au compteur enregistre en programation
//arrete le relais ouverture
if ((ouverture == HIGH) && (findecoursePushCounter >= compteur)):
digitalWrite(moteurouverture == LOW);}{
// si fermeture a l etat haut et que findecoursepushcounter est egal ou inferieur a "0"
// arretée relais fermeture
if ((fermeture == HIGH) && (findecoursePushCounter <= 0)):
digitalWrite (moteurfermeture == LOW);
// si fin de course a l etat haut allumer la led
// sinon eteindre la led
if (findecourse == HIGH):
digitalWrite(led, HIGH);
else //sinon
digitalWrite(led, LOW);
}
mai j ai d autre erreur
TheUnnamedCircuit:108: error: expected constructor, destructor, or type conversion before '=' token
TheUnnamedCircuit:112: error: expected unqualified-id before 'if'
TheUnnamedCircuit:117: error: expected unqualified-id before 'if'
TheUnnamedCircuit:118: error: expected declaration before '}' token
bonjour, j’avais un peut de temps, a tester, je n’ais pas d’arduino sous la main.
Cdt.
Marcus.
// Les constantes ne changent pas durant le programme.
// Utilisée ici pour définir la numéro de la broche :
const int findecourse = 8; // crée un identifiant pour la broche utilisée avec le bouton poussoir
const int led = 13; // crée un identifiant pour la broche utilisée avec la LED
const int programation = 12; // cree un identifiant pour la broche utilisee avec le switch de programation
const int ouverture = 2; // n° broche pour contacteur ouverture
const int fermeture = 3; // n° broche pour contacteur fermeture
const int moteurouverture = 4; // n° broche relais moteur ouverture
const int moteurfermeture = 5; // n° broche relais moteur fermeture
// Les variables sont modifiées au cours du programme
int findecoursePushCounter = 0; // variable pour le comptage du nombre d'appuis sur le bouton poussoir
int findecourseState = 0; //Variable pour l'état actuel du bouton poussoir
int lastFindecourseState = 0; // Variable pour l'état précédent du bouton poussoir
int etatProgramation; //etat de la programation
int compteur = 0; // un compteur
int etatMoteurouverture; // etat actuel du relais ouverture
int etatMoteurfermeture; // etat actuel du relais fermeture
int etatFindecourse; // etat actuel du capteur de fin de course
int etatCompteur; // etat actuel du compteur
int memoire = LOW;
int button1PushCounter;
int findecoursePushcounter;
boolean relaisouverture;
boolean relaisfermeture;
void setup()
{
// met la broche en entrée
pinMode(findecourse, INPUT);
//met la broche en entree
pinMode(programation, INPUT);
// met la broche en sortie
pinMode(led, OUTPUT);
// met la broche en sortie
pinMode(moteurouverture, OUTPUT);
// met la broche en sortie
pinMode(moteurfermeture, OUTPUT);
// met ele broche en entrée
pinMode(ouverture, INPUT);
// met la broche en entrée
pinMode(fermeture, INPUT);
// initialise la communication série
// Attention : utiliser la meme vitesse de communication pour le Terminal Série
Serial.begin(9600);
}
void loop()
{
// lit l'état actuel du bouton poussoir et le mémorise dans la variable
findecourseState = digitalRead(findecourse);
if ((etatProgramation == HIGH) && (etatFindecourse == HIGH))
{
// on incremente le compteur
compteur++;
}
// on enregistre le compteur
memoire = etatCompteur;
// etat actuel du fin de course et memorise dans la variable
findecourseState = digitalRead(findecourse);
// compare l'état actuel du fin de course à l'état précédent mémorisé
if (findecourseState != lastFindecourseState)
{
// si l'état du fin de course a changé et est HAUT et que la fermeture est haut, on incrémente la variable de comptage
if ((findecourseState == HIGH) && (fermeture == HIGH))
{
// si l'état actuel du bouton est HAUT
// il est passé de BAS à HAUT
findecoursePushCounter++;
// affiche les messages sur le PC
Serial.println("ALLUME");
Serial.print("nombre d'appuis: ");
Serial.println(button1PushCounter, DEC); // affiche la valeur au format décimal
}
else
{
// si le bouton courant est BAS
// il est passé de HAUT à BAS :
Serial.println("ETEINT");
}
// memorise l etat courant du fin de course
// pour les prochain passages de la boucle loop
lastFindecourseState = findecourseState;
}
//si etat de la fin de course a changer et est haut et que l ouverture est haut, on decremente la variable de comptage
if ((findecourseState == HIGH) && (ouverture == HIGH))
{
// si l etat actuel de la fin de course est haut
//il est passe de bas a haut
findecoursePushcounter--;
// affiche les messages sur le PC
Serial.println("ALLUME");
Serial.print("nombre d'appuis: ");
Serial.println(button1PushCounter, DEC); // affiche la valeur au format décimal
}
else
{
// si le bouton courant est BAS
// il est passé de HAUT à BAS :
Serial.println("ETEINT");
}
// memorise l etat courant du fin de course
// pour les prochain passages de la boucle loop
lastFindecourseState = findecourseState;
// si ouverture a l etat haut
// mettre le relais ouverture a l eta haut
if (ouverture == HIGH)
{
digitalWrite(relaisouverture, HIGH); // relais a l etat haut
}
// si fermeture a l etat haut
// mettre relais fermeture a l etat haut
if (fermeture == HIGH)
{
digitalWrite (relaisfermeture, HIGH);
}
// si ouverture sur haut
// relais fermeture sur bas
if (ouverture == HIGH)
{
digitalWrite (relaisfermeture, LOW);
}
// si fermeture sur haut
// mettre relais ouverture sur bas
if (fermeture == HIGH)
{
digitalWrite (relaisouverture, LOW);
}
//si ouverture a l etat haut et que findecoursepushcounter est egal ou supperieur au compteur enregistre en programation
//arrete le relais ouverture
if ((ouverture == HIGH) && (findecoursePushCounter >= compteur))
{
digitalWrite(relaisouverture, LOW);
}
// si fermeture a l etat haut et que findecoursepushcounter est egal ou inferieur a "0"
// arretée relais fermeture
if ((fermeture == HIGH) && (findecoursePushCounter <= 0))
{
digitalWrite(relaisfermeture, LOW);
}
// si fin de course a l etat haut allumer la led
// sinon eteindre la led
if (findecourse == HIGH)
{
digitalWrite(led, HIGH);
}
else //sinon
digitalWrite(led, LOW);
}
BOOLEAN:
DESCRIPTION
Une variable de type boolean qui ne peut prendre que deux valeurs : true ou false, VRAI ou FAUX, 1 ou 0, HIGH ou LOW (toutes ces façons de le dire sont équivalentes).
Cdt.
Marcus.