Go Down

Topic: 1 Bouton poussoir et 2 LEDs (Read 4170 times) previous topic - next topic

infobarquee

#15
Dec 20, 2014, 01:21 pm Last Edit: Dec 20, 2014, 01:23 pm by infobarquee
relis ton code, tu trouve pas un soucis?
si bp1 enfoncé => led1 allumée
sinon led1 allumée

mais là, tu ne pourras pas allumer une led puis allumer l'autre.
donc repars sur boolean

si true=> allume led1 eteint led11
si false=> inverse
en mettant au départ sur false et le led1 sur off par exemple et l'autre on

mais si mes souvenirs sont bons, le morpion au départ, tout est éteint.
donc tout dois être sur off au départ dans le setup.
AUCUNE AIDE PAR MP

fdufnews

Moi je commencerais par tout mettre sur le papier avant de coder.
Il y a plusieurs entrées à prendre en compte pour gérer l'allumage/extinction des LED.
  • Qui doit jouer pour le choix de la couleur(et la signalisation du joueur actif)
  • La case est-elle déjà allumée (on a pas le droit de modifier une case occupée)
  • Le bouton est-il appuyé (on ne fait rien tant que le bouton est lâché, ensuite on attend le relâché du bouton pour ne pas traiter plusieurs fois l'appui)

2325

Oui j'ai tout écrit mais si ça ne marche pas avec une led ça ne va pas marcher avec les autres.

Du coup j'ai essayé ça
Mais sans résultat :(

Code: [Select]

int led1 = 13;       // LED on pin 5
int bp1 = A0;   // momentary switch on 13, other side connected to ground

boolean running = false;

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(bp1, INPUT);
  digitalWrite(bp1, HIGH);
}

void loop()
{
  if (digitalRead(bp1) == LOW)
  {  // switch is pressed - pullup keeps pin high normally
    delay(500);                        // delay to debounce switch
    running = !running;                // toggle running variable
    digitalWrite(led1, HIGH);      // indicate via LED
  }
}


Merci

infobarquee

si tu suivais les bonnes indications du tuto que tu as repompé ;)
mets ton cablage en photo aussi
ton bouton est connecté à quoi? 5v ou GND?
AUCUNE AIDE PAR MP

2325

Voici l'image de mon montage

http://hpics.li/e3b03fe

Merci

infobarquee

inspire toi de ce tuto déjà
http://reprapide.fr/arduino-tuto
et mets les bonnes pins


Code: [Select]
int ledRouge = 2;         // variables contenant les n° des pins des leds…
   int ledVerte = 3;
   int boutonPoussoir = 8;   // … et du bouton poussoir
 
   boolean etat = false;     // variable qui contiendra l'état d'allumage des leds
   
   void setup ()
   {
   pinMode (ledRouge, OUTPUT);     // on définit comme sorties les pins des leds
    pinMode (ledVerte, OUTPUT);
    digitalWrite (ledVerte, HIGH);  // on allume la led verte
 }
 
 void loop ()
 {
  if (digitalRead (boutonPoussoir) == HIGH)   // si le bouton est appuyé
   {     
     if (etat == true)   // on allume/éteint les leds en fonction de la valeur de etat
      {
     digitalWrite (ledRouge, LOW);
      digitalWrite (ledVerte, HIGH);
     }
    else
    {
        digitalWrite (ledRouge, HIGH);
      digitalWrite (ledVerte, LOW);
     }
    etat = !etat;   // on inverse la valeur de etat
   delay (300);    // on attend un peu
  }
}

AUCUNE AIDE PAR MP

2325

haaaaaaaaa OK

Si j'ai bien compris tu lis le bouton, ensuite tu regardes si il est appuyé dans ce cas là tu allume tel led sinon tu allume l'autre led.
Je viens enfin de comprendre

ok Merci de ton aide infobarquee

:)

infobarquee

haaaaaaaaa OK

Si j'ai bien compris tu lis le bouton, ensuite tu regardes si il est appuyé dans ce cas là tu allume tel led sinon tu allume l'autre led.
Je viens enfin de comprendre

ok Merci de ton aide infobarquee

:)
non tu n'as pas compris.
tu as un état au départ "false".
tu appuie sur le bouton, il passe en état true, tu appuie une autre fois, il passe en false, etc...
donc si false => led1
si true=> led2

c'est comme le commodo des feux route/plein phare sur une voiture
deux actions différentes, une pour true (code) et une autre pour false (plein phare).
AUCUNE AIDE PAR MP

2325

Je viens ENFIN de comprendre
OK Merci pour tout infobarquee

:)

Go Up