Construire un minuteur à rebours Arduino fiable avec afficheur 7 segments SparkFun
Composants et fournitures
| Plaque d'essai (générique) | ×1 |
| Fils de connexion (générique) | ×1 |
| Afficheur série 7 segments SparkFun - Rouge | ×1 |
| Câble USB-A vers Mini-USB | ×1 |
| Arduino Mega 2560 | ×1 |
Applications et services en ligne
- Arduino IDE
À propos du projet
Ce projet a été conçu spécifiquement parce que je n'avais pas de minuteur sous la main. Pour l'utiliser, il suffit de téléverser le code sur votre Arduino (n'importe quel modèle fonctionnera) et le compte à rebours démarre automatiquement. Si vous souhaitez modifier la durée totale, vous devrez modifier cette partie du code :
long n = 60000; // temps de départ → PEUT ÊTRE MODIFIÉ SELON VOS BESOINS
Rappel important : 1000 = 1 seconde. Donc 60000 = 60 secondes. La formule (SECONDES × 1000) vous donne le nombre à insérer à la place de 60000. Enfin, lorsque vous appuyez sur le bouton de réinitialisation, le compteur redémarre automatiquement.
Code
Code du minuteur à rebours
Utilisez ce code pour faire fonctionner votre minuteur à rebours :
// Configuration des broches de l'afficheur 7 segments
// Broche 11 - A = 12
// Broche 7 - B = 10
// Broche 4 - C = 8
// Broche 2 - D = 7
// Broche 1 - E = 6
// Broche 10 - F = 11
// Broche 5 - G = 9
// Broche 3 = point décimal
// Broche 12 - premier chiffre = 1
// Broche 9 - deuxième chiffre = 2
// Broche 8 - troisième chiffre = 3
// Broche 6 - quatrième chiffre = 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; // temps de départ → MODIFIER SELON VOS BESOINS
int x = 100;
int del = 55; // valeur de délai
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++' pour chronomètre
if (digitalRead(13) == LOW) {
n = 60000; // redémarrage → METTRE LE MÊME TEMPS QU'À L'ORIGINE
}
}
void pickDigit(int x) {
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) {
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);
}
Schéma de câblage
Utilisez ce schéma de connexion pour relier votre afficheur 4 chiffres à votre Arduino.
Processus de fabrication
- Créer un système Ambilight spectaculaire pour moniteur avec Arduino
- Créer un jeu Pong classique sur Arduino UNO avec écran OLED – Tutoriel étape par étape
- Détecteur de fréquence audio Arduino — Mesurer le pic sonore avec module haute sensibilité
- Construisez votre propre Tamagotchi Arduino : Un animal de compagnie numérique DIY
- Interrupteur lumineux sans fil intelligent : Manipulateur d'interrupteur piloté par Arduino
- Morpion sur matrice LED MAX7219 avec boîtier en carton
- Pistolet à eau intelligent à détection de mouvement avec Arduino Nano
- Minuteur de lavage des mains Arduino : un outil DIY simple pour lutter contre le COVID‑19
- Tournesol Arduino : Construisez un Tournesol Électronique Suiveur de Soleil