Wenn du keinen Tilt Switch verwenden möchtest, sondern lieber einen Push-Button, ist das mit ein paar Handgriffen getan. Entferne zunächst den Tilt Switch von deinem Breadboard und ersetze ihn durch einen Button. Auch die Kabel und den Widerstand musst du etwas versetzen. Orientiere dich an folgender Skizze:
Wie du siehst, sitzt dein Button über der Brücke des Breadboards, damit die zwei oberen Pins von den unteren getrennt sind. Die Unterseite des Buttons schließt du an 5V und über einen 10kΩ Widerstand an GND.
Hierbei handelt es sich um ein sogenannten Pulldown-Widerstand. Das bedeutet, du „ziehst“ den Wert, den der Button ausgibt dauerhaft auf 0, also LOW. Diesen Wert liest du an der Oberseite des Buttons über das Kabel am Digitalpin 12 aus. Erst ein Druck auf den Button schaltet das Signal auf HIGH. Würdest du keinen Pulldown-Widerstand verwenden, würde dieser Wert ständig zwischen LOW und HIGH hin- und herspringen – und wäre für deinen Würfel unbrauchbar.
Es gibt übrigens auch den Pullup-Widerstand: Hier „ziehst“ du das Signal auf HIGH, indem du den 10kΩ Widerstand mit 5V verbindest. Ein Druck auf den Button schaltet das Signal also auf LOW.
Der Sketch
Im Sketch musst du nur ein paar kleine Anpassungen vornehmen. Zunächst deklarierst du zwei Variablen für den Anschluss des Signalpins des Buttons und legst dessen Signal zunächst auf 0 fest.
___STEADY_PAYWALL___
int buttonPin = 12;
int buttonState = 0;
In der Setup-Funktion definierst du den pinMode des buttonPin als INPUT:
pinMode(buttonPin, INPUT);
Nun zum Loop. Hier fragst du per digitalRead() das Signal des Buttons ab und speicherst den Wert in der Variablen buttonState. Wenn dieser Wert = 1 ist, der Button also gedrückt wurde, startet die Ermittlung der Zufallszahl, die dann auf deinem Display angezeigt wird.
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
sevseg.setNumber(random(1, 7));
sevseg.refreshDisplay();
}
}
Und das war auch schon alles Du findest den vollständigen Sketch in den Downloads dieser Lektion.