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);
}} }