Go Down

Topic: 2 Boutons Boussoirs et 4 LEDs (Read 5699 times) previous topic - next topic

2325

OK je vais tester merci du coup de main

Mais sinon devoir est à rendre pour vendredi mais j'ai d'autre projet à faire sur d'autre code que l'arduino donc du coup je dois les faire très vite et j'ai en plus mes partiels à réviser

Merci

2325

#16
Dec 22, 2014, 05:24 pm Last Edit: Dec 22, 2014, 07:57 pm by 2325
NON en fait je pense que il y a un truc qui ne va pas surement ça doit venir du logiciel car je fais mes montages avec    123d.circuits.io     car lorsque je met le même code mais avec mes pins et sans le délai de 300 mili-secondes la led bleu scintille bizarrement je ne vois pas pourquoi sachant que lorsque le bouton n'est plus pressé la led bleu devrai s'éteindre

Voici ce que j'ai mis :

Sachant que au dévut j'ai mis

boolean etat = false;

 


Code: [Select]

pinMode (ledR1, OUTPUT);
   pinMode (ledB1, OUTPUT);
   //digitalWrite (ledR1, LOW);
   digitalWrite (ledB1, HIGH);



if (digitalRead (bp1) == HIGH)   // si le bouton est appuyé
   {     
     if (etat == true)   // on allume/éteint les leds en fonction de la valeur de etat
      {
     digitalWrite (ledR1, LOW);
      digitalWrite (ledB1, HIGH);
     }
    else
    {
        digitalWrite (ledR1, HIGH);
      digitalWrite (ledB1, LOW);
     }
etat = !etat;   // on inverse la valeur de etat
   
   }


Merci

infobarquee

AUCUNE AIDE PAR MP

2325

Je vais voir infobarquee mais je ne pense pas :(

2325

En fait il n'y a aucun faux contact avec les équipements lorsque j'appuis sur le premier bouton les 2 LEDs s'allume et la LED bleu a tendance à s'éteindre mais elle ne s'éteint pas ensuite si j'appuis sur le second bouton leds 2 LEDs s'allume mais la led bleu du 1er bouton s'éteint je ne sais pas pourquoi.

Voici une photo de mon montage
http://hpics.li/12e652f

Merci de ton aide infobarquee

fdufnews

#20
Dec 22, 2014, 09:28 pm Last Edit: Dec 22, 2014, 09:28 pm by fdufnews
Moi je pense qu'il faudrait commencer à réfléchir un peu.

Regarde ce que fait ton code si le bp1 est HIGH pour plusieurs itérations de la boucle principale.

2325

#21
Dec 22, 2014, 09:32 pm Last Edit: Dec 22, 2014, 09:36 pm by 2325
Donc du coup faudrait que j'enlève cette fonction :  if (etat == true) ?
Mais dans ce cas là mon programme n'aura plus de sens
Merci

fdufnews

On se pose les questions avant de coder.
Combien d'entrées, combien de sorties
On décrit toutes les relations des unes avec les autres
Et on vérifie son raisonnement

Quand tout semble cohérent on code et pas l'inverse. Sinon c'est n'importe quoi et tu passes des siècles à bricoler un truc boiteux.

2325

Tu as raison fdufnews mais :
j'ai 2 boutons, chaque bouton peut contrôler 2 leds (de couleurs différentes une rouge et une bleu) indépendantes chacune.

Imaginons que j'appuis sur le premier bouton la led rouge du premier bouton s'allume puis si j'appuis sur le second bouton la led bleu s'allume

Et de même si je commence avec le second bouton la led rouge s'allume et si j'appuis sur le premier bouton la led bleu s'allume

En fait je ne vois toujours pas comment faut-il faire ?

Merci

fdufnews

Quote
Imaginons que j'appuis sur le premier bouton la led rouge du premier bouton s'allume puis si j'appuis sur le second bouton la led bleu s'allume
Et si tu appuies une seconde fois sur le premier bouton qu'est-ce qu'il se passe?

2325

#25
Dec 22, 2014, 10:41 pm Last Edit: Dec 22, 2014, 10:42 pm by 2325
En fait si le bouton 1 est sur on les 2 leds s'allument si il repasse sur off la led rouge s'éteint mais la led bleu reste allumée.

Merci

2325

Donc ça marche mais à moitié bizarrement :(

fdufnews

Le sens de la question c'est quel comportement attends-tu du montage dans ce cas.
Ce qu'il faut que tu comprennes c'est que tu dois prévoir tous les cas (même ceux à priori non souhaités) sinon ton code est incomplet et tu as des comportements inattendus.
Par exemple si l'appui sur le bouton est trop long cela peut être vu comme 2 appuis successifs sur le même bouton donc ce cas doit être envisagé et traité.

Si ça marche à moitié ça ne marche pas.

2325

En fait tout simplement si j'appuis sur le bouton x1 la led rouge r1 s'allume, si j'appuis sur le bouton x2 la led r2 s'allume etc

Mais ça ne change rien si je reste appuyé sur le bouton.

Merci

icare

Bonjour,
J'ai l'impression que l'on se trouve dans un cas de "logique séquentielle" et qu'une analyse dans ce sens doit être faite avant tout codage.
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

Go Up