Bouw een Betrouwbare Arduino Afteltimer met SparkFun 7‑Segment Display
Onderdelen en Benodigdheden
| Onderdeel | Aantal |
|---|---|
| Breadboard (generiek) | 1 |
| Draadjes (generiek) | 1 |
| SparkFun 7-Segment Serial Display - Rood | 1 |
| USB-A naar Mini-USB Kabel | 1 |
| Arduino Mega 2560 | 1 |
Apps en Online Services
- Arduino IDE
Over dit Project
Dit project is ontworpen omdat ik geen timer bij de hand had. Je uploadt de code naar je Arduino (elk type werkt) en de aftelling start automatisch. Wil je de totale tijd wijzigen? Pas dan deze regel in de code aan:
long n = 60000; // starttijd → KAN VERANDERD WORDEN IN ELKE GEWENSTE TIJD
Let op! 1000 = 1 seconde. Dus 60000 = 60 seconden. De formule (SECONDEN x 1000) geeft het getal dat je invult bij 60000. Druk je op de reset-knop, dan start de teller opnieuw.
Code
Gebruik deze code voor je afteltimer:
// 7-segment pin nummers - 7-segment licht - Arduino pin nummers
// pin 11 - A = 12
// pin 7 - B = 10
// pin 4 - C = 8
// pin 2 - D = 7
// pin 1 - E = 6
// pin 10 - F = 11
// pin 5 - G = 9
// pin 3 is decimaal
/* 12 11 10 9 8 7
| | | | | |
A --- F
| B | G | ---
E | | C | |
--- . dec D
| | | | | |
1 2 3 4 5 6 */
// pin 12 - eerste digit = 1
// pin 9 - tweede digit = 2
// pin 8 - derde digit = 3
// pin 6 - vierde digit = 4
const int a = 12;
const int b = 10;
const int c = 8;
const int d = 7;
const int e = 6;
const int f = 11;
const int g = 9;
int p = 0;
int startStopReset = 13;
const int d1 = 1;
const int d2 = 2;
const int d3 = 3;
const int d4 = 4;
long n = 60000; // starttijd → KAN VERANDERD WORDEN IN ELKE GEWENSTE TIJD
int x = 100;
int del = 55; // delay waarde
void setup() {
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(d4, OUTPUT);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(p, OUTPUT);
pinMode(startStopReset, INPUT);
digitalWrite(startStopReset, HIGH);
}
void loop() {
digitalWrite(p, HIGH);
clearLEDs();
pickDigit(1);
pickNumber((n/x/1000)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(2);
pickNumber((n/x/100)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(3);
dispDec(3);
pickNumber((n/x/10)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(4);
pickNumber(n/x%10);
delayMicroseconds(del);
n--; // 'n++' voor stopwatch
if (digitalRead(13) == LOW) {
n = 60000; // herstart-tijd → VERANDER NAAR OORSPRONKELIJKE STARTTIJD
}
}
void pickDigit(int x) { // verandert digit
digitalWrite(d1, HIGH);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
digitalWrite(d4, HIGH);
switch(x) {
case 1: digitalWrite(d1, LOW); break;
case 2: digitalWrite(d2, LOW); break;
case 3: digitalWrite(d3, LOW); digitalWrite(p, HIGH); break;
default: digitalWrite(d4, LOW); break;
}
}
void pickNumber(int x) { // verandert waarde van nummer
switch(x) {
default: zero(); break;
case 1: one(); break;
case 2: two(); break;
case 3: three(); break;
case 4: four(); break;
case 5: five(); break;
case 6: six(); break;
case 7: seven(); break;
case 8: eight(); break;
case 9: nine(); break;
}
}
void dispDec(int x) {
digitalWrite(p, LOW);
}
void clearLEDs() {
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(p, LOW);
}
void zero() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
}
void one() {
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
void two() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
void three() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
void four() {
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void five() {
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void six() {
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void seven() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
void eight() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void nine() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
Schema
Gebruik dit verbindingsschema om je 4-digit display met je Arduino te verbinden:

Productieproces
- Bouw een indrukwekkend monitor Ambilight-systeem met Arduino
- Bouw een Klassiek Pong-spel op Arduino UNO met OLED-display – Stap-voor-stap Tutorial
- Arduino Audio Frequentie Detector – Meet de luidste geluidspieken met hoge gevoeligheid
- Bouw Je Eigen Arduino Tamagotchi: Een Digitale Huisdier DIY Project
- Slimme Draadloze Lichtschakelaar Controller: Arduino-gebaseerde Remote Switch Manipulator
- Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing
- Slimme beweegactiverde waterpistool gebouwd met Arduino Nano
- Arduino Handwastimer: Simpele DIY-tool om COVID‑19 te bestrijden
- Arduino Zonnebloem: Bouw een elektronische zon-volgende zonnebloem
- Bouw je eigen RC Porsche-auto met Arduino: Stap-voor-stap handleiding
- Maak Muzikale Tonen met Arduino: Stapsgewijze Handleiding