Betrouwbare Arduino Keukentimer met LCD-scherm Bouwen
Onderdelen en Benodigdheden
| Arduino UNO | × | 1 |
| Adafruit Standaard LCD - 16x2 Wit op Blauw | × | 1 |
| SparkFun Drukknop 12 mm | × | 4 |
| Weerstand 10 kΩ | × | 4 |
| Weerstand 220 Ω | × | 2 |
| Enkelvoudige Draaipotentiometer 100 kΩ | × | 1 |
| Buzzer | × | 1 |
| Experimenteerbord (standaard) | × | 1 |
| Draadbruggen (standaard) | × | 1 |
Over dit Project
Deze keukentimer is volledig zelfgebouwd met een Arduino. Het toont niet alleen hoe een commerciële timer werkt, maar biedt ook de vrijeheid om functionaliteit uit te breiden.
Hoe het Werkt: Vier Modi
De timer werkt in één van vier modi:
- IDLE – Wacht op invoer; toont de ingestelde tijd (startmodus na reset).
- SETUP – Activeren door S4 (resetknop) lang ingedrukt te houden. Met S3 (start/stop) kies je uren, minuten of seconden. S1 (omhoog) en S2 (omlaag) passen de waarde aan.
- RUNNING – Start met S3. Stoppen kan met S3 of S4 (terug naar IDLE).
- RINGING – Activeert automatisch wanneer de tijd verstreken is. Elke knop stopt het geluid en keert terug naar IDLE.
Code-structuur
De sketch gebruikt LiquidCrystal.h en Paul Stoffregens TimeLib.h. Belangrijke blokken:
- Knopdetectie –
digitalReadmet flankdetectie (vergelijking met vorige staat). Alle knoppen hebben 10 kΩ pull-down-weerstanden. - Modusbeheer – Een
switch(currentMode)stuurt de toestandsovergangen. - Tijdbeheer – In RUNNING-modus wordt
currentTime = setupTime - (now() - startTime)berekend. Bij ≤ 0 schakelt de timer naar RINGING. - LCD-beheer – Per modus worden de juiste teksten op de juiste positie geprint.
Belangrijk Code-fragment (IDLE-modus)
case MODE_IDLE:
if (resetButtonPressed) Reset();
if (resetButtonLongPressed) currentMode = MODE_SETUP;
if (startStopButtonPressed) {
currentMode = (currentMode == MODE_IDLE) ? MODE_RUNNING : MODE_IDLE;
if (currentMode == MODE_RUNNING) startTime = now();
}
break;
Schema & Aansluiting
De schakeling gebruikt standaard pull-down configuratie: elke knop verbindt de ingresspin met 5 V bij indrukken; de 10 kΩ weerstand houdt de pin anders laag. Het schema toont de aansluitingen voor LCD (pinnen 12, 11, 5, 4, 3, 2), buzzer (pin 10) en de vier knoppen (pinnen 6–9).
Complete Code
/**************************************************
* Arduino Keukentimer v1.0 - 2016/01/27
* Angelo Fiorillo (Rome, IT) - GPL3+
**************************************************/
#include <LiquidCrystal.h>
#include <TimeLib.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int buzzerPin = 10;
const int resetButtonPin = 6;
const int startStopButtonPin = 7;
const int downButtonPin = 8;
const int upButtonPin = 9;
// Variabelen voor tijdinstelling, modi, knopstatussen, etc.
const int MODE_IDLE = 0, MODE_SETUP = 1, MODE_RUNNING = 2, MODE_RINGING = 3;
int currentMode = MODE_IDLE;
void setup() {
lcd.begin(16, 2);
pinMode(resetButtonPin, INPUT);
pinMode(startStopButtonPin, INPUT);
pinMode(upButtonPin, INPUT);
pinMode(downButtonPin, INPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Knoppen uitlezen met flankdetectie...
// Modus-switch...
// Tijd berekenen...
// LCD bijwerken...
delay(10);
}
void Reset() {
currentMode = MODE_IDLE;
currentHours = setupHours;
currentMinutes = setupMinutes;
currentSeconds = setupSeconds;
}
De volledige, gecommentarieerde code is beschikbaar in de originele bron. Let op: TimeLib.h vereist installatie via de Arduino Library Manager.
Productieproces
- Slimme Plantenalarmer – DIY Sensor voor Optimale Hydratatie
- Bouw een 20 kHz Arduino Oscilloscoop op een Nokia 5110 LCD – Eenvoudige DIY Handleiding
- Slimme Jaloezieën: Geautomatiseerd Lichtbeheer met Arduino & Zonne-energie
- Bouw een Italiaanse Woordklok met Arduino Nano, NeoPixel, LCD en RTC
- Bouw een Betrouwbare Arduino Afteltimer met SparkFun 7‑Segment Display
- Bouw een Betrouwbare Sigfox kWh Meter met Arduino MKR Fox 1200
- Bluetooth Temperatuurmeter met Arduino Nano
- Contactloos Gebaarslot: Veilige toegang met APDS-9960 en Arduino
- Arduino Nano Companion Kit – Essentiële Componenten & Hulpmiddelen voor DIY Electronica
- Geïsoleerde analoge ingangsschakeling voor Arduino bouwen
- Precisie Reactietijd Test met Arduino UNO