Ich habe diesen Attiny85
An den Anschlüssen P3, P4 und P5 habe ich ein Button ohne Pullup Widerstand angeschlossen.
von dieser Seite habe ich mir die Infos über den Anschluss von Buttons geholt.
Ich habe die Buttons einfach zwischen GND und dem jeweiligen Pin geschaltet.
Zunächst habe ich das mit einem Button getestet, dass hat auch funktioniert.
Dann habe ich Button2 und Button3 angeschlossen und Programmiert und das hat nicht funktioniert.
Ich habe viel herum probiert. Dann habe ich an Button2 ein 10K Widerstand zu Vcc angeschlossen. Dann hat Button2 funktioniert ohne das ich was im Code geändert habe.
Button 3 bekomme ich aber absolut gar nicht zum funktionieren.
Ich verstehe die Logik nicht. Warum muss ich für Button2 ein externen PullUp nutzen aber für Button1 nicht? Undd warum geht Button3 gar nicht?
Hier der Code, ist nur zum testen:
Button 3 ist hier nicht enthalten aber der war genau so programmiert. Angeschlossen ist Button3 an P5 und die LED sollte dann 3 mal blinken. Aber wie gesagt, dass hat nicht funktioniert.
const int led = 1;
const int button1 = 3;
const int button2 = 4;
int button1_state;
int button2_state;
void setup() {
pinMode(led, OUTPUT);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
}
void loop() {
button1_state = digitalRead(button1);
button2_state = digitalRead(button2);
if (button1_state == LOW) {
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
}
if (button2_state == LOW) {
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
}
}
Mit diesem Code funktioniert Button1 und Button2. Wobei ich bei Button2 ein externen 10k Pullup anschliessen muss.
Warum muss ich bei Button2 ein externen PullUp anschliessen und warum funktioniert Button3 weder mit noch ohne externen PullUp?