Der Pomoduino Stellen Sie einen Arduino-betriebenen Pomodoro-Timer her

Der Pomoduino Stellen Sie einen Arduino-betriebenen Pomodoro-Timer her / DIY

Die Pomodoro-Technik Durchschneidung mit diesen Pomodoro-Technik-Apps & Software Durchschneidung mit diesen Pomodoro-Technik-Apps & Software Verschleppung ist eine Krankheit, die Schüler und Arbeiter in allen Ecken der Welt durchdringt und Amateure und Profis gleichermaßen infiziert. Als Schriftsteller leide ich täglich an Zaudern. Some people… Read More ist ein beliebtes Zeitverwaltungssystem, bei dem die Arbeit in 25-Minuten-Blöcke mit einer Pause von 5 Minuten aufgeteilt wird. Es gibt verschiedene Software, die Ihnen dabei hilft, aber was ist, wenn Sie das Pomodoro-System verwenden möchten, wenn Sie nicht an Ihrem Computer arbeiten oder sich in Ihrer Workbench befinden? Die Erstellung eines Arduino-betriebenen Pomodoro-Timers ist ein großartiges Einführungsprojekt. 15 Große Arduino-Projekte für Anfänger 15 Große Arduino-Projekte für Anfänger. Interessiert an Arduino, aber nicht sicher, wo Sie anfangen sollen? Hier sind einige unserer besten Arduino-Projekte für Anfänger! Lesen Sie weiter, damit Sie sich in einem Arduino zurechtfinden und tatsächlich etwas Nützliches ergeben.

Das Ziel

Wenn Sie vor dem Vorausschauen herausfinden möchten, wie Sie dies einrichten, versuchen wir Folgendes. Wir haben drei Lichter. eins für “Arbeit,” eins für “brechen,” und ein Warnlicht. Die Arbeitslampe bleibt 25 Minuten lang an, und die Warnlampe ist auch für die letzten zwei Minuten dieses Intervalls eingeschaltet. Nach 25 Minuten erlöschen die Arbeits- und Warnleuchten, und die Bremsleuchte leuchtet 5 Minuten lang auf (die Warnleuchte ist in den letzten zwei Minuten wieder eingeschaltet)..

Ebenfalls enthalten ist eine Taste, die den Wechsel der Beleuchtung um zwei Minuten verzögert, um Ihnen ein wenig zusätzliche Arbeitszeit oder Pausenzeit zu geben.

Was du brauchst

Für dieses Projekt verwenden wir die folgenden Teile, die Sie in Ihrem Starter-Kit haben sollten.

  • Arduino-Mikrocontroller (wir haben eine Mega verwendet, aber Uno würde auch gut funktionieren)
  • Brotschneidebrett
  • USB-Kabel
  • 6 Drähte
  • 3 x 330 Ohm Widerstände
  • 3 x LED (wir haben grün, gelb und blau verwendet)
  • 1 Drucktaste

Schritt 1: Alles einrichten

Setzen Sie jede LED in eine andere Spalte auf dem Steckbrett (am einfachsten, wenn sie etwas auseinanderliegen), und platzieren Sie die Taste etwas weiter unten. Stellen Sie sicher, dass die Schaltfläche in die richtige Richtung zeigt. Auf einer Seite der Schaltfläche befinden sich zwei Sätze von zwei Stiften. Diese Stifte müssen sich in derselben Reihe befinden.

Führen Sie die Kabel von den Pins 5, 7 und 13 zu der Spalte, die den negativen Zweig der blauen, gelben und grünen LEDs enthält (der negative Zweig ist der kürzere der beiden). Setzen Sie als Nächstes einen Widerstand in die gleiche Spalte wie jedes positive Bein und verbinden Sie sie mit der negativen Schiene an der Seite des Steckbretts (die blaue, obwohl die Farbe keine Rolle spielt, es ist nur Konvention, zur Klarheit Blau zu verwenden)..

Führen Sie außerdem einen Draht von der blauen Schiene des Steckbretts zu einem der Beine des Knopfes und einen weiteren Draht vom anderen Bein (auf derselben Seite) zu Pin 2 am Arduino. Dann erden Sie die blaue Schiene in den GND-Stift des Arduino.

Hier ist ein Diagramm, das Verwirrung aufklären sollte:

Das ist es! Nun zur Programmierung.

Programmieren Ihres Arduino

Nachfolgend finden Sie den Code für den Pomoduino-Timer - lesen Sie die Inline-Kommentare, um zu erklären, was die einzelnen Schritte des Codes tun.

 int grün = 13; int gelb = 7; int blau = 5; int ledStateGreen = LOW; int ledStateBlue = LOW; long previousMillis = 0; langes Intervall; int buttonPin = 2; int buttonState = 1; bool gedrückt = 0; lange Zeit drücken = 0; int phase = 0; void setup () pinMode (grün, AUSGABE); pinMode (gelb, AUSGABE); pinMode (blau, AUSGABE); pinMode (buttonPin, INPUT_PULLUP); digitalWrite (buttonPin, HIGH);  void loop () // aktuelle Uhrzeit und Zustand der Schaltfläche aktualisieren unsigned long currentMillis = millis (); int buttonState = digitalRead (buttonPin); // Zeit seit dem letzten Tastendruck messen langer Fortschritt = currentMillis - previousMillis; // Prüfen Sie, ob die Taste // seit dem letzten Drücken von mehr als zwei Sekunden gedrückt wurde // (um zu verhindern, dass sich mehrere Male drückt) if ((pressTime - currentMillis)> 2000) if (buttonState == 0) gedrückt = 1; pressTime = currentMillis; else gedrückt = 0; // Phase 0 ist "Arbeitsphase" // Wenn die Taste gedrückt wurde, addieren Sie 2 Minuten zum Arbeitstimer, wenn (Phase == 0) if (gedrückt == 1) ) Intervall = 1620000; // Wenn das Intervall abgelaufen ist, wird die aktuelle // Zeit für die Messung des nächsten Intervalls aufgezeichnet. if (currentMillis - previousMillis> Intervall) previousMillis = currentMillis; // setze grüne und blaue LED-Zustände, wenn (ledStateGreen == LOW) ledStateGreen = HIGH; ledStateBlue = LOW; else ledStateGreen = LOW; // LED-Zustände auf LEDs anwenden // Intervall zurücksetzen und in die Phase "break" wechseln digitalWrite (grün, ledStateGreen); digitalWrite (blau, ledStateBlue); Intervall = 1500000; buttonState = 1; Phase = 1;  else // Wenn die Taste gedrückt wurde, fügen Sie 2 Minuten hinzu, um den Timer zu unterbrechen, wenn (gedrückt == 1) Intervall = 420000; // Wenn das Intervall abgelaufen ist, notieren Sie die aktuelle Zeit für die Messung des nächsten Intervalls, wenn (currentMillis - previousMillis> Intervall) previousMillis = currentMillis; // setze blaue und grüne LED-Zustände, wenn (ledStateBlue == HIGH) ; ledStateBlue = LOW;  else ledStateBlue = HIGH; ledStateGreen = LOW; // LED-Status auf LEDs anwenden // Intervall zurücksetzen und auf Arbeitsphase einstellen digitalWrite (grün, ledStateGreen); digitalWrite (blau, ledStateBlue); Intervall = 300000; buttonState = 1; Phase = 0;  // Berechne die verbleibende Zeit im Intervall vorzeichenlose LangzeitLänge = (Intervall - Fortschritt); // Wenn weniger als zwei Minuten übrig sind, leuchtet die gelbe LED auf (timeLeft < 120000)  digitalWrite(yellow, HIGH);  else  digitalWrite(yellow, LOW);  // reset pressed variable pressed = 0; 

Hinweis: Wenn Sie dies testen, möchten Sie wahrscheinlich nicht 25 Minuten warten, um zu sehen, ob es funktioniert. Im folgenden Video habe ich die Intervalle auf 5 Sekunden für Grün, 2 Sekunden für Blau und 1 Sekunde für Gelb eingestellt. Verwenden Sie ein kürzeres Intervall, um sicherzustellen, dass alles korrekt funktioniert, bevor Sie es verwenden, um die Zeit zu verfolgen!

Sobald Sie alles verdrahtet und den Code in die IDE eingegeben haben, können Sie loslegen! Laden Sie die Skizze hoch und Sie haben einen funktionierenden Pomodoro-Timer mit einer 2-Minuten-Verzögerungstaste. Wenn die Warnlampe aufleuchtet und Sie mehr Zeit benötigen, drücken Sie einfach die Taste.

Möglicherweise stellen Sie fest, dass die Taste direkt mit dem Arduino-Eingangspin verbunden ist. Wenn Sie einen der Pullup-Widerstände verwenden, die im Arduino integriert sind, müssen Sie keinen Draht vom 5-V-Anschluss zum Taster führen oder einen entsprechenden Widerstand verwenden. Weitere Informationen finden Sie in der Arduino-Referenz für digitale Pins.

Fortgeschrittene Herausforderungen

Wenn Sie Ihr Pomoduino hergestellt haben und etwas Fortgeschrittenes suchen, können Sie Folgendes versuchen:

  • Fügen Sie eine Reihe von LEDs hinzu, die aufleuchten und als Zähler für die Anzahl abgeschlossener Arbeitssitzungen dienen
  • Lassen Sie die Taste für jeden Tastendruck zwei Minuten zum Timer hinzufügen
  • Fügen Sie einen Lautsprecher hinzu und spielen Sie ein Geräusch, wenn es wieder an die Arbeit geht
  • Verwenden Sie einen 9-V-Akku, um ihn tragbar zu machen
  • Anstelle eines Warnlichts blinken Sie vor dem Umschalten eine Minute lang das grüne oder blaue Licht
  • Anzeige eines Countdowns auf einer LED-Anzeige

Andere großartige Anfängerprojekte

Wenn Sie neu bei Arduino sind, haben wir viele lustige Tutorials für Sie. Probieren Sie einen Ampel-Controller aus. Arduino-Programmierung für Anfänger: Der Ampel-Controller Arduino-Programmierung für Anfänger: Der Ampel-Controller In der letzten Woche haben wir die Grundstruktur eines Arduino-Programms kennen gelernt und uns das Blink-Beispiel genauer angesehen. Hoffentlich haben Sie die Gelegenheit genutzt, mit Code zu experimentieren und die Timings anzupassen. Dieses Mal… Lesen Sie weiter, ein futuristischer LED-Würfel Wie man einen pulsierenden Arduino-LED-Würfel herstellt, der so aussieht, als wäre er aus der Zukunft gekommen Wie man einen pulsierenden Arduino-LED-Würfel herstellt, der so aussieht, als wäre er aus der Zukunft gekommen Wenn Sie sich mit einigem beschäftigt haben Anfänger Arduino-Projekte, aber auf der Suche nach etwas etwas Dauerhaftigkeit und auf einer ganz anderen Ebene der Wahnsinn, dann ist der bescheidene 4 x 4 x 4 LED-Würfel… Lesen Sie mehr, ein Sonnenaufgangsalarm Arduino Nachtlicht und Sonnenaufgangswarnprojekt Arduino Nachtlicht und Sunrise Alarm Project Heute stellen wir einen Sonnenaufgangswecker her, der Sie sanft und langsam weckt, ohne auf eine anstößige Geräuschmaschine zurückzugreifen. Lesen Sie mehr oder ein Alarmsystem So erstellen Sie ein einfaches Arduino-Alarmsystem So erstellen Sie ein einfaches Arduino-Alarmsystem Erkennen Sie Bewegungen und erschrecken Sie einen Eindringling mit hochtönenden Alarmtönen und blinkenden Lichtern. Klingt das nach Spaß? Natürlich tut es das. Dies ist das Ziel des heutigen Arduino-Projekts, geeignet für… Lesen Sie mehr. Wenn Sie sich für eine der oben genannten fortgeschritteneren Herausforderungen entscheiden, lassen Sie uns wissen, wie es läuft!

Erfahren Sie mehr über: Arduino, Zeitmanagement, Timer-Software.