Hallo, ich bins wieder. Mir fällt jetzt kein großer Text ein. Ziel ist: Wenn man den Knopf drückt, soll die eine LED angehen.. Ich weiß nur, dass es am Code liegt und nicht an der Schaltung.
int rot = 8;
int gelb = 9;
int gruen = 10;
int Knopf;
void setup() {
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(2,INPUT);
Serial.begin(9600);
}
Leicht abgeänderter Beispiel-Code aus der Arduino IDE (StateChangeDetection)
// this constant won't change:
const int buttonPin = 2; // the pin that the pushbutton is attached to
const int ledPin = 13; // the pin that the LED is attached to
// Variables will change:
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button
void setup() {
// initialize the button pin as a input:
pinMode(buttonPin, INPUT_PULLUP);
// initialize the LED as an output:
pinMode(ledPin, OUTPUT);
// initialize serial communication:
Serial.begin(9600);
}
void loop() {
// read the pushbutton input pin:
buttonState = !digitalRead(buttonPin); // invert, because INPUT_PULLUP
// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
Serial.println("on");
digitalWrite(ledPin, HIGH);
} else {
// if the current state is LOW then the button
// wend from on to off:
Serial.println("off");
digitalWrite(ledPin, HIGH);
}
// Delay a little bit to avoid bouncing
delay(20);
}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState;
}
HotSystems:
Allerdings ist bei diesem einfachen Sketch kein entprellen wirklich notwendig.
Sollte allerdings für zukünftige Sketche berücksichtigt werden.
Sehe ich anders, denn er fragt in der Loop den Schalter ab.
Durch das Prellen ist es nur ein Zufall welcher Zustand erkannt wird :o
Eine Hardwarelösung wäre ein 100nF parallel zum Pullup Widerstand, funktioniert gut.
In diesem Fall bevorzuge ich die Hardware Lösung.
rudirabbit:
Sehe ich anders, denn er fragt in der Loop den Schalter ab.
Durch das Prellen ist es nur ein Zufall welcher Zustand erkannt wird :o
Eine Hardwarelösung wäre ein 100nF parallel zum Pullup Widerstand, funktioniert gut.
In diesem Fall bevorzuge ich die Hardware Lösung.
Das ist klar, das es unterschiedliche Betrachtungsweisen gibt.
Hier gibt es aber nur Taster gedrückt ist Led ein, Taster nicht gedrückt ist Led aus.
Mehr nicht, ausser, die Led blinkt evtl. schnell beim Drücken, was ich aber nicht glaube.
Wie schon geschrieben, in anderen Fällen sieht das anders aus.
Mein Post aus #1 sollte für das einfache Entprellen bereits ausreichen. Ggf. die Zeit von 20 auf 50ms erhöhen. Ansonsten stimme ich den anderen Beiträgen zu. Auf Dauer sollte man sich einen anderen Weg zum Entprellen suchen.
Wobei ich die Variante mit dem Kondensator nur als Notlösung sehe. Sowas ist sehr gut in Software zu machen. Ein paar Zeilen im Sketch sind hier günstiger als für, evtl. sogar mehrere Taster mit den Kondensatoren auszustaten.