Inhaltsverzeichnis:

Eine einfache, praktische Arduino Stoppuhr - Gunook
Eine einfache, praktische Arduino Stoppuhr - Gunook

Video: Eine einfache, praktische Arduino Stoppuhr - Gunook

Video: Eine einfache, praktische Arduino Stoppuhr - Gunook
Video: ARDUINO BASICS #15 - Zeitmessung und Batteriebetrieb (Vin) 2024, Juni
Anonim
Eine einfache, praktische Arduino Stoppuhr
Eine einfache, praktische Arduino Stoppuhr

Suchen Sie im Internet nach Arduino Stoppuhr. Sie haben es wahrscheinlich gerade getan, wenn Sie hier sind. Aus eigener Erfahrung kann ich Ihnen sagen, dass jede Stoppuhr im Internet entweder viel zu komplex ist (im Code, für Anfänger) oder viel zu vereinfacht und unpraktisch ist, wie die, die nur Sekunden zählen, ohne sich zurückzusetzen.

Das denkst du auch, oder? Rate mal. Ich habe es getan, und außerdem nehme ich meine Eingabe direkt von der millis()-Funktion - einer endlosen Reihe von Zahlen (bis 49 Tage oder was auch immer). Der beste Teil? Es ist nur eine Zeile.

Das Zurücksetzen ist der eigentliche schwierige Teil der Stoppuhr. Für fortgeschrittene Programmierer, falls Sie es noch nicht getan haben, versuchen Sie es selbst mit Sekunden, Minuten und Stunden zusammen. Sie werden verstehen, wovon ich rede.

Für Anfänger, lesen Sie weiter und genießen Sie das Genie meines Geistes.

Nur ein Scherz, aber die Lösung, die ich gefunden habe, ist ziemlich ordentlich. Hier ist, was es ist:

Schritt 1: Die Lösung

Die Lösung
Die Lösung

Das Problem ist also das Zurücksetzen. Was wir wollen, ist ein kontinuierlicher, sich wiederholender Zahlenzyklus aus einer endlosen Ausgabe von fortlaufenden Zahlen (millis() - es zählt im Grunde Millisekunden, oder tatsächlich 1,024 Millisekunden, aber was auch immer).

Das erste, was mir in den Sinn kommt, ist die Verwendung von Differenzen wie time1 -time2 und einer Verzögerung. Vergess das. Es braucht mindestens sechs Codezeilen und eine if-Anweisung zum Booten.

So geht's. Wir haben eine Grenze (59). Wir möchten, dass sich alles von 0 bis 59 immer wieder wiederholt. Wie?

Was wäre, wenn… wir den Rest… der Millis-Funktion dividiert durch 59… nehmen würden. Bingo!

Also sollte es so sein:

(60 [als Anfangswert, da die Grenze bei 59 liegt] + millis() / 1000 [1000 Millisekunden sind eine Sekunde]) % 60

Okay, lass mich das erklären. (%) oder Modul, ist im Grunde ein Operator wie (+), der den Rest findet. Wie 9 % 2 = 1.

So:

  • Rest von (60 + 0) % 60 = 0
  • Rest von (60 + 1) % 60 =1
  • Rest von (60 + 58) % 60 = 58
  • Rest von (60 + 59) % 60 = 59
  • Rest von (60 + 60) % 60 = 60
  • Rest von (60 + 61) % 60 = 1

Sehen!

Nun zu den Teilen.

Schritt 2: Die Teile

Die Teile
Die Teile

Überhaupt nicht viel

  1. Irgendein Arduino
  2. Jedes Display (ich habe das 0,96-Zoll-OLED verwendet, aber Sie können alles verwenden, was Sie haben, stellen Sie nur sicher, dass Sie die richtigen Variablen in die Anzeigefunktionen Ihres Displays einfügen.)

Das ist es.

Schritt 3: Der Code

Hier geht's. Es ist ziemlich klar kommentiert, also sollte es keine Probleme geben. Die Bibliotheken und die Initialisierung für 0,96 OLED sind im Code enthalten. Ersetzen Sie sie durch Ihr eigenes Display, wenn es anders ist.

// 0,96 OLED-Bibliotheken

#enthalten

#enthalten

#enthalten

#enthalten

// 0,96 OLED-Init

#define OLED_RESET 4

Adafruit_SSD1306-Anzeige (OLED_RESET);

int Sekunden;

int Minuten;

int Stunden;

Leere Einrichtung () {

// Noch mehr 0,96 OLED-Init

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay(); display.setTextSize(2); display.setTextColor (WEISS); }

Leere Schleife () {

Sekunden = (60 + Millis() / 1000) % 60;

Minuten = (60 + Millis() / 60000) % 60; Stunden = (25 + Millis() / 3600000) % 25;

display.clearDisplay();

display.setCursor(0, 22); // die Anzahl der Stunden seit dem Zurücksetzen ausgeben display.print (hours); display.print("h:");

// die Anzahl der miutes seit dem Zurücksetzen ausgeben

display.print (Minuten);

display.print("m:");

// die Anzahl der Sekunden seit dem Zurücksetzen ausgeben display.print (seconds); display.print("s");

display.setCursor(0, 0);

display.print("Stoppuhr"); display.drawLine(0, 18, 128, 18, WEISS); display.display();

}

Schritt 4: En Abschluss…

En Abschluss…
En Abschluss…

Das war's! Jetzt mach damit was du willst. Mal ein paar Eier oder übernimm deine Nachbarschaft.

Prost, Aarush

Empfohlen: