Turinys:
- 1 žingsnis: rotacinio kodavimo pulso srautas
- 2 veiksmas: sukamojo kodavimo įrenginio prisegimas
- 3 žingsnis: schema
- 4 žingsnis: kodas
- 5 žingsnis: paaiškinimas
- 6 žingsnis: išvestis
Video: „Rotary Encoder“su „Arduino“pamoka: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:49
Rotacinis kodavimo įrenginys yra elektroninis komponentas, galintis stebėti judėjimą ir padėtį sukantis. Rotaciniame kodavimo įrenginyje naudojami optiniai jutikliai, kurie sukdami impulsus gali generuoti impulsus. Rotacinio kodavimo įrenginio naudojimas paprastai kaip mechaninis arba robotų judesio monitorius taip pat gali būti naudojamas meniu pasirinkimui ekrane. Rotacinis kodavimo įrenginys turi du išėjimus, kad galėtų atskirti neigiamą (CW) ir teigiamą (CCW) sukimąsi, taip pat turi vieną mygtuką.
1 žingsnis: rotacinio kodavimo pulso srautas
Impulso srautas, kurį sukuria šis sukamasis kodavimo įrenginys, yra panašus į paveikslėlį aukščiau.
2 veiksmas: sukamojo kodavimo įrenginio prisegimas
Paaiškinimas:
- GND GND
- + + 5V
- Paspaudus sukamojo kodavimo įrenginio SW mygtuką
- DT duomenys
- CLK duomenys 2
Vienas iš DT arba CLK kaiščių turi būti prijungtas prie „Arduino Uno“pertraukimo pėdos, arba abu DT ir CLK yra prijungti prie pertraukimo kaiščio.
3 žingsnis: schema
- GND ir GND Arduino Uno
- + à + 5V „Arduino Uno“
- SW à PIN 4 „Arduino Uno“
- DT à PIN 3 „Arduino Uno“
- CLK ir PIN2 „Arduino Uno“
4 žingsnis: kodas
Šioje pamokoje, kuri bus naudojama kaip pertrauka, yra „Arduino Uno“2 PIN kodas, o 3 PIN kodas naudojamas tik kaip įprastas įvestis.
#define encoder0PinA 2 #define encoder0PinB 3 #define encoder0Btn 4 int encoder0Pos = 0; void setup () {Serial.begin (9600); pinMode (kodavimo priemonė0PinA, INPUT_PULLUP); pinMode (kodavimo priemonė0PinB, INPUT_PULLUP); pinMode (kodavimo priemonė0Btn, INPUT_PULLUP); attachInterrupt (0, doEncoder, CHANGE); } int valRotary, lastValRotary; void loop () {int btn = digitalRead (encoder0Btn); Serijinis atspaudas (btn); Serial.print (""); Serial.print (valRotary); if (valRotary> lastValRotary) {Serial.print ("CW"); } if (valRotary {
Serial.print („CCW“);
} lastValRotary = valRotary; Serial.println (""); vėlavimas (250); } void doEncoder () {if (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) {encoder0Pos ++; } else {encoder0Pos--; } valRotary = koderis0Pos/2.5; }
Aukščiau eskizo 10 eilutėje naudojama įjungti 2 kaiščio „Arduino Uno“nutraukimą. Funkcijoje „doEncoder“apskaičiuojama iš sukamojo kodavimo įrenginio. Jei DT ir CLK („Arduino Uno“kaiščio pertraukimas) reikšmė yra ta pati, tada „encoder0Pos“kintamasis bus padidintas / pridėtas, be to, sumažės kintamasis „encoder0Pos“.
5 žingsnis: paaiškinimas
„ValRotary“vertė yra atliktų žingsnių skaičiaus vertė. „ValRotary“vertė gaunama iš sukamojo jutiklio kodavimo įrenginio skaitymo vertės, padalytos iš 2,5. Bandymo metu gaunama 2,5 vertė, nes vienas sukamojo kodavimo žingsnio žingsnis gali viršyti 1, todėl padalinkite jį iš 2,5 pagal jo vertę pagal žingsnį ir taip pat pridėjus skaitymo uždelsimą.
19–25 eilutėse yra programa, skirta nustatyti, ar sukamasis rotacinis kodavimo įrenginys CW, ar CCW. 19–25 eilučių paaiškinimas yra tada, kai dabartinis sukamojo kodavimo įrenginio rodmuo yra didesnis nei ankstesni sukamieji duomenys, tada išreikšti CW. Jei dabartinis rodmuo yra mažesnis nei ankstesnis, jis nurodomas kaip CCW.
6 žingsnis: išvestis
1 = sukamojo paleidimo mygtuko vertė, kai jis nebuvo paspaustas
Rekomenduojamas:
Kaip valdyti servo variklį „Arduino“, pamoka: 4 žingsniai
Kaip valdyti servo variklį „Arduino“, pamoka: Ei, vaikinai! Sveiki atvykę į mano naują mokymo programą, tikiuosi, kad jums jau patiko mano ankstesnis nurodomas „Didelio žingsninio variklio valdymas“. Šiandien aš paskelbiu šią informatyvią pamoką, kad išmokytumėte bet kokio servomotoriaus valdymo pagrindų, aš jau paskelbiau vaizdo įrašą
„Arduino“RFID „išmaniųjų durų“pamoka: 7 žingsniai
„Arduino“RFID „išmaniųjų durų“pamoka: Peteris Tranas, 10ELT1 Šioje pamokoje dirbsite su RFID skaitytuvo moduliu, kad atrakintumėte mikro servo varomas duris! Įsitikinkite, kad turite tinkamą prieigos kortelę, kad galėtumėte įeiti, neskambinti aliarmo ir nesužadinti įsibrovėlių žiburių. Būsite vedami šv
„Arduino“Kaip prijungti kelis servo variklius - PCA9685 Pamoka: 6 žingsniai
„Arduino“Kaip prijungti kelis servo variklius - PCA9685 Pamoka: Šioje pamokoje sužinosime, kaip prijungti kelis servo variklius naudojant PCA9685 modulį ir arduino. PCA9685 modulis yra labai geras, kai reikia prijungti kelis variklius, daugiau apie tai galite perskaityti čia https : //www.adafruit.com/product/815Žiūrėkite vaizdo įrašą
„Arduino LCD 16x2“pamoka - Sąsajos 1602 LCD ekranas su „Arduino Uno“: 5 žingsniai
„Arduino LCD 16x2“pamoka | Sąsajos 1602 LCD ekranas su „Arduino Uno“: Sveiki, vaikinai, nes daugeliui projektų reikia ekrano, kuriame būtų rodomi duomenys, nesvarbu, ar tai yra koks nors „pasidaryk pats“skaitiklis, ar „YouTube“prenumeratų skaičius, ar skaičiuoklė, ar klaviatūros užraktas su ekranu, ir jei visi šie projektai yra sukurti naudojant arduino jie apibrėžs
„Arduino“pamoka - servo variklio valdymas naudojant „Arduino“: 5 žingsniai
„Arduino“pamoka - „Servo“variklio valdymas naudojant „Arduino“: ši instrukcija yra mano „Arduino: kaip valdyti servo variklį naudojant„ Arduino ““rašytinė versija. „YouTube“vaizdo įrašas, kurį neseniai įkėliau. Aš primygtinai rekomenduoju jums tai patikrinti. Apsilankykite „YouTube“kanale