Horloge engrenage avec commande de moteur pas à pas de bois (17 / 19 étapes)

Étape 17 : Electronique pour nouveau moteur pas à pas

Les ingrédients électroniques sont les suivantes :

  1. Arduino Uno R3, en fait un DCcduino Uno, ~ $6
  2. Adafruit Stepper moteur NEMA 17-200 étapes/rev - 12V 350mA, 14 $
  3. Adafruit moteur/pas à pas/Servo Shield v2 Kit - v2.3, 20 $
  4. Alimentation plug-in 7.5VDC 400 ma non réglementée, 5 $
  5. ChronoDot Real Rime horloge - v.1 (Adafruit), 18 $
  6. U.S. 0,96" I2C IIC série 128 X 64 LED LCD écran OLED Module pour Arduino blanc (Amazon), 14 $
  7. 9 mini boutons (eBay), $1
  8. 1k Potentiomètre
  9. Haut-parleur piézo
  10. Projet plastique boîte 6 x 4 x 2,5 pouces (MPJA), 5 $

Résumé de l’Arduino croquis de fonctions:

La première partie de l’esquisse définit de nombreuses variables globales et définit les structures pour l’horloge RTC, le pilote de moteur pas à pas, l’écran OLED.

L’horloge RTC, le bouclier de stepper et l’OLED affichent toute utilisation I2C pour la communication. Cela signifie que seulement quatre fils sont nécessaires pour chacune de ces parties.

L’utilisateur peut contrôler plusieurs modes de fonctionnement au moyen de 9 boutons poussoirs.

Au démarrage de l’esquisse et si il est relié à un port USB de l’ordinateur, il synchronise l’horloge RTC avec l’horloge de l’ordinateur. Il devrait être clair, qu’il est judicieux de vérifier tout d’abord que l’horloge de l’ordinateur correspond à la fois rompre comme le NIST. Une fois que l’horloge est réglée, le code associé doit être désactivé afin que le croquis puisse exécuter déconnecté de l’ordinateur.

Ensuite, l’esquisse pénètre dans une section de code dans la boucle permet d’enregistrer les positions de main réelle. L’horloge mécanique ne fonctionne pas en ce moment. Il exécutera jamais par elle-même après un démarrage (peut être causé par une panne de courant). Un bouton poussoir sert à positionner le genre d’un curseur sur l’écran OLED sous l’heure, minute ou seconde. Un second bouton avance la valeur pour l’heure, minute et seconde comme lu postées à main réel.

Pour éviter d’avoir à frapper les lots de bouton « advance » des fois, j’ai généralement mettre manuellement l’aiguille des secondes en position 12:00 ou garder le tournant jusqu'à ce que je reçois une petite valeur à la minute.

Une fois que les chiffres sont définis, un troisième bouton (portant la mention « GO ») quitte la partie du code et qu’il effectue la synchronisation d’une seule fois des mains pour l’horloge RTC

Ceci s’effectue en calculant le nombre d’étapes, que l’horloge mécanique doit être avancé ou retardé et exécute le moteur en mode rapide (et bruyant) pour les étapes requises. Notez que cela peut prendre plusieurs minutes, rendant le réglage pas tout à fait correct. En tout cas, on mesure le temps écoulé pour l’ajustement et un deuxième ajustement est effectué. Encore une fois, on mesure le temps d’exécution et un troisième ajustement est exécuté. En d’autres termes, l’ajustement final tienne compte du fait qu’il faut du temps pour faire les choses.

Après cette étape, les aiguilles de l’horloge seront synchronisés avec l’horloge RTC.

L’horloge RTC, tout en étant censé être précis à moins d’une minute par an, peut éventuellement dériver. 2 boutons poussoir servent à avancer ou retarder l’horloge RTC en une heure (utilisée probablement uniquement lorsque nous changeons de norme à l’avancée de l’époque ou vice versa. 2 boutons plus faire les mêmes pendant la minute. Les 2 boutons pour les secondes se comportent différemment. On définit les secondes à zéro pour les minutes, l’autre définit les secondes à zéro mais avance la minute. Il devrait être évident que les mains mécaniques peuvent devoir aussi être remis à zéro. Donc après que l’horloge RTC a été modifié, on devrait arrêter l’horloge de cyclisme le pouvoir et aller bien le programme d’installation à nouveau.

La normale exécuter section de la boucle envoie une série d’étapes une fois par seconde pour faire avancer le deuxième arbre de 6 degrés. Deux interrupteurs de photo, l’un regardant un seul trou dans le disque de codeur axe, l’autre regardant 60 trous, déclenchent deux interruptions. Ce soit réinitialiser le compteur « position » à zéro ou avancement le décompte chaque seconde. C’est ce qu’on appelle un codeur incrémentiel.

Une une minute, à la marque de 30 secondes, la valeur obtenue par le codeur est comparée à l’horloge RTC et le moteur est ralenti ou accéléré juste pour cette seconde. Il s’occupe de quelque inexactitude mineure de la synchronisation unique qui peut être due à une erreur que vous avez enregistré les positions de la main. Sachez que l’ajustement final peut seulement prendre soin de l’aiguille des secondes.

Ne serait-il pas possible d’en finir avec les procédures d’installation et de réglage plutôt impliqués ? la réponse est oui. Supposons que nous équipés tous les trois axes pour les secondes, minutes et heures codeurs absolus arbre (non différentiels). Veuillez se rendre compte que ceci une conception totalement différente d’un discuté ici. Ces encodeurs arbre auraient besoin de 6 bits chacun pour les secondes et des minutes et 4 bits pour l’heure. Interrupteurs de simple photo ne pouvaient servir. Il faudrait des systèmes optiques ou magnétiques plus complexes avec un total de 16 canaux. Depuis l’Arduino Uno n’a pas que beaucoup d’entrée d’épingles, il faudrait utiliser un Arduino Mega ou pré-traiter les signaux codeur avec, par exemple, les convertisseurs numériques analogique.

En levant beaucoup de matériel pour résoudre le problème, le code de l’Arduino serait très simple. Le code serait maintenant les positions réelles de main en tout temps, même après une panne de courant et a pu conserver l’horloge mécanique synchronisée avec l’horloge RTC, quoi qu’il arrive.

Eh bien, cela peut faire l’objet d’une conception de la future horloge.

Les fichiers inclus contenant l’esquisse de l’Arduino et la collection de la bibliothèque associée.

Notes concernant le téléchargement du fichier Arduino croquis ci-dessous :
Lorsque vous l’enregistrez sur votre ordinateur, il sera affiché dans le dossier téléchargements avec un nom bizarre, ayant beaucoup de lettres et une extension de fichier de « .ino ». Renommez-le en ce que jamais vous aimez mais laisser l’extension intact.
Si vous ouvrez le fichier avec le programme Arduino IDE, il va se plaindre et vous demande si vous souhaitez créer un nouveau dossier d’esquisse et de déplacer le fichier là. Accepter cela. Malheureusement, le nouveau dossier esquisse ne sera pas également dans votre dossier de téléchargement. Déplacez-le vers où vous gardez habituellement vos croquis. Pourtant, l’esquisse est susceptible de ne pas fonctionner étant donné que les bibliothèques sont manquants.
Ouvrez le fichier de dessin (ino) avec WordPad de Windows (pas le bloc-notes). Vous voyez cinq bibliothèques en haut de l’esquisse. Les deux premiers sont inhérentes au logiciel Arduino. Les trois autres doivent être installés dans le dossier bibliothèques
Dans ce cas, également télécharger (le fichier ClockLibaries.zip enregistrer). Encore une fois, le nom de fichier contient un tas de lettres. Vous pouvez ignorer cela et suffit d’extraire les trois dossiers. Ensuite, déplacer ces dossiers dans le dossier bibliothèques de vous Arduino dossier maître.
Maintenant le croquis doit fonctionner très bien.
L’esquisse contient un grand nombre de commentaires expliquant le but de la ligne de code. Je le fais régulièrement dans tous mes croquis non seulement dans le but de cette écriture-up. Ce qui semble évident lors de la conception peut être déroutant si vous revisitez le code un an plus tard.
L’esquisse a été écrite, éditée et exécutée à l’aide de l’Arduino IDE Version 1.6.2. Il a également été testé avec la version 1.6.8 et semble fonctionner très bien. Si vous êtes familier avec les particularités de l’Arduino, vous savez comment gérer les bibliothèques et où mettre vos croquis. J’utilise une configuration un peu orthodoxe, où tant les croquis et les bibliothèques supplémentaires sont conservés sur un serveur de fichiers. Il en va de même pour tous les fichiers de données associés avec CorelDraw, VCarve Pro et les trajectoires d’outil CNC. Ce serveur de fichiers est sauvegardé chaque jour sur les disques externes. De cette façon, mon travail est conservé l’ordinateur principal devrait être endommagé.

Articles Liés

Arduino Nano et Visuino : commande de moteur pas à pas avec codeur rotatif

Arduino Nano et Visuino : commande de moteur pas à pas avec codeur rotatif

Il est parfois nécessaire d'avoir un Moteur pas à pas suivre la rotation d'un Encodeur rotatif pour un positionnement précis. J'ai été l'intention Instructable là-dessus pour une longue période, mais finalement couple de jours après encore une autre
Commander un moteur pas à pas avec le Raspberry Pi et Piface

Commander un moteur pas à pas avec le Raspberry Pi et Piface

Mise à jour avril 2015J'ai fait cela parce que je n'ai trouvé aucun projet à l'aide de la PiFace.Sujet du Forum à www.raspberrypi.org :http://www.raspberrypi.org/phpBB3/viewtopic.php?f=37&t=54314&p=413902Voici un projet simple qui n'a besoin que R
Commander un moteur pas à pas avec un Arduino

Commander un moteur pas à pas avec un Arduino

Ce tutoriel va vous montrer comment faire fonctionner un moteur pas à pas qui a été récupéré d'une vieille imprimante avec un Arduino.Étape 1: Ce qui est un moteur pas à pas ? Un moteur pas à pas se compose de deux parties principales, un rotor et un
Vivant avec Arduino et le L298N H-pont de commande de moteur pas à pas bipolaire

Vivant avec Arduino et le L298N H-pont de commande de moteur pas à pas bipolaire

Le module ci-dessus est une carte de fille L298N que j'ai acheté sur Amazon il y a une semaine, et s'il travaille a été un voyage assez frustrant qui voit enfin une résolution aujourd'hui. Il s'agissait de des principales raisons que j'ai pensé que m
PWM Hardware Arduino pour les commandes de moteur pas à pas

PWM Hardware Arduino pour les commandes de moteur pas à pas

avec notre nouveau projet, JustAddSharks, nous sommes très désireux de soutenir le développement des logiciels libres aux contrôle aux traceurs laser. Nous sommes plus qu'heureux pour les gens de modifier nos coupeurs de laser, de remplacer le systèm
Commande de moteur pas à pas 2 axes Arduino UNO

Commande de moteur pas à pas 2 axes Arduino UNO

ce Instructable explique comment mettre en place un système de contrôle de 2 axes moteur pas à pas à l'aide :- Arduino UNO (~ 30$ US)- Sparkfun Quadstepper (~ 65$ US)-Un couple de démonté les anciens scanners (5 $ chaque)J'ai acheté ces en Nouvelle-Z
Horloge engrenage - avec ChronoDot découpé au laser !

Horloge engrenage - avec ChronoDot découpé au laser !

Cet été, mon hackerspace LVL1 (à Louisville, Ky) a obtenu un http://fslaser.com/40w-deluxe-hobby-laser-engraver-and-cutterimpressionnant laser cutter.  LVL1 est une communauté incroyable de gens créatifs qui aiment construire des choses.  Vous pouvez
CAPTEUR PIR avec ARDUINO activer le moteur pas à pas

CAPTEUR PIR avec ARDUINO activer le moteur pas à pas

ACTIVER LA COMMANDE DE MOTEUR À L'AIDE DU DÉTECTEUR DE MOUVEMENTEtape 1: PIR avec ARDUINO activé moteur pas à pasSalut ce instactable de rotation avant-propos de moteur pas à pas et en arrière quand pir lire certains mouvement.Étape 2: Partie exigent
Arduino Nano et Visuino: 2 moteurs pas à pas avec Joystick de contrôle

Arduino Nano et Visuino: 2 moteurs pas à pas avec Joystick de contrôle

Lorsque vous générez des projets Arduino avec moteurs pas à pas, tels que la machine CNC , plotterou Art animé, il arrive un moment où les steppers doivent être contrôlés manuellement. Analogiques Joysticks sont bon marché et faciles modules pour com
3DOF Ball sur l’utilisation de plaque fermée moteurs pas à pas boucle

3DOF Ball sur l’utilisation de plaque fermée moteurs pas à pas boucle

La balle sur le problème de la plaque se compose d'une plaque plane sur laquelle une balle doit être positionné. Boule de positionnement n'est possible que grâce à l'équilibre instable, où les tout petits changements dans l'angle d'attaque se traduir
ARDUINO commandé par moteur avec bouton rotatif et l293d ou puce SN754410NE

ARDUINO commandé par moteur avec bouton rotatif et l293d ou puce SN754410NE

Commande de moteur est très utile pour beaucoup de projets de bricolage. Dans la plupart des cas, le microcontrôleur peut contrôler tous les mouvements du stepper, mais dans certains cas, vous pouvez contrôler manuellement le moteur pas à pas pour ré
La plus utilisée des commandes de moteur et de ses usages

La plus utilisée des commandes de moteur et de ses usages

Commandes de moteur sont souvent utilisés dans chaque projet. Les signaux émis par le microcontrôleur ne peuvent pas contrôler directement les moteurs DC ou pas à pas. Utilisation pour l'intégration des signaux de l'intégration du pilote pour qui com
Conduire un moteur pas à pas avec un Arduino et un chauffeur de A4988 Stepstick/Pololu

Conduire un moteur pas à pas avec un Arduino et un chauffeur de A4988 Stepstick/Pololu

Il existe plusieurs façons de faire un moteur pas à pas à exécuter, et la meilleure façon dépendra de l'application, le moteur et l'électronique disponibles. Pour faire fonctionner un moteur pas à pas d'un Arduino, ce sont les principaux moyens pour
BRICOLAGE table traçante avec moteurs pas à pas

BRICOLAGE table traçante avec moteurs pas à pas

Un traceur XY est une machine qui permet de contrôler un instrument de traçage (comme un stylo ou un outil de coupe comme une lame ou d'un laser) sur deux axes d'une manière exacte et précise. Machines à commande numérique (CNC) ordinateur sont très