Innehållsförteckning:
- Steg 1: Pulsflöde för roterande kodare
- Steg 2: Pinout av Rotary Encoder
- Steg 3: Schematisk
- Steg 4: Kod
- Steg 5: Förklaring
- Steg 6: Utmatning
Video: Handledning för roterande kodare med Arduino: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Rotary encoder är en elektronisk komponent som kan övervaka rörelse och position när den roterar. Rotary encoder använder optiska sensorer som kan generera pulser när roterande encoder roterar. Användning av den roterande kodaren vanligtvis som en mekanisk eller robotisk rörelseövervakare kan också användas för menyval på displayen. Rotary encoder har två utgångar så att den kan skilja mellan negativ (CW) och positiv (CCW) rotation och har också en enda knapp.
Steg 1: Pulsflöde för roterande kodare
Pulsflödet som genereras av följande roterande kodare är som bilden ovan.
Steg 2: Pinout av Rotary Encoder
Förklaring:
- GND GND
- + + 5V
- SW -knapp på roterande pulsgivare när den trycks in
- DT -data
- CLK -data 2
En av DT- eller CLK -stiften måste vara ansluten till avbrottsfoten på Arduino Uno, eller så är både DT och CLK anslutna till avbrottsstiftet.
Steg 3: Schematisk
- GND à GND Arduino Uno
- + à + 5V Arduino Uno
- SW à PIN 4 Arduino Uno
- DT à PIN 3 Arduino Uno
- CLK à PIN2 Arduino Uno
Steg 4: Kod
I följande handledning, som kommer att användas som avbrott är PIN 2 för Arduino Uno, medan PIN 3 endast används som en vanlig inmatning.
#define encoder0PinA 2 #definiera encoder0PinB 3 #define encoder0Btn 4 int encoder0Pos = 0; void setup () {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"); } if (valRotary {
Serial.print ("CCW");
} lastValRotary = valRotary; Serial.println (""); fördröjning (250); } void doEncoder () {if (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) {encoder0Pos ++; } annat {encoder0Pos--; } valRotary = encoder0Pos/2.5; }
I rad 10 i skissen ovan används för att möjliggöra avbrott av stift 2 Arduino Uno. I "doEncoder" -funktionen beräknas från den roterande givaren. Om värdet på DT och CLK (stiftavbrott för Arduino Uno) är samma, kommer variabeln "encoder0Pos" att ökas / läggas till, utöver det villkoret, reduceras variabeln "encoder0Pos".
Steg 5: Förklaring
ValRotary value är värdet på antalet steg som har körts. ValRotärt värde erhålls från avläsningsvärdet för roterande sensorgivare dividerat med 2,5. Ett värde på 2,5 erhålls från testet, eftersom ett steg i den roterande kodaren kan överstiga 1, så dividera med 2,5 för dess värde enligt steget och även tillägget av läsfördröjningen.
Medan på linje 19 - 25 är ett program för att avgöra om roterande roterande givare CW eller CCW. Förklaringen av raderna 19 - 25 är när den aktuella avläsningen av roterande kodare är större än de tidigare rotationsdata som sedan uttrycks som CW. Om den aktuella avläsningen är mindre än den föregående avläsningen anges den som CCW.
Steg 6: Utmatning
1 = startknappens värde för rotatorn när den inte har tryckts in
Rekommenderad:
Använd en stegmotor som en roterande kodare: 9 steg (med bilder)
Använd en stegmotor som en roterande kodare: Rotary encoders är bra för användning i mikrokontrollerprojekt som en ingångsenhet men deras prestanda är inte särskilt smidig och tillfredsställande. Eftersom jag hade många extra stegmotorer runt omkring bestämde jag mig för att ge dem ett syfte. Så om du har lite steg
Stegmotorstyrd modelllok - Stegmotor som roterande kodare: 11 steg (med bilder)
Stegmotorstyrd modelllok | Stegmotor som roterande kodare: I en av de tidigare instruktionerna lärde vi oss hur man använder en stegmotor som en roterande kodare. I detta projekt kommer vi nu att använda den stegmotor som vrider på roterande givare för att styra ett modelllok med en Arduino -mikrokontroller. Så utan fu
Stegmotorstyrd stegmotor - Stegmotor som roterande kodare: 11 steg (med bilder)
Stegmotorstyrd stegmotor | Stegmotor som roterande kodare: Har ett par stegmotorer liggande och vill göra något? I denna instruerbara, låt oss använda en stegmotor som en roterande kodare för att styra en annan stegmotors position med en Arduino -mikrokontroller. Så utan vidare, låt oss ge
Hur man använder stegmotor som roterande kodare och OLED -display för steg: 6 steg
Så här använder du stegmotor som roterande kodare och OLED -skärm för steg: I denna handledning lär vi oss hur du spårar stegmotorstegen på OLED -skärmen. Titta på en demonstrationsvideo. Kredit för den ursprungliga handledningen går till YouTube -användaren " sky4fly "
Arduino -meny på en Nokia 5110 Lcd med en roterande kodare: 6 steg (med bilder)
Arduino -meny på en Nokia 5110 Lcd med hjälp av en roterande kodare: Kära vänner välkomna till en annan handledning! I den här videon kommer vi att lära oss hur man bygger vår egen meny för den populära Nokia 5110 LCD -skärmen för att göra våra projekt mer användarvänliga och mer kapabla. Låt oss komma igång! Detta är projektet