Cuprins:
Video: Codificator rotativ - Înțelegeți și utilizați-l (Arduino / alt controler Μ): 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Un codificator rotativ este un dispozitiv electromecanic care convertește mișcarea de rotație în informații digitale sau analogice. Se poate roti în sensul acelor de ceasornic sau invers. Există două tipuri de codificatoare rotative: codificatoare absolute și relative (incrementale).
În timp ce un codificator absolut generează o valoare proporțională cu unghiul curent al arborelui, un codificator incremental generează pasul arborelui și direcția acestuia (în acest caz avem un codificator incremental)
Codificatoarele rotative devin din ce în ce mai populare, deoarece puteți utiliza două funcții într-un singur modul electric: Un comutator simplu pentru confirmarea operațiilor și codificatorul rotativ pentru a naviga, de ex. printr-un meniu.
Un codificator rotativ incremental generează două semnale de ieșire în timp ce arborele său se rotește. În funcție de direcție, unul dintre semnale îl conduce pe celălalt. (Vezi mai jos)
Pasul 1: Înțelegerea datelor de ieșire
După cum puteți vedea când arborele codificatorului începe să se rotească în sensul acelor de ceasornic, ieșirea A cade mai întâi la LOW și ieșirea B îl urmează. În sens invers acelor de ceasornic, operația se opune.
Acum trebuie doar să implementăm acest lucru pe µController (am folosit un Arduino Nano).
Pasul 2: Construiți circuitul
După cum am descris înainte, ieșirile creează un flanc HIGH și LOW. Pentru a obține un HIGH curat la pinul de date A și B al µController trebuie să adăugăm rezistențe Pull-Up. Pinul comun C merge direct la sol pentru flancul LOW.
Pentru a obține informații despre comutatorul intern (buton) vom folosi ceilalți doi pini. Una dintre ele merge la VCC și cealaltă la un Pin de date al µController. De asemenea, trebuie să adăugăm un rezistor pull-down la pinul de date pentru a obține un LOW curat.
De asemenea, este posibil să utilizați rezistențe interne Pull-Up și Pull-Down ale controlerului dvs. µ!
În cazul meu, pinout-ul arată ca:
- +3, 3V => +3, 3V (Arduino) (de asemenea + 5V posibil)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Pin
11
- C => GND
-
SW =>
Pin
12
Pasul 3: Scrierea codului
int pinA = 10; // comutator intern A int pinB = 11; // comutator intern B int pinSW = 12; // comutați (Encoder apăsat) int encoderPosCount = 0; // începe de la zero, schimbă dacă vrei
int positionval;
bool switchval; int mrotateLast; int mrotate;
configurare nulă () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); întârziere (50); }
void loop () {readencoder (); if (readswitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// butonul se rotește if (digitalRead (pinB)! = mrotate) {// comutatorul A s-a schimbat mai întâi -> rotire în sensul acelor de ceasornic encoderPosCount ++; Serial.println ("rotit în sensul acelor de ceasornic"); } else {// comutatorul B s-a schimbat mai întâi -> rotire în sens invers acelor de ceasornic encoderPosCount--; Serial.println („rotit în sens invers acelor de ceasornic”); }
Serial.print ("Poziția codificatorului"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; returnează codificatorulPosCount; } bool readswitch () {
dacă (digitalRead (pinSW)! = 0) {// comutatorul este apăsat
while (digitalRead (pinSW)! = 0) {} // comutatorul este apăsat în prezent switchval = 1; } else {switchval = 0;} // switch-ul este returnat switchval presat; }
Acum puteți roti codificatorul, iar codificatorul variabil PoCount va conta în sus dacă rotiți în sensul acelor de ceasornic și numărați în jos dacă rotiți în sens invers acelor de ceasornic.
Asta e! Simplu și util.
Simțiți-vă liber să modificați și să efectuați codul. Îl puteți implementa în proiectul dvs.
De asemenea, voi încărca un proiect LED în care am folosit codificatorul pentru a seta luminozitatea LED-urilor mele.
Recomandat:
Timer cu Arduino și codificator rotativ: 5 pași
Temporizator cu Arduino și codificator rotativ: Temporizatorul este un instrument folosit adesea atât în activități industriale, cât și în gospodărie. Acest ansamblu este ieftin și ușor de realizat. Este, de asemenea, foarte versatil, putând încărca un program ales în funcție de nevoi. Există mai multe programe scrise de mine, pentru Ardui
Timer de alimentare cu Arduino și codificator rotativ: 7 pași (cu imagini)
Timer de alimentare cu Arduino și codificator rotativ: Acest timer de alimentare se bazează pe temporizatorul prezentat la: https: //www.instructables.com/id/Timer-With-Arduin … Un modul de alimentare cu energie și un SSR (releu de stare solidă) ) au fost atașate la acesta. Sarcini de putere de până la 1KW pot fi operate și cu modificări minime l
Utilizați un motor pas cu pas ca codificator rotativ: 9 pași (cu imagini)
Utilizați un motor pas cu pas ca codificator rotativ: codificatoarele rotative sunt excelente pentru utilizarea în proiecte de microcontroler ca dispozitiv de intrare, dar performanța lor nu este foarte bună și satisfăcătoare. De asemenea, având o mulțime de motoare pas cu pas de rezervă, am decis să le dau un scop. Deci, dacă aveți un pas cu pas
Cum se folosește motorul pas cu pas ca codificator rotativ și afișaj OLED pentru pași: 6 pași
Cum se folosește motorul pas cu pas ca codificator rotativ și afișaj OLED pentru pași: În acest tutorial vom învăța cum să urmăriți pașii motorului pas cu pas pe afișajul OLED. Urmăriți un videoclip demonstrativ. Creditul pentru tutorialul original este destinat utilizatorului YouTube „sky4fly”
Codificator rotativ folosind Arduino Nano: 4 pași
Codificator rotativ folosind Arduino Nano: Bună tuturor, în acest articol voi face un tutorial despre cum să utilizați un codificator rotativ folosind Arduino Nano. Pentru a utiliza acest codificator rotativ nu aveți nevoie de o bibliotecă externă. Deci putem crea direct programe fără a adăuga mai întâi biblioteci. ok Să începem