Page 2 sur 5

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:15
par likiki
C'est plus facile a lire quand tu met ton programme dans les balises code (5ème en partant de la gauche ligne du haut). Mais je crois me souvenir qu'il y a plus simple, je te dit cela tout a l'heure.

Code : Tout sélectionner

// ****************************************
// ****** Deux boutons pour une LED *******
// ****************************************
//
const int led = 13 ; // attribution de la broche 13 a led
const int bouton1 = 2 ; // Attribution de la broche 2 à bouton 1
const int bouton2 = 3 ; // Attribution de la broche 3 à bouton 2
int etat_bouton1 ; // variable qui enregistrera l'état du bouton 1 appuyé ou relâché
int etat_bouton2 ; // variable qui enregistrera l'état du bouton 2 appuyé ou relâché
//
void setup()
{
pinMode(led, OUTPUT) ; // La broche led sera utilisée en sortie
pinMode(bouton1||2, INPUT) ; // La broche bouton 1 ou 2 sera utilisée en entré
}
void loop() // cette zone est exécutée en boucle jusqu'à coupure de l'alimentation de la carte
{
etat_bouton1 = digitalRead(bouton1); // Lecture de la broche bouton 1 et enregistrement du resultat dans la variable
etat_bouton2 = digitalRead(bouton2); // Lecture de la broche bouton 2 et enregistrement du resultat dans la variable

if (etat_bouton1||2 == LOW) // Si le bouton est actionné (etat bas de l'entré)
{
digitalWrite(led, HIGH) ; // Allumage de la LED
}
else // Sinon
{
digitalWrite(led, LOW) ; // Extinction de la LED
}

// Fin du programme, a la ligne suivante retour a la ligne void loop
}

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:18
par Georges de Villette
// ****************************************
// ****** Deux boutons pour une LED *******
// ****************************************
//
const int led = 13 ; // attribution de la broche 13 a led
const int bouton1 = 2 ; // Attribution de la broche 2 à bouton 1
const int bouton2 = 3 ; // Attribution de la broche 3 à bouton 2
int etat_bouton1 ; // variable qui enregistrera l'état du bouton 1 appuyé ou relâché
int etat_bouton2 ; // variable qui enregistrera l'état du bouton 2 appuyé ou relâché
//
void setup()
{
pinMode(led, OUTPUT) ; // La broche led sera utilisée en sortie
pinMode(bouton1||2, INPUT) ; // La broche bouton 1 ou 2 sera utilisée en entré
}
void loop() // cette zone est exécutée en boucle jusqu'à coupure de l'alimentation de la carte
{
etat_bouton1 = digitalRead(bouton1); // Lecture de la broche bouton 1 et enregistrement du resultat dans la variable
etat_bouton2 = digitalRead(bouton2); // Lecture de la broche bouton 2 et enregistrement du resultat dans la variable

if (etat_bouton1||2 == LOW) // Si le bouton est actionné (etat bas de l'entré)
{
digitalWrite(led, HIGH) ; // Allumage de la LED
}
else // Sinon
{
digitalWrite(led, LOW) ; // Extinction de la LED
}

// Fin du programme, a la ligne suivante retour a la ligne void loop
}[/code]

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:25
par likiki
Pour ton programme, :bienv:

Pour mettre ton programme sur le forum, voilà un truc cool et rapide.
arduino1.png
arduino1.png (322.85 Kio) Vu 885 fois
Tout est sur la photo. Le résultat ci-dessous.

:super:

Code : Tout sélectionner

/*
  Input Pull-up Serial

  This example demonstrates the use of pinMode(INPUT_PULLUP). It reads a digital
  input on pin 2 and prints the results to the Serial Monitor.

  The circuit:
  - momentary switch attached from pin 2 to ground
  - built-in LED on pin 13

  Unlike pinMode(INPUT), there is no pull-down resistor necessary. An internal
  20K-ohm resistor is pulled to 5V. This configuration causes the input to read
  HIGH when the switch is open, and LOW when it is closed.

  created 14 Mar 2012
  by Scott Fitzgerald

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/InputPullupSerial
*/

void setup() {
  //start serial connection
  Serial.begin(9600);
  //configure pin 2 as an input and enable the internal pull-up resistor
  pinMode(2, INPUT_PULLUP);
  pinMode(13, OUTPUT);

}

void loop() {
  //read the pushbutton value into a variable
  int sensorVal = digitalRead(2);
  //print out the value of the pushbutton
  Serial.println(sensorVal);

  // Keep in mind the pull-up means the pushbutton's logic is inverted. It goes
  // HIGH when it's open, and LOW when it's pressed. Turn on pin 13 when the
  // button's pressed, and off when it's not:
  if (sensorVal == HIGH) {
    digitalWrite(13, LOW);
  } else {
    digitalWrite(13, HIGH);
  }
}

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:27
par herwat
Georges de Villette a écrit : 05 août 2022, 08:05 Une nuit passée la dessus m'amène à çà ?
.
// ****************************************
// ****** Deux boutons pour une LED *******
// ****************************************
//
const int led = 13 ; // attribution de la broche 13 a led
const int bouton1 = 2 ; // Attribution de la broche 2 à bouton 1
const int bouton2 = 3 ; // Attribution de la broche 3 à bouton 2
int etat_bouton1 ; // variable qui enregistrera l'état du bouton 1 appuyé ou relâché
int etat_bouton2 ; // variable qui enregistrera l'état du bouton 2 appuyé ou relâché
//
void setup()
{
pinMode(led, OUTPUT) ; // La broche led sera utilisée en sortie
pinMode(bouton1||2, INPUT) ; // La broche bouton 1 ou 2 sera utilisée en entré
}
void loop() // cette zone est exécutée en boucle jusqu'à coupure de l'alimentation de la carte
{
etat_bouton1 = digitalRead(bouton1); // Lecture de la broche bouton 1 et enregistrement du resultat dans la variable
etat_bouton2 = digitalRead(bouton2); // Lecture de la broche bouton 2 et enregistrement du resultat dans la variable

if (etat_bouton1||2 == LOW) // Si le bouton est actionné (etat bas de l'entré)
{
digitalWrite(led, HIGH) ; // Allumage de la LED
}
else // Sinon
{
digitalWrite(led, LOW) ; // Extinction de la LED
}

// Fin du programme, a la ligne suivante retour a la ligne void loop
}
Deux règles d'or si simple que l'on a parfois du mal à ne pas les oublier :

Ton arduino ne s'appelle pas Georges :
1 - Il ne réfléchit pas, il exécute ! :hhhaaaa:
2 - Il ne sait faire qu'une chose à la fois . . .


Et dans la ligne rouge , tu lui demande au moins deux choses . . .

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:29
par herwat
likiki a écrit : 05 août 2022, 09:25 Pour ton programme, :bienv:

Ah bon, on peut écrire ça ? (La ligne en rouge )

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:34
par likiki
Cela m'a échappé.

Règle d'or n°2, "la règle d'or n°1 a toujours raison". :mdr3:

Surtout avec l'instruction PinMode.

Seul les instructions conditionnel peuvent comporter plusieurs conditions.

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:38
par herwat
likiki a écrit : 05 août 2022, 09:13
jeanjacques a écrit : 04 août 2022, 20:17 Pour moi c'est de l'Hébreu :siffle: :gratte: :sivousme:
Non, ce n'est pas de "l'Hébreu" mais de "l'Arduinesque".

:haaaa:
:mdrmdr:

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:41
par Georges de Villette
Le but du jeu c'était se servir du " ou " ?
.
Résumons nous .
Mon programme est bon ou pas avec le " ou " ?

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:42
par herwat
likiki a écrit : 05 août 2022, 09:34 Cela m'a échappé.

Et le plus rigolo de l'histoire, je viens de passer le programme de Georges au vérificateur Arduino : il ne détecte pas d'erreur . . .

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:46
par Georges de Villette
herwat a écrit : 05 août 2022, 09:42
likiki a écrit : 05 août 2022, 09:34 Cela m'a échappé.

Et le plus rigolo de l'histoire, je viens de passer le programme de Georges au vérificateur Arduino : il ne détecte pas d'erreur . . .
Je l'avais fait Hervé , c'est pour ça que j'ai envoyé ce programme !
Mais alors , bon ou mauvais ,
Vous me paumez les copains !!!!!

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:48
par herwat
Correction
Georges de Villette a écrit : 05 août 2022, 08:05 Une nuit passée la dessus m'amène à çà ?
.
// ****************************************
// ****** Deux boutons pour une LED *******
// ****************************************
//
const int led = 13 ; // attribution de la broche 13 a led
const int bouton1 = 2 ; // Attribution de la broche 2 à bouton 1
const int bouton2 = 3 ; // Attribution de la broche 3 à bouton 2
int etat_bouton1 ; // variable qui enregistrera l'état du bouton 1 appuyé ou relâché
int etat_bouton2 ; // variable qui enregistrera l'état du bouton 2 appuyé ou relâché
//
void setup()
{
pinMode(led, OUTPUT) ; // La broche led sera utilisée en sortie
pinMode(bouton1, INPUT) ; // La broche bouton 1 sera utilisée en entré
pinMode(bouton2, INPUT) ; // La broche bouton 2 sera utilisée en entré

}
void loop() // cette zone est exécutée en boucle jusqu'à coupure de l'alimentation de la carte
{
etat_bouton1 = digitalRead(bouton1); // Lecture de la broche bouton 1 et enregistrement du resultat dans la variable
etat_bouton2 = digitalRead(bouton2); // Lecture de la broche bouton 2 et enregistrement du resultat dans la variable

if (etat_bouton1 == LOW || (etat_bouton2 == LOW )
{
digitalWrite(led, HIGH) ; // Allumage de la LED
}
else // Sinon
{
digitalWrite(led, LOW) ; // Extinction de la LED
}

// Fin du programme, a la ligne suivante retour a la ligne void loop
}

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 09:51
par herwat
Georges de Villette a écrit : 05 août 2022, 09:46
herwat a écrit : 05 août 2022, 09:42
likiki a écrit : 05 août 2022, 09:34 Cela m'a échappé.

Et le plus rigolo de l'histoire, je viens de passer le programme de Georges au vérificateur Arduino : il ne détecte pas d'erreur . . .
Je l'avais fait Hervé , c'est pour ça que j'ai envoyé ce programme !
Mais alors , bon ou mauvais ,
Vous me paumez les copains !!!!!
Le vérificateur ne voit pas les erreurs de raisonnement ! (règle n°1 :-) )
Il est surtout utile pour les erreurs de syntaxe .

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 10:01
par Georges de Villette
Je viens de passer ton programme à la moulinette , il y a un petit couac ?

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 10:17
par likiki
Oui, il y a un couac.

je pense que le couac est là :

if (etat_bouton1 == LOW || (etat_bouton2 == LOW )

il manquerait un ";" a la fin de la ligne.

Je dit ça mais je n'ai pas l'éditeur ARDUINO sur cette machine.

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 10:26
par Georges de Villette
J'ai rajouté le point virgule , çà ne change rien .
.
Capture prog Hervé.PNG
Capture prog Hervé.PNG (36.37 Kio) Vu 866 fois

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 10:33
par herwat
Voilà le programme corrigé

Code : Tout sélectionner

// ****************************************
// ****** Deux boutons pour une LED *******
// ****************************************
//
const int led = 13 ; // attribution de la broche 13 a led
const int bouton1 = 2 ; // Attribution de la broche 2 à bouton 1
const int bouton2 = 3 ; // Attribution de la broche 3 à bouton 2
int etat_bouton1 ; // variable qui enregistrera l'état du bouton 1 appuyé ou relâché
int etat_bouton2 ; // variable qui enregistrera l'état du bouton 2 appuyé ou relâché
//
void setup()
{
pinMode(led, OUTPUT) ; // La broche led sera utilisée en sortie
pinMode(bouton1, INPUT) ; // La broche bouton 1 sera utilisée en entré
pinMode(bouton2, INPUT) ; // La broche bouton 2 sera utilisée en entré
}
void loop() // cette zone est exécutée en boucle jusqu'à coupure de l'alimentation de la carte
{
etat_bouton1 = digitalRead(bouton1); // Lecture de la broche bouton 1 et enregistrement du resultat dans la variable
etat_bouton2 = digitalRead(bouton2); // Lecture de la broche bouton 2 et enregistrement du resultat dans la variable

if (etat_bouton1 == LOW || etat_bouton2 == LOW )
{
digitalWrite(led, HIGH) ; // Allumage de la LED
}
else // Sinon
{
digitalWrite(led, LOW) ; // Extinction de la LED
}

// Fin du programme, a la ligne suivante retour a la ligne void loop
} 
En fait, il y avait une parenthèse de trop

if (etat_bouton1 == LOW || ( etat_bouton2 == LOW )

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 10:36
par likiki
Hervé m'a coupé l'herbe sous les pieds. :mdr1:

Le temps d'installer l'éditeur Arduino et il a trouvé. :3:

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 10:44
par herwat
:hhhaaaa:

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 14:14
par herwat
Georges, quand tu programmes, je te conseille d'avoir toujours sous le coude Cette page
Elle pourra te répondre à bien des questions .

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 16:27
par Georges de Villette
Merci pour le lien Hervé . :cooooool:
.
PS . T'as vu , j'ai laissé tomber les moteurs pas à pas pour le moment .
Ca commençait à me prendre le choux !!! :lollol:

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 16:42
par Georges de Villette
J' ai enlevé la parenthèse ...
Il y a le " Else " qui coince quand on vérifie ?
.
Else qui coince.PNG
Else qui coince.PNG (155.72 Kio) Vu 853 fois

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 16:49
par herwat
Sur cette ligne :
if (etat_bouton1 == LOW || etat_bouton2 == LOW );

Il ne faut pas de ; à la fin . . . .

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 16:54
par Georges de Villette
Vérification faite après avoir enlevé le " ; " , c'est bon !

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 17:36
par herwat
Georges de Villette a écrit : 05 août 2022, 16:27
PS . T'as vu , j'ai laissé tomber les moteurs pas à pas pour le moment .
Ca commençait à me prendre le choux !!! :lollol:
On reprendra plus tard quand tu en aura envie :-) Faut pas oublier qu'on fait ça pour s'amuser . . .
De toute façon, le but est atteint : on sait que les moteurs fonctionnent .

Re: Réponses aux exercices de Georges de Villette

Posté : 05 août 2022, 17:37
par herwat
Georges de Villette a écrit : 05 août 2022, 16:54 Vérification faite après avoir enlevé le " ; " , c'est bon !
Maintenant, il n'y a plus qu'à faire les essais .