Table des matières:

Réveil binaire Arduino DIY : 14 étapes (avec photos)
Réveil binaire Arduino DIY : 14 étapes (avec photos)

Vidéo: Réveil binaire Arduino DIY : 14 étapes (avec photos)

Vidéo: Réveil binaire Arduino DIY : 14 étapes (avec photos)
Vidéo: Fabriquer une horloge en faux tubes Nixie 2024, Juillet
Anonim
Réveil binaire Arduino bricolage
Réveil binaire Arduino bricolage
Réveil binaire Arduino bricolage
Réveil binaire Arduino bricolage
Réveil binaire Arduino bricolage
Réveil binaire Arduino bricolage

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

Connectez le circuit !
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

Préparation de la partie buzzer
Préparation de la partie buzzer
Préparation de la partie buzzer
Préparation de la partie buzzer
Préparation de la partie buzzer
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

Préparation du panneau LED
Préparation du panneau LED
Préparation du panneau LED
Préparation du panneau LED
Préparation du panneau LED
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)

Préparation de l'interrupteur (bouton poussoir en fait)
Préparation de l'interrupteur (bouton poussoir en fait)
Préparation de l'interrupteur (bouton poussoir en fait)
Préparation de l'interrupteur (bouton poussoir en fait)
Préparation de l'interrupteur (bouton poussoir en fait)
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

Préparation de la bande LED
Préparation de la bande LED
Préparation de la bande LED
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é

Préparation du capteur de capacité
Préparation du capteur de capacité
Préparation du capteur de capacité
Préparation du capteur de capacité
Préparation du capteur de capacité
Préparation du capteur de capacité
Préparation du capteur de capacité
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

Préparation de l'alimentation
Préparation de l'alimentation
Préparation de l'alimentation
Préparation de l'alimentation
Préparation de l'alimentation
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

Les connecter à Arduino
Les connecter à Arduino
Les connecter à Arduino
Les connecter à Arduino
Les connecter à Arduino
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

Enceinte
Enceinte
Enceinte
Enceinte
Enceinte
Enceinte
Enceinte
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

Image
Image
Temps de programmation !
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

Image
Image

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

Conclusion
Conclusion
Conclusion
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

Mise à jour: après une semaine d'utilisation
Mise à jour: après une semaine d'utilisation
Mise à jour: après une semaine d'utilisation
Mise à jour: après une semaine d'utilisation
Mise à jour: après une semaine d'utilisation
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é: