Table des matières:
- Étape 1: Instructions de connexion
- Étape 2:
- Étape 3:
- Étape 4:
- Étape 5:
- Étape 6:
- Étape 7:
- Étape 8:
- Étape 9: Instructions de programmation
- Étape 10:
- Étape 11:
- Étape 12:
- Étape 13:
- Étape 14:
Vidéo: Projet de réveil Arduino : 14 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Dans ce projet, nous utiliserons l'Arduino Uno pour contrôler un écran LCD afin d'afficher l'heure et l'heure auxquelles une alarme est réglée. Nous utiliserons des boutons pour régler à chaque fois.
Matériaux:
- Arduino Uno -
- Planche à pain - https://vilros.com/products/planche à pain
- Cavaliers (x13+) -
- Résistances de 10 kohms (x4) -
- Écran LCD -
- 7 boutons -
- Haut-parleur piézo -
Étape 1: Instructions de connexion
1. Connectez un cavalier de la broche 5V de l'Arduino à l'un des rails + de la maquette.
Étape 2:
2. Connectez un cavalier de la broche GND de l'Arduino au rail - à côté du rail + que vous avez choisi sur la maquette.
Étape 3:
3. Connectez l'écran LCD à l'alimentation, à la terre et à la broche TX (broche 1).
Étape 4:
4. Placez 7 boutons sur la planche à pain avec les pieds à travers l'espace dans la planche à pain.
Étape 5:
5. Placez des résistances de 10 kohms du rail - avec la broche GND connectée aux broches en bas à gauche des boutons.
Étape 6:
6. Placez les cavaliers entre la broche en bas à droite des boutons et le rail 5V sur votre maquette.
Étape 7:
7. Placez les cavaliers entre les broches 6, puis 8-13, et la broche du bouton auquel la résistance est connectée.
Étape 8:
8. Ensuite, placez votre enceinte Piezo sur la maquette et connectez la broche 7 à la broche d'alimentation, puis une résistance de 100 ohms à la terre.
Étape 9: Instructions de programmation
1. Vue d'ensemble: ce projet demandera à l'utilisateur de régler l'heure actuelle lors de la mise sous tension initiale de l'écran, l'heure actuelle et l'heure à laquelle l'alarme est définie. Les boutons connectés ci-dessus seront utilisés pour régler à chaque fois. De gauche à droite, ils sont réglés sur l'heure courante, régler la minute courante, régler l'heure AM ou PM courante, régler l'heure de l'alarme, régler les minutes de l'alarme, régler l'alarme AM ou PM. Le dernier bouton est utilisé pour arrêter l'alarme lorsqu'elle sonne.
Étape 10:
2. La première chose que nous devons faire est d'initialiser notre variable que nous allons utiliser.
// Initialise les variables à utiliserint heure = 0; // Heure pour l'heure actuelle int minute = 0; //
Minute pour l'heure actuelle int seconde = 0; // Seconde pour l'heure actuelle
int heure_a = 0; int // Heure pour l'heure de l'alarme
minute_a = 0; // Minute pour l'heure de l'alarme
bool am_pm = false; // Indicateur de bascule AM/PM. Faux est AM, True est PM
bool am_pm_a = false; // Drapeau de bascule AM/PM pour l'alarme. Faux est AM, True est PM
int set_hr = 13; // Utilisez la broche 13 pour régler l'heure
int set_min = 12; // Utilisez la broche 12 pour définir l'entier des minutes
set_am_pm = 11; // Utilisez la broche 11 pour régler am/pm
int set_hr_a = 10; // Utilisez la broche 10 pour régler l'heure de l'alarme int set_min_a = 9; // Utilisez la broche 9 pour définir les minutes de l'alarme int set_am_pm_a = 8; // Utilisez la broche 8 pour régler am/pm pour l'alarme
haut-parleur int = 7; // Pin à utiliser pour speakerint quiet = 6; // Épingle pour arrêter le haut-parleur
bool alarme = faux; // Drapeau à basculer pour continuer à alarmer
bool calmé = faux; // Le drapeau indiquant le silence n'a pas été enfoncé
int cur_time = 0; // Variable pour l'heure actuelle
int heure = 0; // Variable pour le temps écoulé
Étape 11:
3. Ensuite, nous devons configurer l'écran LCD et dire à l'utilisateur de régler l'heure actuelle. Comme cela ne doit être fait qu'une seule fois, nous le ferons dans la routine de configuration.
void setup() {
// Configurer l'écran LCD
Serial.begin(9600); // Initialiser la série à 9600 bauds
Serial.write(17); // Allume le rétro-éclairage
Serial.write(24); // Allume l'affichage, avec curseur et sans clignotement
Serial.write(12); // Effacement de l'écran
Serial.write(128); // Déplacer le curseur dans le coin supérieur gauche // Définir pinModes pinMode(set_hr, SAISIR); pinMode(set_min, INPUT);
pinMode(set_am_pm, INPUT);
pinMode(set_hr_a, INPUT);
pinMode(set_min_a, INPUT);
pinMode(set_am_pm_a, INPUT);
pinMode(haut-parleur, SORTIE);
pinMode(silencieux, INPUT);
// À la mise sous tension initiale, demandez à l'utilisateur de régler l'heure actuelle. Serial.print("Définir l'heure actuelle"); retard (2000);
Serial.write(12);
printTimes();
cur_time = millis(); // Stocke l'heure actuelle}
Étape 12:
4. Ensuite, dans la routine de boucle, nous gardons une trace de l'heure et lisons l'état du bouton pour voir si l'utilisateur règle l'une ou l'autre des heures.
boucle vide() {
// Garde du temps
garde du temps();
// Vérifiez s'il est temps de déclencher l'alarme !
if((heure == heure_a && minute == minute_a && ! calme) || alarme){tone(haut-parleur, 2000, 500); // Émet un son de 2000 Hz vers le haut-parleur pendant 500 ms
retard (500); // Retard 500 ms if(!alarm){ // Si l'alarme est désactivée, activez-la
}
}
// Si l'utilisateur coupe l'alarme en appuyant sur le bouton silencieux, arrête l'alarme if(alarm && !quieted && digitalRead(quiet)){
alarme = faux;
apaisé = vrai; }
// Réinitialise l'alarme if(!alarm && quieted && minute != minute_a){ quieted = false;
}
// Vérifiez si les broches définies sont hautes, et si c'est le cas, incrémentez la valeur correspondanteif(digitalRead(set_hr) && hour < 12){
heure++;
printTimes();
debounce();
}
else if (digitalRead(set_hr) && hour == 12){ hour = 1;
printTimes();
debounce();
}
autre{}
if(digitalRead(set_min) && minute < 59){
minute++;printTimes();
debounce();
}
else if (digitalRead(set_min) && minute == 59){ minute = 0;
printTimes();
debounce();
}
else{}if(digitalRead(set_am_pm) && am_pm){
am_pm = faux;
printTimes();
debounce();
}
else if (digitalRead(set_am_pm) && !am_pm){ am_pm = true;printTimes();
debounce();
}
else{}if(digitalRead(set_hr_a) && hour_a < 12){
heure_a++;
printTimes();
debounce();
}
else if (digitalRead(set_hr_a) && hour_a == 12){hour_a = 1;
printTimes();
debounce();
}
else{}if(digitalRead(set_min_a) && minute_a < 59){
minute_a++;
printTimes();
debounce();
}
else if (digitalRead(set_min) && minute_a == 59){minute_a = 0;
printTimes();
debounce();
}
else{}if(digitalRead(set_am_pm_a) && am_pm_a){
am_pm_a = faux;
printTimes();
debounce();
}
else if (digitalRead(set_am_pm_a) && !am_pm_a){am_pm_a = true;
printTimes();
debounce();
}
autre{}
}
Étape 13:
5. Ici, vous remarquerez quelques sous-programmes que j'ai créés - debounce() et printTimes(). Debounce() est utilisé pour s'assurer que nous ne lisons les boutons qu'une seule fois. Étant donné que l'Arduino scanne des milliers de fois par seconde, il peut penser que le bouton a été enfoncé plusieurs fois alors que vous n'aviez l'intention de le lire qu'une seule fois. Debounce() gèlera le programme jusqu'à ce que le bouton soit relâché. printTimes() met à jour l'écran LCD, mais comme il s'agissait de plusieurs commandes, je les ai tapées une fois, puis je peux appeler le sous-programme à chaque fois qu'une valeur temporelle change.
// Pendant que l'un des boutons est enfoncé, restez dans cette fonction puis retardez 250 ms.
anti-rebond (){
while(digitalRead(set_hr) || digitalRead(set_min) ||
digitalRead(set_am_pm) || digitalRead(set_hr_a) ||
digitalRead(set_min_a) || digitalRead(set_am_pm_a)){} délai (250);
}
// Imprime les heures mises à jour s'il y a des changements
void printTimes(){
Serial.write(12);
Serial.print("Heure actuelle:");
Serial.write(148);
si(heure < 10){
Serial.print("0");
}
Serial.print(heure);
Serial.print(":");
si(minute < 10){
Serial.print("0");
}
Serial.print(minute);Serial.print(":");
si(seconde < 10){
Serial.print("0");
}
Serial.print(second);
si (am_pm){
Serial.print("PM");
}
autre{
Serial.print("AM");
}
Serial.write(168);
Serial.print("Alarme définie pour:");
Serial.write(188);
if(heure_a < 10){
Serial.print("0");
}
Serial.print(hour_a);
Serial.print(":");
if(minute_a < 10){
Serial.print("0");
}
Serial.print(minute_a);
si (am_pm_a){
Serial.print("PM");
}
autre{
Serial.print("AM");
}
}
// Incrémente les paramètres de temps void
garde du temps(){
ettime = millis() - cur_time;
if(etime >= 1000 && seconde < 59){
deuxième++;
cur_time = millis();
printTimes();
}
else if(etime >= 1000 && seconde == 59 && minute < 59){ seconde = 0;
minute++;
cur_time = millis();
printTimes();
}
else if(etime >= 1000 && seconde == 59 && minute == 59 && heure < 12){
seconde = 0; minute =
0; heure++; cur_time =
millièmes (); printTimes();
}
else if(etime >= 1000 && seconde == 59 && minute == 59 && heure == 12){
seconde = 0; minute =
0; heure = 1; am_pm =
!matin après-midi;
cur_time = millis();
printTimes();
}
autre{}
}
Étape 14:
6. C'est tout !
Compilez et téléchargez et vous avez terminé !
Conseillé:
Réveil intelligent utilisant Magicbit (Arduino): 10 étapes
Réveil intelligent à l'aide de Magicbit (Arduino): Ce tutoriel montre comment créer un réveil intelligent à l'aide d'un écran OLED dans la carte de développement Magicbit sans utiliser de module RTC
Le réveil à bulles rend le réveil amusant (ish): 7 étapes (avec photos)
Le réveil à bulles rend le réveil amusant (ish): Se réveiller avec un réveil bourdonnant est nul. Je fais partie de ces personnes qui n'aiment pas se réveiller avant le lever du soleil (ou depuis de nombreuses heures). Alors, quelle meilleure façon de se réveiller en s'amusant qu'une soirée bulle au lit ! Utiliser un arduino et un
Réveil intelligent : un réveil intelligent fabriqué avec Raspberry Pi : 10 étapes (avec photos)
Réveil intelligent : un réveil intelligent fabriqué avec Raspberry Pi : Avez-vous déjà voulu une horloge intelligente ? Si oui, c'est la solution pour vous ! J'ai fait Smart Alarm Clock, c'est une horloge dont vous pouvez changer l'heure de l'alarme en fonction du site Web. Lorsque l'alarme se déclenche, il y aura un son (buzzer) et 2 lumières s'allumeront
Réveil facile : un réveil intelligent à base de Raspberry Pi : 6 étapes
Réveil facile : une lumière de réveil intelligente faite avec Raspberry Pi : IntroPour le programme Project1 je devais faire quelque chose. J'ai toujours été fasciné par la façon dont une lumière de réveil comme celle-ci vous aiderait à vous réveiller comme celles de philips. J'ai donc décidé de faire une lumière de réveil. J'ai fait la lumière du réveil avec un Raspberr
Graveur alimenté par USB ! Ce projet peut brûler à travers les plastiques/bois/papier (le projet amusant doit également être du bois très fin) : 3 étapes
Graveur alimenté par USB ! Ce projet peut brûler à travers du plastique/du bois/du papier (le projet amusant doit également être du bois très fin) : NE PAS FAIRE CELA EN UTILISANT UN USB !!!! J'ai découvert qu'il peut endommager votre ordinateur à partir de tous les commentaires. mon ordinateur va bien. Utilisez un chargeur de téléphone 600ma 5v. Je l'ai utilisé et cela fonctionne bien et rien ne peut être endommagé si vous utilisez une prise de sécurité pour arrêter l'alimentation