Indholdsfortegnelse:
- Trin 1: Pulsflow af roterende encoder
- Trin 2: Pinout af Rotary Encoder
- Trin 3: Skematisk
- Trin 4: Kode
- Trin 5: Forklaring
- Trin 6: Output
Video: Tutorial om Rotary Encoder With Arduino: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:30
Rotary encoder er en elektronisk komponent, der er i stand til at overvåge bevægelse og position, når den roterer. Rotary encoder anvender optiske sensorer, der kan generere pulser, når den roterende encoder roterer. Anvendelse af den roterende encoder normalt som en mekanisk eller robotisk bevægelsesmonitor kan også bruges til menuvalg på displayet. Rotary encoder har to udgange, så den kan skelne mellem negativ (CW) og positiv (CCW) rotation og har også en enkelt knap.
Trin 1: Pulsflow af roterende encoder
Pulsstrømmen genereret af den følgende roterende encoder er som billedet ovenfor.
Trin 2: Pinout af Rotary Encoder
Forklaring:
- GND GND
- + + 5V
- SW -knap på roterende encoder, når der trykkes på den
- DT Data
- CLK -data 2
En af DT- eller CLK -benene skal forbindes til afbrydelsesfoden på Arduino Uno, eller begge DT og CLK er forbundet til afbryderstiften.
Trin 3: Skematisk
- GND à GND Arduino Uno
- + à + 5V Arduino Uno
- SW à PIN 4 Arduino Uno
- DT à PIN 3 Arduino Uno
- CLK à PIN2 Arduino Uno
Trin 4: Kode
I den følgende vejledning, som vil blive brugt som afbrydelse, er PIN 2 for Arduino Uno, mens PIN 3 kun bruges som en almindelig indtastning.
#define encoder0PinA 2 #define encoder0PinB 3 #define encoder0Btn 4 int encoder0Pos = 0; ugyldig opsætning () {Serial.begin (9600); pinMode (encoder0PinA, INPUT_PULLUP); pinMode (encoder0PinB, INPUT_PULLUP); pinMode (encoder0Btn, INPUT_PULLUP); attachInterrupt (0, doEncoder, CHANGE); } int valRotary, lastValRotary; void loop () {int btn = digitalRead (encoder0Btn); Serial.print (btn); Serial.print (""); Serial.print (valRotary); if (valRotary> lastValRotary) {Serial.print ("CW"); } hvis (valRotary {
Serial.print ("CCW");
} lastValRotary = valRotary; Serial.println (""); forsinkelse (250); } void doEncoder () {if (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) {encoder0Pos ++; } andet {encoder0Pos--; } valRotary = encoder0Pos/2.5; }
I linje 10 i skitsen ovenfor bruges til at muliggøre afbrydelse af pin 2 Arduino Uno. I "doEncoder" -funktionen beregnes ud fra den roterende encoder. Hvis værdien af DT og CLK (pin -afbrydelse af Arduino Uno) er den samme, vil varianten "encoder0Pos" blive øget / tilføjet, ud over denne betingelse, reduceres varianten "encoder0Pos".
Trin 5: Forklaring
ValRotary -værdi er værdien af antallet af trin, der har været kørt. ValRotær værdi hentes fra den roterende sensor encoders læsningsværdi divideret med 2,5. En værdi på 2,5 opnås ved testen, da et trin i den roterende encoder kan overstige 1, så divider med 2,5 for dens værdi i henhold til trin og tilføjelse af læseforsinkelsen.
Mens på linje 19 - 25 er et program til at bestemme, om roterende roterende encoder CW eller CCW. Forklaringen på linjerne 19 - 25 er, når den aktuelle roterende encoder -aflæsning er større end de tidligere rotationsdata derefter udtrykt som CW. Hvorimod hvis den aktuelle aflæsning er mindre end den foregående læsning, angives den som CCW.
Trin 6: Output
1 = startknappens værdi på drejeknappen, når der ikke er trykket på den
Anbefalede:
Timer med Arduino og Rotary Encoder: 5 trin
Timer med Arduino og Rotary Encoder: Timeren er et værktøj, der ofte bruges i både industrielle og husholdningsaktiviteter. Denne samling er billig og let at lave. Den er også meget alsidig og kan indlæse et program, der er valgt efter behov. Der er flere programmer skrevet af mig til Ardui
Power Timer Med Arduino og Rotary Encoder: 7 trin (med billeder)
Power Timer Med Arduino og Rotary Encoder: Denne Power Timer er baseret på timeren vist på: https: //www.instructables.com/id/Timer-With-Arduin…Et strømforsyningsmodul og et SSR (solid state relæ) ) blev fastgjort til det. Effektbelastninger på op til 1KW kan betjenes og med minimale ændringer kan l
Rotary Encoder - Forstå og brug det (Arduino/anden ΜController): 3 trin
Rotary Encoder - Forstå og brug det (Arduino/anden ΜController): 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) encoders.Wh
Rotary Encoder Brug af Arduino Nano: 4 trin
Rotary Encoder Brug af Arduino Nano: Hej alle sammen, I denne artikel vil jeg lave en tutorial om, hvordan man bruger en roterende encoder ved hjælp af Arduino Nano. For at bruge denne Rotary encoder har du ikke brug for et eksternt bibliotek. Så vi kan oprette programmer direkte uden at tilføje biblioteker først. ok lad os starte med
Rotary Encoder Kit Tutorial: 5 trin
Rotary Encoder Kit Tutorial: Beskrivelse: Dette roterende encoder kit kan bruges til at registrere motorens position og hastighed. Det er et meget simpelt kit bestående af en optisk strålesensor (optokontakt, fototransistor) og et stykke hulskive. Det kan tilsluttes enhver mikrokontro