INHOUDSOPGAWE:
- Stap 1: Polsvloei van roterende enkodeerder
- Stap 2: Pinout van Rotary Encoder
- Stap 3: Skematiese
- Stap 4: Kode
- Stap 5: Verduideliking
- Stap 6: Uitset
Video: Tutoriaal vir roterende enkodeerder met Arduino: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Rotary encoder is 'n elektroniese komponent wat beweging en posisie kan monitor tydens rotasie. Die draaikodeerder gebruik optiese sensors wat pulse kan genereer wanneer die roterende enkodeerder draai. Die toepassing van die draaikodeerder, gewoonlik as 'n meganiese of robotiese bewegingsmonitor, kan ook gebruik word vir die keuse van spyskaarte op die skerm. Rotary encoder het twee uitsette sodat dit kan onderskei tussen negatiewe (CW) en positiewe (CCW) rotasie en het ook 'n enkele knoppie.
Stap 1: Polsvloei van roterende enkodeerder
Die polsvloei wat deur die volgende roterende enkodeerder gegenereer word, is soos op die foto hierbo.
Stap 2: Pinout van Rotary Encoder
Verduideliking:
- GND GND
- + + 5V
- SW -knoppie van die roterende encoder wanneer dit ingedruk word
- DT -data
- CLK -data 2
Een van die DT- of CLK -penne moet aan die onderbrekingvoet van Arduino Uno gekoppel wees, of albei die DT en CLK is met die onderbrekingspen verbind.
Stap 3: Skematiese
- GND à GND Arduino Uno
- + à + 5V Arduino Uno
- SW à PIN 4 Arduino Uno
- DT à PIN 3 Arduino Uno
- CLK à PIN2 Arduino Uno
Stap 4: Kode
In die volgende tutoriaal word PIN 2 van Arduino Uno as onderbreking gebruik, terwyl PIN 3 slegs as 'n gereelde invoer gebruik word.
#define encoder0PinA 2 #definieer encoder0PinB 3 #define encoder0Btn 4 int encoder0Pos = 0; ongeldige opstelling () {Serial.begin (9600); pinMode (encoder0PinA, INPUT_PULLUP); pinMode (encoder0PinB, INPUT_PULLUP); pinMode (encoder0Btn, INPUT_PULLUP); attachInterrupt (0, doEncoder, CHANGE); } int valRotary, lastValRotary; leemte -lus () {int btn = digitalRead (encoder0Btn); Serial.print (btn); Serial.print (""); Serial.print (valRotary); if (valRotary> lastValRotary) {Serial.print ("CW"); } as (valRotary {
Serial.print ("CCW");
} lastValRotary = valRotary; Serial.println (""); vertraging (250); } void doEncoder () {if (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) {encoder0Pos ++; } anders {encoder0Pos--; } valRotary = encoder0Pos/2.5; }
In reël 10 van die skets hierbo word gebruik om die onderbreking van pen 2 Arduino Uno moontlik te maak. In die "doEncoder" funksie word bereken uit die roterende encoder. As die waarde van DT en CLK (penonderbreking van Arduino Uno) dieselfde is, word die veranderlike "encoder0Pos" verhoog / toegevoeg, benewens die toestand, word die veranderlike "encoder0Pos" verminder.
Stap 5: Verduideliking
ValRotary -waarde is die waarde van die aantal stappe wat uitgevoer is. ValRotêre waarde word verkry uit die leeswaarde van die roterende sensor encoder gedeel deur 2.5. 'N Waarde van 2,5 word verkry uit die toets, aangesien een stap van die draaikodeerder 1 kan oorskry, dus deel met 2,5 vir die waarde daarvan volgens die stap en ook die byvoeging van die leesvertraging.
Terwyl dit op lyn 19 - 25 is, is 'n program om vas te stel of roterende draaikodeerder CW of CCW is. Die verduideliking van reëls 19 - 25 is wanneer die huidige uitlees van die roterende enkoder groter is as die vorige roterende data wat dan uitgedruk is as CW. Terwyl die huidige lesing kleiner is as die vorige lesing, word dit as CCW aangedui.
Stap 6: Uitset
1 = die beginknoppie van die draaiknop as dit nie ingedruk is nie
Aanbeveel:
Timer met Arduino en roterende enkodeerder: 5 stappe
Timer met Arduino en Rotary Encoder: Die timer is 'n instrument wat gereeld gebruik word in industriële en huishoudelike aktiwiteite. Daar is verskeie programme wat ek vir Ardui geskryf het
Hoe: 'n kontaklose roterende enkodeerder: 3 stappe
Hoe: 'n kontaklose roterende enkodeerder: hierdie toepassingsnota beskryf hoe u 'n draaiskakelaar of encoder met 'n hoë betroubaarheid kan ontwerp met behulp van 'n Dialog GreenPAK ™. Hierdie skakelaarontwerp is kontakloos en ignoreer dus kontakoksidasie en slytasie. Dit is ideaal om buite te gebruik waar daar lang is
Roterende enkodeerder met STM32 Nucleo -bord: 12 stappe
Rotary Encoder With STM32 Nucleo Board: Dit is 'n handleiding om die posisie van Rotary Encoder te kry, wat 'n inkrementele tipe encoder is. Encoders bestaan oor die algemeen uit twee tipes:- die een is inkrementeel, die ander is absoluut. .Maar as jy h
Arduino -spyskaart op 'n Nokia 5110 LCD met 'n roterende enkodeerder: 6 stappe (met foto's)
Arduino -spyskaart op 'n Nokia 5110 LCD met 'n roterende enkodeerder: Beste vriende, welkom by nog 'n tutoriaal! In hierdie video gaan ons leer hoe om ons eie spyskaart vir die gewilde Nokia 5110 LCD -skerm te bou om ons projekte meer gebruikersvriendelik en bekwamer te maak. Kom ons begin! Dit is die projek
Beter roterende enkodeerder: 4 stappe
Beter roterende enkodeerder: as u ooit 'n roterende enkodeerder vir u projek probeer gebruik het, was u waarskynlik teleurstellend. Of dit nou te wyte was aan die moeilikheid van die opstel of die onnauwkeurige kontroles. Ek het dieselfde probleem gehad, so ek het besluit om dit op te los. Ek het 3D pr