come far lampeggiare un led una sola volta tenendo premuto un pulsante

Ho provato a modificare il codice buttonTest degli esempi in modo tale da far lampeggiare uno dei due led una sola volta mentre tengo premuto un bottone...purtroppo però sembra non riconoscere sempre l'input quindi a volte schiacciando il bottone non succede nulla..come posso risolvere il problema? ecco il codice

const int buttonPin = 2; // the number of the pushbutton pin const int buttonPin2 = 3; const int ledPin = 13; // the number of the LED pin int val; int val2; int val3; int val4;

// variables will change: int buttonState = 0; // variable for reading the pushbutton status int buttonState2 = 0;

void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); pinMode(buttonPin2, INPUT); Serial.begin(9600);

}

void loop(){ // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); buttonState2 = digitalRead(buttonPin2); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: Serial.print(buttonState); Serial.println(buttonState2); delay(100);

val = digitalRead(buttonPin); delay(100); val2 = digitalRead(buttonPin); val3 = digitalRead(buttonPin2); delay(100); val4 = digitalRead(buttonPin2);

if (val == val2){digitalWrite(ledPin, LOW);} if (val3 == val4){digitalWrite(ledPin, LOW);} if (val2 != val) { if (buttonState == HIGH) { // turn LED on: digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); } }

if (val4 != val3){ if (buttonState2 == HIGH) { // turn LED off: digitalWrite(ledPin, HIGH); delay (100); digitalWrite(ledPin, LOW); delay(100); digitalWrite(ledPin, HIGH); delay(100);

}} }

Ciao, dovresti postare nella sezione Software, questo per mantenere in ordine il forum e per dare a gli altri utenti la possibilità di cercare aiuto nella sezione giusta.

Ciao.