Indholdsfortegnelse:
Video: Rotary Encoder - Forstå og brug det (Arduino/anden ΜController): 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
En roterende encoder er en elektromekanisk enhed, der konverterer rotationsbevægelse til digital eller analog information. Den kan dreje med eller mod uret. Der er to typer roterende encodere: Absolutte og relative (inkrementelle) encodere.
Mens en absolut encoder udsender en værdi, der er proportional med den aktuelle akselvinkel, sender en inkrementel encoder trin af akslen og dens retning. (I dette tilfælde har vi en inkrementel encoder)
Rotary encoders bliver mere og mere populært, fordi du er i stand til at bruge to funktioner i et elektrisk modul: En enkel switch til bekræftelse af drift og den roterende encoder til at navigere, f.eks. gennem en menu.
En inkrementel roterende encoder genererer to udgangssignaler, mens akslen roterer. Afhængigt af retningen fører det ene af signalerne det andet. (se nedenunder)
Trin 1: Forstå outputdata
Som du kan se, når encoderakslen begynder at rotere med uret, falder Output A først til LOW og Output B følger den. I retning mod uret vender operationen modsat.
Nu skal vi bare implementere dette på vores µController (jeg brugte en Arduino Nano).
Trin 2: Byg kredsløbet
Som jeg beskrev før, skaber output en HIGH og en LOW flanke. For at få en ren HIGH ved datapinden A og B på µController skal vi tilføje Pull-Up modstande. Den almindelige Pin C går lige til jorden for den LAVE flanke.
For at få oplysninger om den interne switch (trykknap) bruger vi de to andre ben. En af dem går til VCC og den anden til en datapind på µController. Vi skal også tilføje en pull-down-modstand til datapinden for at få en ren LOW.
Det er også muligt at bruge interne Pull-Up og Pull-Down modstande på din µController!
I mit tilfælde ser pinout ud:
- +3, 3V => +3, 3V (Arduino) (også +5V mulig)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Pin
11
- C => GND
-
SW =>
Pin
12
Trin 3: Skrivning af koden
int pinA = 10; // intern switch A int pinB = 11; // intern switch B int pinSW = 12; // switch (trykket Encoder) int encoderPosCount = 0; // starter ved nul, skift hvis du vil
int positionval;
bool switchval; int mrotateLast; int mrotate;
ugyldig opsætning () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); forsinkelse (50); }
void loop () {readencoder (); hvis (readwitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); hvis (mrotate! = mrotateLast) {// knap roterer hvis (digitalRead (pinB)! = mrotate) {// switch A først ændret -> roterer med uret encoderPosCount ++; Serial.println ("roteret med uret"); } ellers {// switch B ændret først-> rotere mod uret encoderPosCount--; Serial.println ("drejet mod uret"); }
Serial.print ("Encoder Position:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; return encoderPosCount; } bool readwitch () {
hvis der trykkes på (digitalRead (pinSW)! = 0) {// switch
mens (digitalRead (pinSW)! = 0) {} // switch er trykket på switchval = 1; } ellers {switchval = 0;} // switch er upresset return switchval; }
Nu kan du dreje encoderen, og variablen encoderPosCount tæller op, hvis du roterer med uret og tæller ned, hvis du roterer mod uret.
Det er det! Simpelthen og nyttigt.
Du er velkommen til at ændre og udføre koden. Du kan implementere det i dit projekt.
Jeg vil også uploade et LED -projekt, hvor jeg brugte encoderen til at indstille lysstyrken på mine LED'er.
Anbefalede:
Rotary Encoder: Hvordan det fungerer og hvordan det bruges med Arduino: 7 trin
Rotary Encoder: Hvordan det fungerer og hvordan det bruges med Arduino: Du kan læse dette og andre fantastiske selvstudier på ElectroPeaks officielle websted Oversigt I denne vejledning får du at vide, hvordan du bruger den roterende encoder. Først kan du se nogle oplysninger om roterende encoder, og derefter lærer du, hvordan du
Raspberry Pi Oled Clock Se det Hør det og mærk det: 5 trin (med billeder)
Raspberry Pi Oled Clock Watch It Hear It and Feel It: Dette er et smart ur, der viser tiden på et OLED -display, og du kan også høre tid på forskellige tidsintervaller, der er fuld for blinde, og det ændrer også LED -farven med tiden som lys i skumringen lys om aftenen bliver orange til gult og kan lide
Skriv det ! Lav det ! Del det!: 4 trin
Skriv det ! Lav det ! Del det!: Mine elever har brugt Legos til at tilføre kreativitet til deres skrivning, tilrettelæggelse af skrivning og til at fremvise deres arbejde digitalt med deres familie og med deres jævnaldrende i klassen
Sådan får du musik fra næsten ethvert (Haha) websted (så længe du kan høre det, kan du få det Ok fint, hvis det er integreret i Flash, kan du muligvis ikke være) REDIGERET !!!!! Tilføjet info: 4 trin
Sådan får du musik fra næsten ethvert (Haha) websted (så længe du kan høre det, kan du få det … Ok fint, hvis det er integreret i Flash, kan du muligvis ikke være) REDIGERET !!!!! Tilføjet info: Hvis du nogensinde går til et websted, og det afspiller en sang, du kan lide og vil have det, så er det instruerbart for mig, det er ikke min skyld, hvis du ødelægger noget (den eneste måde det vil ske på, er hvis du begynder at slette ting uden grund) ) Jeg har kunnet få musik til
Vandtætte højttalere, der flyder - " Det svæver, det totes og det klipper noterne! &Quot;: 7 trin (med billeder)
Vandtætte højttalere, der flyder - " Det svæver, det stikker og klipper noterne! &Quot;: Dette vandtætte højttalerprojekt blev inspireret af mange ture til Gila -floden i Arizona (og SNL's " I'm on a Boat! &Quot; ). Vi flyder ned ad floden eller fastgør linjer til kysten, så vores flydere forbliver lige ved vores campingplads. Alle h