kk logo

 Versuche nach genau 5 Sekunden, besser 5000 Millisekunden, auf den Knopf zu drücken. Der Arduino misst die Abweichung und gibt Rückmeldung. Ein gutes Spiel nicht nur für Zeitgefühl und Geduld, sondern auch um zu verstehen wie sinnvoll die Arduino Funktion "Millis" auch in Ardublock ist.

Arduino Anfänger Projekt 5 Sekunden Zeitmessspiel 5

 

Warum überhaupt "millis"

Arduino Anfänger Projekt 5 Sekunden Zeitmessspiel 2Die Funktion millis() ist für Arduino-Projekte entscheidend, da sie echtes Multitasking ermöglicht, ohne den Prozessor durch Pausen zu blockieren. Dadurch bleibt das System jederzeit reaktionsfähig für Sensoren oder Eingaben, während Zeitintervalle effizient im Hintergrund laufen. Ein besonderer Vorteil ist, dass millis() die Zeit seit dem Programmstart automatisch im Hintergrund erfasst, sodass man keine eigenen Zähler oder Timer-Logiken mühsam selbst programmieren muss. Dieser Ansatz verhindert Programmstopps und führt zu deutlich stabilerem, professionellerem Code für komplexe Anwendungen.

 

Spiel 7 aus der 200 Arduino Spiele Sammlung.

 

Arduino Hardware mit 20x4 LCD und Taster

 Ich habe eine Button Leiste verwendet, wer wie hier gezeichnet zwei einzelne Taster verwendet, muss die internen Wiederstände des Arduino verwenden oder 2 Pullup Wiederstände einbauen. Das LCD wird an A4 und A5 angeschlossen, mehr ist es dann auch schon nicht. 

Arduino Anfänger Projekt 5 Sekunden Zeitmessspiel 1

Arduino Programm für das 5 Sekunden Spiel

Das Programm mit Ardublock besteht im wesentlichen aus der Abfrage der beiden Taster, und dem messen der Zeit. 

Arduino Anfänger Projekt 5 Sekunden Zeitmessspiel 3

Der eigentliche "Trick" besteht darin die "millis" Zeit, einfach ab dem Messzeitpunkt immer - (Minus) zu rechnen. Dazu wird der Wert einmalig in einer Variablen gespeichert und dann dann permanent von "millis" abgezogen. Damit wird die Zeit seit Messstart angezeigt und nicht die Zeit seit Start des Arduino. Bei langen Laufzeiten des Arduino natürlich die Größe bzw. Länge der Variablen beachtet werden. 

Arduino Anfänger Projekt 5 Sekunden Zeitmessspiel 4

 Hier nach das Programm für die Arduino IDE

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
bool start = true;
int zeit_minus = 0;
int zeit_aktuell = 0;

void setup() {
pinMode(7, INPUT);
pinMode(6, INPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("press red button");
start = true;

}

void loop() {
if (( !( digitalRead(7) ) && true )) {

start = false;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("press blue button");
lcd.setCursor(0, 1);
lcd.print("to stop by 5000");
zeit_minus = millis();
}
while ( ( start == false ) ) {
zeit_aktuell = ( millis() - zeit_minus );
lcd.setCursor(0, 2);
lcd.print(zeit_aktuell);
if (!( digitalRead(6) )) {

start = true;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("press red button");
lcd.setCursor(0, 2);
lcd.print(zeit_aktuell);
zeit_aktuell = ( zeit_aktuell - 5000 );
lcd.setCursor(0, 3);
lcd.print(zeit_aktuell);
}
}
}

Ronnie

schwäbischer tüftler und bastler, kraftsportler, neurodivers, 45 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

1.2 ronnie berzins

Kontakt

visitenkarte