Innehållsförteckning:
Video: Rotary Encoder - Förstå och använd den (Arduino/annan ΜController): 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:42
En roterande kodare är en elektromekanisk anordning som omvandlar rotationsrörelse till digital eller analog information. Den kan vridas medurs eller moturs. Det finns två typer av roterande kodare: Absoluta och relativa (inkrementella) kodare.
Medan en absolut givare matar ut ett värde som är proportionellt mot den aktuella axelvinkeln, matar en inkrementell givare ut axelns steg och dess riktning. (I det här fallet har vi en inkrementell kodare)
Rotary encoders blir allt mer populärt eftersom du kan använda två funktioner i en elektrisk modul: En enkel switch för att bekräfta drift och roterande encoder att navigera, t.ex. genom en meny.
En inkrementell roterande kodare genererar två utsignaler medan dess axel roterar. Beroende på riktning leder en av signalerna den andra. (se nedan)
Steg 1: Förstå utdata
Som du kan se när givaraxeln börjar rotera medurs, faller utgång A till LÅG först och utgång B följer den. I motsatt riktning vänder operationen motsatt.
Nu måste vi bara implementera detta på vår µController (jag använde en Arduino Nano).
Steg 2: Bygg kretsen
Som jag beskrev tidigare skapar utgångarna en HÖG och en LÅG flank. För att få en ren HIGH vid datapinnen A och B på µController måste vi lägga till Pull-Up-motstånd. Den gemensamma stift C går rakt på marken för den LÅGA flanken.
För att få information om den interna omkopplaren (tryckknapp) använder vi de andra två stiften. En av dem går till VCC och den andra till en datapinne på µController. Vi måste också lägga till en Pull-Down Resistor till datapinnen för att få en ren LOW.
Det är också möjligt att använda interna Pull-Up- och Pull-Down-motstånd på din µController!
I mitt fall ser pinout ut så här:
- +3, 3V => +3, 3V (Arduino) (även +5V möjligt)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Stift
11
- C => GND
-
SW =>
Stift
12
Steg 3: Skriva koden
int pinA = 10; // intern switch A int pinB = 11; // intern switch B int pinSW = 12; // switch (tryckt Encoder) int encoderPosCount = 0; // börjar på noll, ändra om du vill
int positionval;
bool switchval; int mrotateLast; int mrotate;
void setup () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); fördröjning (50); }
void loop () {readencoder (); if (readwitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// ratten roterar om (digitalRead (pinB)! = mrotate) {// switch A ändrades först -> roterar medurs encoderPosCount ++; Serial.println ("roterat medurs"); } annat {// switch B ändrades först-> roterar moturs encoderPosCount--; Serial.println ("roterat moturs"); }
Serial.print ("Encoder Position:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; return encoderPosCount; } bool läskontakt () {
om (digitalRead (pinSW)! = 0) {// -knappen trycks in
medan (digitalRead (pinSW)! = 0) {} // switch är för närvarande nedtryckt switchval = 1; } annars {switchval = 0;} // switch är otryckt retur switchval; }
Nu kan du vrida pulsgivaren och variabeln encoderPosCount räknar upp om du roterar medsols och räknar nedåt om du roterar moturs.
Det är allt! Enkelt och användbart.
Ändra gärna och utför koden. Du kan implementera det i ditt projekt.
Jag kommer också att ladda upp ett LED -projekt där jag använde kodaren för att ställa in ljusstyrkan på mina lysdioder.
Rekommenderad:
Timer med Arduino och Rotary Encoder: 5 steg
Timer med Arduino och Rotary Encoder: Timern är ett verktyg som ofta används i både industriella och hushållsaktiviteter. Denna montering är billig och enkel att göra. Den är också mycket mångsidig och kan ladda ett program valt efter behov. Det finns flera program skrivna av mig, för Ardui
Power Timer med Arduino och Rotary Encoder: 7 steg (med bilder)
Power Timer Med Arduino och Rotary Encoder: Denna Power Timer är baserad på timern som presenteras på: https: //www.instructables.com/id/Timer-With-Arduin…En strömförsörjningsmodul och ett SSR (solid state relay) ) belastades med den. Effektbelastningar på upp till 1KW kan manövreras och med minimala ändringar
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: 11 steg
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: Har du någonsin haft mycket data du arbetar med och tänkt för dig själv … " hur kan jag göra allt av dessa data ser bättre ut och blir lättare att förstå? " Om så är fallet kan en tabell i Microsoft Office Word 2007 vara ditt svar
Rotary Encoder: Hur det fungerar och hur det används med Arduino: 7 steg
Rotary Encoder: Hur det fungerar och hur det används med Arduino: Du kan läsa detta och andra fantastiska självstudier på ElectroPeaks officiella webbplats Översikt I den här självstudien får du veta hur du använder roterande kodare. Först ser du lite information om rotationsgivaren, och sedan lär du dig hur
I2C / IIC LCD -skärm - Använd en SPI LCD till I2C LCD -skärmen Använd SPI till IIC -modulen med Arduino: 5 steg
I2C / IIC LCD -skärm | Använd en SPI LCD till I2C LCD -skärmen Använda SPI till IIC -modulen med Arduino: Hej killar eftersom en vanlig SPI LCD 1602 har för många trådar att ansluta så det är mycket svårt att ansluta den till arduino men det finns en modul på marknaden som kan konvertera SPI -display till IIC -display så då behöver du bara ansluta 4 ledningar