minuterie de cuisine Arduino
Composants et fournitures
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 4 | |||
![]() |
| × | 4 | |||
![]() |
| × | 2 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
À propos de ce projet
Au commencement, Dieu créa le ciel et la terre. Et les êtres humains. Et les êtres humains ont créé des minuteries de cuisine numériques, comme celle-ci.

Et les êtres humains ont dit, Cool mais un peu lugubre. Faisons-en un meilleur !
Et Dieu dit, j'ai entendu ton appel, qu'il y ait des Arduinos :et il y avait des Arduinos sur toute la terre, et c'était bien.
Et les êtres humains ont pris un Arduino et ont créé une meilleure minuterie de cuisine, comme celle-ci.

Et Dieu a vu le nouveau minuteur de cuisine et a dit :j'ai vu votre nouveau minuteur de cuisine et il a l'air affreux , mais cela semble trop amusant ! Et c'est bien . :-)
Ce dont vous avez besoin
Maintenant que vous savez d'où vient tout cela, approfondissons-y.
Tous les composants que j'ai utilisés proviennent du Kit de démarrage Arduino , y compris la petite maquette que vous voyez sur les photos et dans la vidéo. N'hésitez pas à intégrer le projet dans un plus grand , si vous le souhaitez.
Vous aurez également besoin d'une source d'alimentation :pour jouer, le port USB et le câble du PC suffiront.
Ce que vous devez faire
Premièrement :veuillez rassembler tous les composants nécessaires dans le kit de démarrage ou dans votre bac à composants préféré ; si vous n'en avez pas, ne paniquez pas. Il y a beaucoup de sur Internet. Vous pouvez trouver la liste des composants ci-dessous.
Et bien, vous aurez aussi besoin du code. C'est dans sa boite, encore en dessous.
Comment ça marche
Fondamentalement, comme tout autre appareil similaire, vous pouvez acheter pour un dollar dans n'importe quel magasin près de chez vous. Mais ce est le vôtre . Et cela vous montrera comment ces petits gadgets fonctionnent réellement.
Le mot-clé ici est :mode actuel . Le minuteur lui-même ne peut fonctionner que dans un des quatre modes à la fois :
- IDLE - la minuterie attend votre entrée, indiquant la durée actuellement définie ; c'est également le mode initial après la mise sous tension ou la réinitialisation.
- SETUP - vous pouvez entrer dans ce mode en appuyant longuement sur S4 (dans le code, cela s'appelle également "bouton de réinitialisation"); ici, en utilisant S3 ("bouton start stop"), vous pouvez choisir la valeur à modifier afin de régler le temps écoulé à décompter ultérieurement ; enfin, en utilisant respectivement S2 ("bouton bas") et S1 ("bouton haut"), vous pouvez diminuer ou augmenter la valeur choisie (heures, minutes ou secondes).
- RUNNING - Vous pouvez entrer dans ce mode en appuyant sur S3, tout en le quittant, il faudra à la fois S3 ou S4 (ce qui vous mènera au mode IDLE).
- SONNERIE - Lorsque la durée souhaitée est écoulée, ce mode est automatiquement activé ; vous pouvez le quitter (c'est-à-dire faire en sorte que le petit garçon arrête de sonner) en appuyant sur n'importe quel interrupteur.
Le code
Tout d'abord, nous devons inclure les bibliothèques appropriées :
#include
#include
Si vous ne les avez pas déjà, vous devrez les télécharger et les installer :
- Paul Stoffregen's Temps Bibliothèque (veuillez télécharger le ZIP à partir du bouton vert "Cloner ou télécharger")
- Bibliothèque Arduino LiquidCrystal
Ensuite, initialiser ce joli module LCD :
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
N'hésitez pas à brouiller les broches à votre guise afin d'obtenir un joli schéma de câblage :ne me suivez pas là-dedans, j'ai fait un terrible plan de câblage ! :D Par exemple, vous pouvez inverser les quatre dernières broches dans la déclaration ci-dessus afin d'éviter le croisement des fils jaunes que vous pouvez voir dans le schéma ci-dessous (évidemment, vous devrez ajuster les constantes des broches du bouton en conséquence, voir ci-dessous). Jouez, amusez-vous ! La vie avec Arduinos commence juste après ce copier/coller !
Les 51 lignes de code suivantes contiennent la déclaration et l'initialisation des variables statiques. N'hésitez pas à les parcourir, leurs noms clairs comme du cristal et quelques commentaires épars vous aideront à comprendre le tout.
La fonction setup () exécute les étapes préliminaires habituelles que vous avez vues des milliards de fois dans n'importe quel croquis Arduino et jusqu'à présent. La seule déclaration notable est la première, qui définira la position initiale du curseur de l'écran LCD. Parce que, oui :ce module vous demande de configurer une position le long de ses lignes et de ses colonnes, puis d'"imprimer" quelque chose, qui apparaîtra à partir de cette position.
Passons maintenant à la fonction loop().
Tout d'abord, découvrons les statuts des switchs. Pour ce faire, le bloc de code suivant est utilisé pour presque chacun d'eux :
/*
* Gestion des boutons Start/Stop
*/
startStopButtonPressed =false;
startStopButtonState =digitalRead(startStopButtonPin);
if(startStopButtonState !=startStopButtonPrevState)
{
startStopButtonPressed =startStopButtonState ==HIGH;
startStopButtonPrevState =startStopButtonState;
}
Un digitalRead est émis contre la broche associée et le résultat est comparé à une valeur précédemment lue :si quelque chose a changé, la nouvelle valeur est stockée pour référence future et la variable statique booléenne "xxxButtonPressed" est définie sur true si le bouton est enfoncé.
En regardant le schéma de circuit ci-dessous, vous remarquerez que chaque broche d'entrée est forcée à LOW par une résistance de 10k à moins que l'interrupteur correspondant ne soit enfoncé et que la broche elle-même soit directement connectée à +5V. Un scénario assez classique, hein ?
Auparavant, je disais "presque chacun d'eux" car il y a un bouton qui agit d'une manière différente des autres :S4. Son bloc de code est capable de détecter l'appui long susmentionné afin d'entrer en mode SETUP.
Vient ensuite le commutateur de bloc de gestion de mode :chaque cas examine les déclencheurs d'état du bouton ("xxxButtonPressed") et redirige le flux vers le nouvel état approprié, ou effectue l'action appropriée.
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)
{
// DÉMARRAGE DE LA MINUTERIE !
startTime =now();
}
}
pause ;
L'extrait de code précédent montre comment le mode IDLE est géré, et il est assez explicite. Un autre exemple montre comment appuyer sur n'importe quel bouton pendant la sonnerie l'arrêtera :
case MODE_RINGING :
if(resetButtonPressed || startStopButtonPressed || downButtonPressed || upButtonPressed)
{
currentMode =MODE_IDLE;
}
break ;
Ça a l'air facile, n'est-ce pas ? :-) Ça l'est.
Le bloc suivant - "Gestion du temps" - effectue le calcul du décalage horaire réel, déclenche le mode SONNERIE et sonne le buzz quand il est temps de le faire.
Le dernier bloc - "Gestion LCD" - gère l'affichage LCD pour chaque mode en imprimant les chaînes appropriées à leurs emplacements appropriés.
C'est tout.
Conclusion et action !
Maintenant que ce petit chiot n'a plus de secrets pour vous, voyons-le en action. Merci d'avoir regardé et amusez-vous bien !
Code
- ArduinoSketch
ArduinoSketchArduino
Schémas
Vous pouvez utiliser n'importe quelle maquette à usage général, y compris le kit de démarrage qui est plus petit que celui illustré ici (le buzzer peut être placé sous les fils jaunes, voir la vidéo et les photos).

Processus de fabrication