Étape 2: Le circuit
Le circuit est si simple. Vous aurez besoin :
- Un ATMEGA328P base Arduino, comme Uno, Mini Pro ou Nano.
- Un encodeur rotatif mécanique (par opposition à optique) en quadrature - c’est le type le plus courant donc ne vous inquiétez pas trop s’il n’est pas spécifié. eBay et inscriptions Aliexpress mentionnera souvent Arduino dans la description, et il s’agit d’un bon indicateur que l’une est adaptée.
- Branchement fil/cavalier conduit.
- En option : une carte de prototypage prototypage.
Tout d’abord, recherchez une collection de trois broches d’un côté de l’encodeur. Ce sont les trois pour mesurer la rotation avec notre code. S’il y a deux broches ensemble sur un autre côté, elles risquent d’être pour la touche centre. Nous allons ignorer ces pour l’instant.
Hors les trois broches ensemble, la broche de terre du codeur est connectée à la broche de terre Arduino. Ou l’autre des deux autres broches est connecté à la broche numérique 2 et les autres sur sont relié à la broche numérique 3. Si votre sens de rotation n’est pas comme vous voulez, juste inverser les deux pivots de sol non.
Les broches 2 et 3 sont importantes car sur le Arduinos axée sur les ATMEGA328P qu’ils sont les broches seules qui ont la capacité de détecter la hausse et FALLING broche changer interruptions. Les panneaux de MEGA 2560 etc. ont autres broches d’interruption matérielle qui peuvent faire cela.
Remarque : Dans le diagramme la broche de terre est l’une des broches fin. En réalité, la broche de terre est souvent la broche centrale mais cela n’est pas toujours le cas alors lisez la feuille de données ou tester votre codeur pour savoir quelle goupille est au sol.
Une autre note : ArneTR fait un bon commentaire de ne pas avoir une connexion filaire séparément pour la tension positive logique (par exemple 5 v ou 3,3 v) pour le circuit de l’encodeur rotatif représenté. L’Arduino ne peut pas lire la molette sans un signal au sol (dont nous avons branché un fil) et la tension de la logique (parfois annotées comme CVC ou DMV), alors comment peut-il l’Arduino lire la logique de cet encodeur sans fil tension positive ? La réponse est que la puce ATMEGA328P dans l’Arduino possède un mode spécial, vous pouvez définir sur les broches numériques (que nous utilisons) où une épingle est automatiquement tirée « élevée » à la tension de la logique par une résistance interne. Regarder dans le code pour "pinMode (pinX, INPUT_PULLUP)« à nous voir en disant l’Arduino que nous voulons profiter de ce mode. Une fois réglé, il suffit de fournir l’encodeur avec un fil de terre que les fils de télédétection des broches numériques offrent déjà la tension logique.