Go Down

Topic: 3 switches en 3 leds met 1 druk op knop led aan en blijft aan, (Read 1 time) previous topic - next topic

ArduinoPat

Hallo ,

Ik probeer het even op het NL Forum , in het engels kom ik er even niet mee weg ;-((
Ik heb een sketch waarin ik 3 leds afzonderlijk wil aansturen met 3 aparte switches.
dit heb ik in een array gezet , maar krijg het niet voor elkaar om nu alle drie de switches te gebruiken.
met onderstaans sketch werkt alleen de switch op pin 7 ( input ) met 10 als output.
De pinnen 8 en 9 reageren niet ??

Het is dus de bedoeling dat de schakelaar 1x wordt ingedrukt en de LED aanblijft, daarna weer indrukken en de LED gaat uit.

Dit dus bij drie switches , later zou ik er meer in de index kunnen bijvoegen,

Wie kan mij adviseren hierin ?

Akvast bedankt !!


Code: [Select]
// test 3 BUTTON , with 3 LEDS , Array.
// One Push Button , LED = ON and stay on !!
// After push the button , LED = OFF and stay off !!
// ArduinoPat

int LED [] = {11,12,13};  // the pin for the LED
int BUTTON[] = {7,8,9}; // the input for the BUTTON
                 
int val = 0;      // val will be used to store the state
                  // of the BUTTON pin
int old_val = 0;  // this variable stores the previous
                  // value of "val"
int state = 0;    // 0 = LED off and 1 = LED on

void setup()
{
  for(int index = 0; index < 3; index++)

{
  pinMode(LED[index], OUTPUT);   // tell Arduino LEDS is an output
  pinMode(BUTTON[index], INPUT); // tell Arduino BUTTON is an input
 
  digitalWrite(BUTTON[index],HIGH); // Pull-up Resistor
  }
 
}

void loop(){

    for(int index = 0; index < 3; index)                         
{
  int val  = digitalRead(BUTTON[index]);   // Against bouncing
  if ((val == HIGH) && (old_val == LOW))  // Against bouncing
  {
    state = 1 - state;                   // Against bouncing
    delay(10);                           // Against bouncing
  }

  old_val = val; // val is now old, let's store it

  if (state == 1) {     
    digitalWrite(LED[index], HIGH); // turn LED ON
  }
  else
  {
   digitalWrite(LED[index], LOW); // turn LED OFF
  }
}
}


Groet,

Patrick , ArduinoPat
Patrick ,The Netherlands

rikky

Je zou van de int old_val ook een array kunnen maken, om te beginnen.
En dan de index in de loop een index++ van maken, en zo misschien nog wel wat.

Jantje

Wat zeker mis is is dat je maar 1 state hebt voor 3 leds.
Met vriendelijke groet
Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Go Up