Mündəricat:
Video: Rotary Encoder - Anlayın və İstifadə edin (Arduino/digər ΜController): 3 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Rotary encoder, fırlanma hərəkətini rəqəmsal və ya analoq məlumatlara çevirən bir elektro-mexaniki cihazdır. Saat yönünde və ya saat yönünün əksinə dönə bilər. İki növ fırlanan kodlayıcı var: Mütləq və nisbi (artan) kodlayıcılar.
Mütləq bir kodlayıcı cari mil bucağı ilə mütənasib bir dəyər çıxardığı halda, artımlı bir kodlayıcı milin addımını və istiqamətini çıxarır. (Bu halda artımlı bir kodlayıcımız var)
Bir elektrik modulunda iki funksiyadan istifadə edə bildiyiniz üçün fırlanan kodlayıcılar daha populyarlaşır: Fərqləri təsdiqləmək üçün sadə bir keçid və naviqasiya üçün fırlanan kodlayıcı, məsələn. menyu vasitəsilə.
Artan bir fırlanan kodlayıcı, mili dönərkən iki çıxış siqnalı yaradır. İstiqamətdən asılı olaraq siqnallardan biri digərini aparır. (aşağıya baxın)
Addım 1: Çıxış Məlumatlarını Anlamaq
Gördüyünüz kimi, enkoder şaftı saat əqrəbi istiqamətində dönməyə başladıqda, A Çıxışı əvvəl LOW -a düşür və B Çıxışı onu izləyir. Əks istiqamətdə saat əqrəbinin əksinə hərəkət edir.
İndi bunu yalnız µController -də tətbiq etməliyik (Arduino Nano istifadə etdim).
Addım 2: Dövrə qurun
Daha əvvəl təsvir etdiyim kimi, çıxışlar YÜKSƏK və DÜŞÜK cinah yaradır. ΜController-in A və B pinlərində təmiz bir YÜKS əldə etmək üçün Pull-Up rezistorları əlavə etməliyik. Ümumi Pin C, LOW cinah üçün birbaşa yerə gedir.
Daxili keçid (düymə) haqqında məlumat əldə etmək üçün digər iki sancağı istifadə edəcəyik. Onlardan biri VCC -yə, digəri isə µController -in məlumat pininə gedir. Təmiz LOW əldə etmək üçün məlumat pininə Pull-Down Resistor da əlavə etməliyik.
ΜController-in daxili Pull-Up və Pull-Down rezistorlarından da istifadə etmək mümkündür!
Mənim vəziyyətimdə pinout belə görünür:
- +3, 3V => +3, 3V (Arduino) (həmçinin +5V mümkündür)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Pin
11
- C => GND
-
SW =>
Pin
12
Addım 3: Kod yazmaq
int pinA = 10; // daxili keçid A int pinB = 11; // daxili keçid B int pinSW = 12; // keçid (Encoder basıldı) int encoderPosCount = 0; // sıfırdan başlayır, istəsən dəyişdir
int mövqeyi;
bool keçid; int mrotateSon; int mrotate;
boş quraşdırma () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); gecikmə (50); }
void loop () {readencoder (); if (readwitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// düyməsi dönərsə if (digitalRead (pinB)! = mrotate) {// keçid A əvvəl dəyişdi -> saat yönünde dönən encoderPosCount ++; Serial.println ("saat yönünde döndərilir"); } başqa {// keçid B əvvəl dəyişdirildi-> saat əqrəbinin əksinə fırlanan encoderPosCount--; Serial.println ("saat əqrəbinin əksinə döndərilir"); }
Serial.print ("Encoder Position:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; encoderPosCount qaytarın; } bool oxuyucusu () {
if (digitalRead (pinSW)! = 0) {// açarı sıxılır
while (digitalRead (pinSW)! = 0) {} // açarı hazırda switchval = 1; } başqa {switchval = 0;} // keçid sıxılmamış qayıtma keçididir; }
İndi kodlayıcını çevirə bilərsiniz və saat yönünün əksinə dönsəniz encoderPosCount sayılacaq və saat əqrəbinin əksinə döndərsəniz geri sayacaqsınız.
Bu belədir! Sadə və faydalı.
Kodu dəyişdirmək və yerinə yetirməkdən çekinmeyin. Layihənizdə tətbiq edə bilərsiniz.
LED -lərimin parlaqlığını təyin etmək üçün kodlayıcıdan istifadə etdiyim bir LED layihəsi də yükləyəcəyəm.
Tövsiyə:
DigiSpark və Rotary Encoder istifadə edərək USB Səs Düyməsi: 3 addım
DigiSpark və Rotary Encoder istifadə edərək USB Səs Düyməsi: Bu super ucuz USB Səs İdarəetmə Düyməsidir. Bəzən hər yerdə siçan vurmaqdansa, ənənəvi düymələri idarə etmək daha rahatdır. Bu layihə DigiSpark, Rotary Encoder və Adafruit Biblo USB Kitabxanasından istifadə edir (https: //github.c
Addımlar üçün Step Motoru Rotary Encoder və OLED Ekranı kimi necə istifadə etmək olar: 6 Addım
Addımlar üçün Step Motoru Rotary Encoder və OLED Display olaraq necə istifadə etmək olar: Bu təlimatda, OLED Display -də step motor addımlarının necə izləniləcəyini öyrənəcəyik. Bir nümayiş videosuna baxın. Orijinal dərs üçün kredit youtube istifadəçisinə verilir " sky4fly "
Arduino Nano istifadə edərək Rotary Encoder: 4 addım
Arduino Nano'dan istifadə edərək Rotary Encoder: Hər kəsə salam, bu yazıda Arduino Nano'dan istifadə edərək fırlanan kodlayıcıdan necə istifadə edəcəyimi öyrədəcəyəm. Bu Rotary kodlayıcıdan istifadə etmək üçün xarici kitabxanaya ehtiyacınız yoxdur. Beləliklə, əvvəlcə kitabxana əlavə etmədən birbaşa proqramlar yarada bilərik. tamam başlayaq
Rotary Encoder: necə işləyir və Arduino ilə necə istifadə olunur: 7 addım
Rotary Encoder: Arduino ilə necə işləyir və necə istifadə olunur: Bu və digər möhtəşəm dərsləri ElectroPeak -in rəsmi saytında oxuya bilərsinizBaxış Bu dərsdə, fırlanan kodlayıcıdan necə istifadə edəcəyinizi öyrənəcəksiniz. Əvvəlcə fırlanma kodlayıcısı haqqında bəzi məlumatlar görəcəksiniz və sonra necə edəcəyinizi öyrənəcəksiniz
Rotary Encoder istifadə edərək Nokia 5110 Lcd -də Arduino Menyu: 6 addım (Şəkillərlə birlikdə)
Nokia 5110 Lcd -də Arduino Menyu Rotary Encoder istifadə edərək: Əziz dostlar, başqa bir dərsliyə xoş gəldiniz! Bu videoda, layihələrimizi daha istifadəçi dostu və daha bacarıqlı etmək üçün məşhur Nokia 5110 LCD ekranı üçün öz menyuumuzu necə quracağımızı öyrənəcəyik. Başlayaq! Bu layihə