Table des matières:
- Fournitures
- Étape 1: connectez le circuit
- Étape 2: Préparation de la partie buzzer
- Étape 3: Préparation du panneau LED
- Étape 4: Préparation de l'interrupteur (bouton poussoir en fait)
- Étape 5: Préparation de la bande LED
- Étape 6: Préparation du capteur de capacité
- Étape 7: Préparation de l'alimentation
- Étape 8: les connecter à Arduino
- Étape 9: Enceinte
- Étape 10: temps de programmation
- Étape 11: Mécanisme de correction
- Étape 12: Comment utiliser toutes les fonctions
- Étape 13: Conclusion
- Étape 14: Mise à jour: après une semaine d'utilisation
Vidéo: Réveil binaire Arduino DIY : 14 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
C'est à nouveau l'horloge binaire classique ! Mais cette fois avec encore plus de fonctions supplémentaires ! Dans cette instructable, je vais vous montrer comment construire un réveil binaire avec Arduino qui peut vous montrer non seulement l'heure, mais la date, le mois, même avec des fonctions de minuterie et d'alarme qui peuvent également être utilisées comme lampe de chevet ! Sans plus tarder, commençons !
Remarque: Ce projet n'utilise pas de module RTC, la précision dépend donc de la carte que vous avez utilisée. J'ai inclus un mécanisme correctif qui corrigera la dérive temporelle sur une certaine période de temps, mais vous devrez expérimenter pour trouver la valeur correcte pour la période de temps (plus de détails ci-dessous), et même avec un mécanisme correctif, il dérivera toujours sur une longue période (par rapport à sans). Si quelqu'un est intéressé, n'hésitez pas à implémenter l'utilisation du module RTC dans ce projet
Fournitures
LED 5 mm (de n'importe quelle couleur, j'ai utilisé 13 LED blanches avec une LED RVB comme indicateur) --- 14 pcs
Arduino Nano (d'autres peuvent fonctionner) --- 1 pc
Micro-interrupteur --- 1 pc
Petit morceau de papier d'aluminium
Panneau de montage (pour boîtier, mais n'hésitez pas à concevoir le vôtre)
Un morceau de papier blanc (ou toute autre couleur)
Du film plastique (celui utilisé comme couverture de livre)
Un tas de fils
Sonnerie --- 1 pc
Transistor NPN --- 1 pc
Résistances 6k8 --- 14 pièces, 500R --- 1 pièce, 20R (10Rx2) --- 1 pièce, 4k7 --- 1 pièce
Alimentation électrique pour le projet (j'ai utilisé une batterie li-on)
Ruban LED 5050 et interrupteur à glissière (en option)
Étape 1: connectez le circuit
Je vais diviser cette étape en:
1) La partie buzzer
2) Le panneau LED
3) L'interrupteur (bouton poussoir)
4) bande LED
5) Le capteur capacitif
6) Alimentation
7) Connectez-les tous à Arduino
La plupart du temps, il s'agit simplement d'une étape de "suivre le schéma". Alors consultez le schéma ci-dessus ou même téléchargez-le et imprimez-le !
Étape 2: Préparation de la partie buzzer
Si vous avez déjà utilisé le buzzer avec Arduino, vous saurez que si nous le connectons directement à Arduino, il ne sera pas assez fort. Nous avons donc besoin d'un amplificateur. Pour construire l'amplificateur, nous avons besoin d'un transistor NPN (en gros, n'importe quel NPN fonctionnera, j'ai utilisé le S9013 car je l'ai obtenu d'un ancien projet), et une résistance pour limiter le courant. Pour commencer, identifiez d'abord le collecteur, l'émetteur et la base du transistor. Un peu de googler la fiche technique fonctionnera pour cela. Ensuite, soudez le collecteur du transistor à la borne négative du buzzer. À la borne positive du buzzer, nous y soudons juste un morceau de fil afin de pouvoir le souder à notre Arduino plus tard. Après cela, soudez la résistance 500R (ou toute valeur similaire de résistance) à la base du transistor et à partir de la résistance, soudez un autre morceau de fil pour une utilisation future. Enfin, soudez les deux résistances 10R en série à l'émetteur du transistor et connectez un autre fil des résistances.
Vraiment, se référer au schéma.
p/s: Je ne sais toujours pas vraiment comment choisir la résistance pour le transistor au moment où j'écris ceci. La valeur que j'ai utilisée est choisie empiriquement.
Étape 3: Préparation du panneau LED
Branchez les LED et la résistance dans la carte de prototypage en conséquence et soudez. C'est ça. Suivez le schéma. Au cas où vous seriez intéressé par l'espacement que j'ai utilisé, 3 trous séparés pour chaque colonne et deux trous séparés pour chaque rangée (voir photo). Et le voyant LED ? Je l'ai branché au hasard.
Après avoir soudé les LED et la résistance à la carte, connectez toutes les bornes positives des LED ensemble. Ensuite, soudez les fils un par un à chacune des résistances aux bornes négatives des LED afin que nous puissions les souder à Arduino plus tard.
REMARQUE: Vous pourriez être confus à cette étape. N'oubliez pas qu'au lieu de connecter toutes les masses ensemble, nous connectons toutes les bornes positives ensemble et les bornes négatives à la broche individuelle sur Arduino. Ainsi, nous utilisons la broche Arduino GPIO comme masse, pas Vcc. Si vous le connectez accidentellement à l'envers, ne vous inquiétez pas. Vous pouvez modifier tous les HIGH à LOW et LOW à HIGH dans la fonction ledcontrol.
Étape 4: Préparation de l'interrupteur (bouton poussoir en fait)
Pour l'interrupteur (je l'appellerai interrupteur car j'ai utilisé un micro-interrupteur, mais vous savez que c'est un bouton-poussoir), nous avons besoin d'une résistance pull-down 4k7 et bien sûr, l'interrupteur lui-même. Ah, n'oubliez pas de préparer des fils. Commencez par souder la résistance et un morceau de fil à la masse commune (COM) du micro-interrupteur. Ensuite, soudez un autre morceau de fil au normalement ouvert (NO) du micro-interrupteur. Enfin, attachez un autre fil à la résistance. Fixez-le avec de la colle chaude.
Coin des connaissances: Pourquoi avons-nous besoin d'une résistance pull-down ?
"Si vous déconnectez la broche d'E/S numérique de tout, la LED peut clignoter de manière erratique. C'est parce que l'entrée est "flottante" - c'est-à-dire qu'elle retournera aléatoirement soit HAUT ou BAS. C'est pourquoi vous avez besoin d'un pull-up ou résistance pull-down dans le circuit." --Source: site Web Arduino
Étape 5: Préparation de la bande LED
La bande LED est destinée à la lampe de chevet, qui est facultative. Connectez simplement la bande LED et l'interrupteur coulissant ensemble en série, rien de spécial.
Étape 6: Préparation du capteur de capacité
Ok se référer à l'image. Fondamentalement, nous allons simplement attacher le fil à un petit morceau de papier d'aluminium (car le papier d'aluminium ne peut pas être soudé) puis le coller sur un petit morceau de panneau de montage. Rappel gentil, assurez-vous de ne pas coller complètement le papier d'aluminium. Laissez une partie exposée pour un contact direct.
Étape 7: Préparation de l'alimentation
Depuis que j'ai utilisé une batterie li-on comme alimentation, j'ai besoin d'un module TP4056 pour la charge et la protection, et d'un convertisseur boost pour convertir la tension en 9v. Si vous avez décidé d'utiliser un adaptateur mural 9V, vous aurez peut-être besoin d'une prise CC ou simplement de la connecter directement. Notez que la valeur de la résistance de l'amplificateur est conçue pour 9V et si vous souhaitez utiliser une autre tension, vous devrez peut-être changer la résistance.
Étape 8: les connecter à Arduino
Suivez le schéma ! Suivez le schéma ! Suivez le schéma !
Ne connectez pas la mauvaise broche ou les choses deviendront bizarres.
Étape 9: Enceinte
La dimension de ma conception est de 6,5 cm * 6,5 cm * 8 cm, elle est donc un peu encombrante. Il se compose d'une fenêtre avant pour l'affichage LED et d'une fenêtre supérieure pour la lampe de chevet. Pour ma conception, se référer aux images.
Étape 10: temps de programmation
Téléchargez mon croquis ci-dessous et téléchargez-le sur votre Arduino. Si vous ne savez pas comment faire cela, ne vous embêtez pas à faire ce projet ! Non, je plaisante, voici un bon tutoriel à ce sujet: Upload sketch to arduino
Ensuite, ouvrez le moniteur série et vous devriez le voir afficher l'heure actuelle. Pour régler l'heure, voici comment procéder.
Pour régler l'heure: h, XX -- où xx est l'heure actuelle
Pour régler les minutes: min, XX -- xx est la minute actuelle
Pour régler la seconde: s, XX
Pour régler la date: j, XX
Pour régler le mois: lun, XX
Lorsque le commentaire ci-dessus est exécuté, il devrait vous renvoyer la valeur que vous venez de définir. (Par exemple, lorsque vous définissez l'heure avec h, 15, l'heure doit être renvoyée: 15 dans le moniteur série.
Pour le capteur de capacité, vous devrez peut-être le calibrer avant qu'il ne fonctionne. Pour ce faire, appuyez deux fois sur le micro-interrupteur et regardez le moniteur série. Il devrait sortir un tas de nombres. Maintenant, placez votre doigt sur le capteur de capacité et notez la plage du nombre. Ensuite, modifiez la variable "captrigger". Disons que vous obtenez 20-30 lorsque vous appuyez dessus, puis réglez le déclencheur sur 20.
L'esquisse utilise la bibliothèque ADCTouch, assurez-vous de l'avoir installée.
Étape 11: Mécanisme de correction
La période de temps pour le mécanisme de correction dans mon code est définie sur celle qui est exacte pour moi. Si l'heure n'est toujours pas exacte, vous devez modifier la valeur de la variable "corrdur"
Le corrdur est maintenant par défaut à 0 dans la dernière mise à jour.
La valeur de corrdur signifie combien de millisecondes faut-il pour ralentir d'une seconde
Pour connaître la valeur de corrdur, utilisez la formule:
2000/(y-x)/x)
où x=durée réelle du temps écoulé et y=durée du temps écoulé de l'horloge, les deux en secondes
Pour trouver la valeur de x et y, vous devez faire une petite expérience.
Réglez l'heure de l'horloge sur l'heure réelle et enregistrez l'heure initiale (l'heure initiale réelle et l'heure initiale de l'horloge doivent être identiques). Après un certain temps (quelques heures), enregistrez l'heure réelle finale et l'heure finale de l'horloge.
x=heure finale réelle de l'heure initiale et y=heure initiale de l'heure finale de l'horloge
Modifiez ensuite la valeur de corrdur dans le code et retéléchargez-le sur l'Arduino.
Répétez ensuite le test et cette fois, la formule est devenue:
2000/((2/z)+(y-x/x))
Où x et y sont la même chose qu'avant, tandis que z est la valeur corrdur actuelle.
Téléchargez à nouveau et faites le test encore et encore jusqu'à ce qu'il soit suffisamment précis pour vous.
Si votre horloge continue d'accélérer même si corrdur est réglé sur 0 (ce qui signifie qu'il n'y a pas de mécanisme correctif), vous devez changer le second++ en second-- dans la partie mécanisme correctif du code (je l'ai commenté), régler corrdur sur 0, puis trouvez le non. de milliseconde qu'il faut pour accélérer d'une seconde.
Étape 12: Comment utiliser toutes les fonctions
Vous pouvez changer de mode en appuyant sur le micro-interrupteur.
Sur le premier mode, il affiche simplement l'heure. Si le voyant lumineux clignote 1 fois par seconde, l'alarme est désactivée. Si 2 fois par seconde, l'alarme est activée. Vous pouvez répéter l'alarme pendant 10 minutes dans le premier mode en appuyant sur le capteur de capacité.
En deuxième mode, il affiche la date. Appuyer sur le capteur de capacité ne fait rien.
Sur le troisième mode, vous pouvez régler la minuterie. En appuyant sur le capteur de capacité, la minuterie s'allumera et vous devriez voir le voyant commencer à clignoter. Le capteur de capacité est également utilisé pour régler l'heure de la minuterie. La plage de la minuterie est de 1 minute à 59 minutes.
Sur le quatrième mode, vous pouvez régler l'heure de l'alarme à l'aide du capteur de capacité
En cinquième mode, vous pouvez régler les minutes d'alarme à l'aide du capteur de capacité.
En sixième mode, une pression sur le capteur de capacité réinitialisera les minutes à 30 et les secondes à 0 sans changer l'heure. Cela signifie que tant que votre horloge ne dérive pas de plus de 30 minutes, vous pouvez la recalibrer en utilisant ce mode.
Le septième mode est le mode ne rien faire au cas où le capteur de capacité se détériorerait lors de la charge.
Oh, pour désactiver l'alarme, appuyez simplement sur le micro-interrupteur. (DERNIÈRE MISE À JOUR POUR INCLURE L'ALARME SNOOZE)
Eh bien, que diriez-vous de lire l'horloge? C'est facile! Lecture de l'horloge binaire -- Wikihow Vous pourriez vous sentir bizarre au début, mais vous vous y habituerez !
Étape 13: Conclusion
Pourquoi j'ai commencé ce projet. Au départ c'est parce que j'ai une vieille montre digitale qui traîne et que je veux la transformer en réveil. Malheureusement, l'ancienne montre s'est avérée cassée. Alors j'étais comme pourquoi ne pas en construire un en utilisant Arduino? Avec un peu de recherche google, j'ai trouvé ce projet d'horloge binaire sans RTC sur instructable par Cello62. Cependant, il n'a pas la fonction réveil que je veux, alors je prends le code et le modifie moi-même. Et le projet est né. De plus, j'ai vu le concours d'horloge se dérouler sur instructable récemment, ce qui m'a donné encore plus de motivation pour le faire. Quoi qu'il en soit, c'est toujours mon premier projet utilisant Arduino, donc plein d'améliorations possibles.
Amélioration future:
1) Utiliser RTC
2) Réglez l'alarme ou l'heure ou la minuterie sans fil !
3) Quelle que soit la fonctionnalité à laquelle je pense
Étape 14: Mise à jour: après une semaine d'utilisation
Mis à part le problème évident - la dérive temporelle, le prochain, je dirais, est la consommation d'énergie. Tout d'abord, j'augmente la tension jusqu'à 9v, qui sera ensuite abaissée par le régulateur linéaire d'Arduino. Le régulateur linéaire est très inefficace. L'horloge ne dure qu'UN JOUR. Cela signifie que je dois le recharger tous les jours. Ce n'est pas la plus grosse affaire jusqu'à ce que vous réalisiez que l'ensemble du système n'est efficace qu'à environ 50 %. Étant donné que ma batterie est de 2000mAh, je serais en mesure de calculer la puissance gaspillée chaque jour.
Puissance gaspillée=(7.4Wh*10%)+(7.4Wh*90%*50%)=4.07Wh par jour
Soit 1,486 kWh par an ! Qui peut être utilisé pour faire bouillir, euh, 283g d'eau (de 25 C à 100 C) ? Mais de toute façon, je vais améliorer l'efficacité de l'horloge. La façon de le faire est de ne pas utiliser du tout le régulateur linéaire. Cela signifie que nous devons ajuster le convertisseur boost pour produire 5V directement dans la broche 5V sur Arduino. Ensuite, pour minimiser encore plus le gaspillage d'énergie, je dois retirer les deux LED intégrées (broche 13 et alimentation), car elles gaspilleront 0,95 Wh par jour. Malheureusement, je suis totalement novice en soudure SMD, donc la seule façon pour moi de le faire est de couper le rail sur la carte. Après cela, je dois retirer la résistance de l'émetteur sur le buzzer et la lampe de chevet (la bande LED ne fonctionne pas à 5V). Mais cela signifie-t-il que vous devez abandonner cette fonctionnalité incroyable ? Non! Vous avez ici deux choix: utilisez la diode LED normale de 5 mm ou utilisez une bande LED de 5 V. Mais pour moi, je me sentais déjà fatigué d'avoir fait ce projet pendant toute la semaine dernière, alors j'ai décidé d'abandonner cette fonctionnalité. Cependant, j'ai utilisé l'interrupteur à l'origine pour la fonction d'éclairage pour allumer ou éteindre le panneau de l'horloge afin d'économiser davantage d'énergie, mais la LED clignote lorsque je l'éteins. Bug devenu fonctionnalité ? Je ne sais pas (Quelqu'un sait s'il vous plaît dites-moi ci-dessous).
A la fin de la modification, l'horloge dure désormais plus de 2 jours !
Ensuite, j'ai un problème moins grave avec l'horloge. Pendant la charge, le capteur de capacité deviendrait fou, j'ajoute donc un autre mode qui ne fait totalement rien.
En ce qui concerne la dérive temporelle, comme il est très gênant de se connecter à l'ordinateur tous les jours pour le réinitialiser, j'ai ajouté un autre mode qui définira la minute à 30 et la seconde à 0. Cela signifie que vous pouvez le réinitialiser à n'importe quelle heure !
Conseillé:
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
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): 10 étapes (avec photos)
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): Dans mon projet précédent, j'ai développé une balance de salle de bain intelligente avec Wi-Fi. Il peut mesurer le poids de l'utilisateur, l'afficher localement et l'envoyer vers le cloud. Vous pouvez obtenir plus de détails à ce sujet sur le lien ci-dessous : https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Réveil binaire basé sur Arduino : 13 étapes (avec images)
Réveil binaire basé sur Arduino : Hé, aujourd'hui, je voudrais vous montrer comment construire l'un de mes derniers projets, mon réveil binaire. Il existe une tonne d'horloges binaires différentes sur Internet, mais celle-ci pourrait en fait être la première, composée d'une bande de LED adressables colorées