Inhoudsopgave:
- Stap 1: Pulsstroom van roterende encoder
- Stap 2: Pinout van roterende encoder
- Stap 3: Schematisch:
- Stap 4: Coderen
- Stap 5: Uitleg
- Stap 6: Uitgang
Video: Tutorial van Rotary Encoder met Arduino - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Roterende encoder is een elektronische component die beweging en positie kan bewaken tijdens het draaien. Rotary encoder maakt gebruik van optische sensoren die pulsen kunnen genereren wanneer de roterende encoder draait. Toepassing van de roterende encoder, meestal als een mechanische of robotachtige bewegingsmonitor, kan ook worden gebruikt voor menuselectie op het display. Rotary encoder heeft twee uitgangen zodat hij onderscheid kan maken tussen negatieve (CW) en positieve (CCW) rotatie en heeft ook een enkele knop.
Stap 1: Pulsstroom van roterende encoder
De pulsstroom die wordt gegenereerd door de volgende roterende encoder is zoals de afbeelding hierboven.
Stap 2: Pinout van roterende encoder
Uitleg:
- GND GND
- + +5V
- SW-knop van roterende encoder wanneer ingedrukt
- DT-gegevens
- CLK-gegevens 2
Een van de DT- of CLK-pinnen moet worden aangesloten op de interrupt-voet van Arduino Uno, of zowel de DT als de CLK zijn aangesloten op de interrupt-pin.
Stap 3: Schematisch:
- GND naar GND Arduino Uno
- + à +5V Arduino Uno
- SW à PIN 4 Arduino Uno
- DT à PIN 3 Arduino Uno
- CLK naar PIN2 Arduino Uno
Stap 4: Coderen
In de volgende tutorial, die als interrupt zal worden gebruikt, is PIN 2 van Arduino Uno, terwijl PIN 3 alleen als reguliere invoer wordt gebruikt.
#define encoder0PinA 2#define 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, WIJZIGING); } int valRotary, lastValRotary; void loop () { int btn = digitalRead (encoder0Btn); Serial.print(btn); Serieel.print(" "); Serial.print(valRotary); if(valRotary>lastValRotary) { Serial.print("CW"); } if(valRotary {
Serial.print(" CCW");
} lastValRotary = valRotary; Serieel.println(" "); vertraging (250); } void doEncoder() {if (digitalRead(encoder0PinA) == digitalRead(encoder0PinB)) { encoder0Pos++; } else { encoder0Pos--; } valRotary = encoder0Pos/2.5; }
In regel 10 van de bovenstaande schets wordt de interrupt van pin 2 Arduino Uno ingeschakeld. In de "doEncoder"-functie wordt berekend vanaf de roterende encoder. Als de waarde van DT en CLK (pin-interrupt van Arduino Uno) hetzelfde is, wordt de variabele "encoder0Pos" verhoogd / toegevoegd, naast die voorwaarde wordt de variabele "encoder0Pos" verlaagd.
Stap 5: Uitleg
ValRotary-waarde is de waarde van het aantal stappen dat is uitgevoerd. ValRotary-waarde wordt verkregen uit de afleeswaarde van de roterende sensor-encoder gedeeld door 2,5. Een waarde van 2,5 wordt verkregen uit de test, aangezien één stap van de roterende encoder groter kan zijn dan 1, dus deel door 2,5 voor zijn waarde volgens de perstap en ook de toevoeging van de leesvertraging.
Terwijl op regel 19 - 25 een programma is om te bepalen of roterende roterende encoder CW of CCW. De uitleg van regels 19 - 25 is wanneer de huidige uitlezing van de roterende encoder groter is dan de vorige roterende data dan uitgedrukt als CW. Terwijl als de huidige meting kleiner is dan de vorige meting, deze wordt vermeld als CCW.
Stap 6: Uitgang
1 = de startknopwaarde van de draaiknop wanneer deze niet is ingedrukt
Aanbevolen:
Rotary Encoder - Begrijp en gebruik het (Arduino/andere Controller): 3 stappen
Rotary Encoder - Begrijp en gebruik het (Arduino/andere ΜController): Een roterende encoder is een elektromechanisch apparaat dat roterende beweging omzet in digitale of analoge informatie. Het kan met de klok mee of tegen de klok in draaien. Er zijn twee soorten roterende encoders: absolute en relatieve (incrementele) encoders.Wh
Live bewaking van de waarde van uw sensor van overal ter wereld: 4 stappen
Live monitoring van de waarde van uw sensor van overal ter wereld: ik kreeg een bericht op het WhatsApp-nummer van techneuten met betrekking tot hulp bij het maken van één project. Het project was om de druk op de druksensor te meten en deze op een smartphone weer te geven. Dus ik hielp bij het maken van dat project en besloot een bijlesdocent te maken
Verdubbel de levensduur van de batterij van de DX3-radio van Spektrum voor minder dan $ 20: 11 stappen
Verdubbel de levensduur van de batterij van de DX3-radio van Spektrum voor minder dan $ 20: ik kreeg het idee hiervoor voor het eerst op de draad voor de DX6/7 op RCGRoups.com-forums. Ik rijd met nitro-auto's, dus kocht ik een DX3. Ik heb de radio een tijdje gebruikt en mijn batterijduur was aan de betere kant van de meeste radio's - maar de DX7-bezitters begonnen
Hoe u gebruikersniveaus van NUMA toevoegt aan uw exemplaar van N met behulp van NumADD Firefox AddOn: 4 stappen
Gebruikersniveaus van NUMA toevoegen aan uw exemplaar van N NumADD Firefox-add-on gebruiken: Elke gebruiker van Metanet's N-database op gebruikersniveau NUMA weet hoe onhandig de interface is voor het kopiëren van door gebruikers gemaakte niveaus naar uw exemplaar van het spel. NumADD, elimineert de noodzaak van kopiëren en plakken en maakt het overzetten van niveaus het werk van één muisklik
Een batterijpakket van 4,5 volt maken van een batterij van 9 V: 4 stappen
Een 4,5 volt batterijpakket maken van een 9V-batterij: deze instructie gaat helemaal over het splitsen van een 9V-batterij in 2 kleinere 4,5V-batterijpakketten. De belangrijkste reden om dit te doen is 1. Je wilt 4,5 volt 2. Je wilt fysiek iets kleiners dan een 9V batterij