Mundarija:
- 1 -qadam: Rotary enkoderning puls oqimi
- 2 -qadam: Rotary Enkoderni ajratish
- 3 -qadam: sxematik
- 4 -qadam: kod
- 5 -qadam: tushuntirish
- 6 -qadam: Chiqish
Video: Arduino bilan Rotary Encoder qo'llanmasi: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Rotary enkoder - bu elektron komponent bo'lib, u aylanayotganda harakat va holatni kuzatishi mumkin. Rotary enkoder optik datchiklardan foydalanadi, ular aylanuvchi enkoder aylanganda impuls hosil qiladi. Aylanadigan kodlovchi odatda mexanik yoki robotli harakat monitor sifatida qo'llanilishi, shuningdek, displeyda menyuni tanlash uchun ishlatilishi mumkin. Rotary enkoderning ikkita chiqishi bor, u salbiy (CW) va musbat (CCW) aylanishni farqlay oladi va bitta tugmachaga ega.
1 -qadam: Rotary enkoderning puls oqimi
Quyidagi aylanadigan kodlovchi tomonidan hosil bo'ladigan impuls oqimi yuqoridagi rasmga o'xshaydi.
2 -qadam: Rotary Enkoderni ajratish
Tushuntirish:
- GND GND
- + 5V
- Bosilganda aylanadigan kodlovchi SW tugmasi
- DT ma'lumotlari
- CLK ma'lumotlari 2
DT yoki CLK pinlaridan biri Arduino Uno uzilish oyog'iga ulangan bo'lishi kerak, yoki DT va CLK ikkalasi ham uzilish pimiga ulangan bo'lishi kerak.
3 -qadam: sxematik
- GND va GND Arduino Uno
- + 5 + Arduino Uno
- SW à PIN 4 Arduino Uno
- PIN kod 3 Arduino Uno
- CLK va PIN2 Arduino Uno
4 -qadam: kod
Keyingi o'quv qo'llanmada Arduino Uno -ning PIN -2 -si uzilish sifatida ishlatiladi, PIN -3 esa oddiy kirish sifatida ishlatiladi.
#define encoder0PinA 2 #encoder0PinB 3 ni belgilang # #encoder0Btn 4 int encoder0Pos = 0; void setup () {Serial.begin (9600); pinMode (kodlovchi0PinA, INPUT_PULLUP); pinMode (kodlovchi0PinB, INPUT_PULLUP); pinMode (kodlovchi0Btn, INPUT_PULLUP); attachInterrupt (0, doEncoder, CHANGE); } int valRotary, lastValRotary; void loop () {int btn = digitalRead (encoder0Btn); Serial.print (btn); Serial.print (""); Ketma -ket chop etish (valRotary); if (valRotary> lastValRotary) {Serial.print ("CW"); } agar (valRotary {
Serial.print ("CCW");
} lastValRotary = valRotary; Serial.println (""); kechikish (250); } void doEncoder () {if (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) {encoder0Pos ++; } boshqa {encoder0Pos--; } valRotary = kodlovchi0Pos/2.5; }
Yuqoridagi eskizning 10 -qatorida Arduino Uno 2 -pinining uzilishini ta'minlash uchun foydalaniladi. "DoEncoder" funktsiyasida aylanadigan kodlovchi hisoblab chiqiladi. Agar DT va CLK (Arduino Uno -ning pinli uzilishi) qiymati bir xil bo'lsa, "encoder0Pos" o'zgaruvchisi ortadi / qo'shiladi, bu shartga qo'shimcha ravishda "encoder0Pos" o'zgaruvchisi kamayadi.
5 -qadam: tushuntirish
ValRotary qiymati - bu bajarilgan qadamlar sonining qiymati. ValRotary qiymati aylanadigan sensorli kodlovchi o'qish qiymatidan 2,5 ga bo'linadi. Tekshiruvdan 2,5 qiymat olinadi, chunki aylanuvchi kodlovchi bir qadam 1dan oshishi mumkin, shuning uchun uning qiymatiga 2,5 ga bo'linadi va o'qish kechiktirilishi qo'shiladi.
19 - 25 -qatorda - aylanadigan CW yoki CCW aylanadigan kodlovchi ekanligini aniqlash dasturi. 19-25 -qatorlarning tushuntirishlari, aylanuvchi kodlovchi o'qilishi oldingi aylanuvchi ma'lumotlardan kattaroq, keyin CW sifatida ifodalanadi. Agar hozirgi o'qish oldingi o'qishdan kichik bo'lsa, u CCW sifatida belgilanadi.
6 -qadam: Chiqish
1 = aylanmagan tugmachaning boshlang'ich tugmasi
Tavsiya:
Rotary Encoder boshqariladigan robot qo'l: 6 qadam
Rotary enkoder boshqariladigan robot qo'l: men howtomechatronics.com saytiga tashrif buyurdim va u erda bluetooth boshqariladigan robot qo'lini ko'rdim. Men bluetoothdan foydalanishni yoqtirmayman, bundan tashqari biz servolarni aylanuvchi kodlovchi yordamida boshqarishni ko'rdim, shuning uchun men uni boshqara olaman. qo'lda aylanadigan enkoderdan foydalaning va uni yozib oling
Televizorni masofadan boshqarish pulti yordamida LEDni boshqaringmi? -- Arduino IR qo'llanmasi: 5 qadam (rasmlar bilan)
Televizorni masofadan boshqarish pulti yordamida LEDni boshqaringmi? || Arduino IR qo'llanmasi: Ushbu loyihada men sizga televizorning orqasidagi LEDlarni boshqarish uchun masofadan boshqarish pultidagi tugmachalarni qanday o'zgartirganimni ko'rsataman. Bundan tashqari, siz ushbu texnikadan foydalanib, har xil narsalarni kodni tahrirlash orqali boshqarishingiz mumkin. Men nazariya haqida bir oz gaplashaman
Arduino qo'llanmasi - L293D bilan qadam dvigateli: 5 qadam
Arduino qo'llanmasi - L293D bilan qadamli dvigatel: Bu "Arduino: L293D dvigateli bilan qadam dvigatelini qanday boshqarish kerak" ning yozma versiyasi. Yaqinda yuklagan YouTube videosi. Men buni tekshirishingizni qat'iy tavsiya qilaman. Mening YouTube kanalim
Arduino qo'llanmasi - Arduino bilan servo dvigatelni boshqarish: 5 qadam
Arduino qo'llanmasi - Arduino bilan servo dvigatelni boshqarish: Bu "Arduino: Servo dvigatelini Arduino bilan qanday boshqarish kerak" ning yozma versiyasi. Yaqinda yuklagan YouTube videosi. YouTube kanaliga tashrif buyuring
Si4703 FM radio kartasini RDS bilan qanday ishlatish - Arduino qo'llanmasi: 5 qadam (rasmlar bilan)
Si4703 FM radio kartasini RDS bilan qanday ishlatish - Arduino qo'llanmasi: Bu Silicon Laboratories Si4703 FM tyuner chipini baholash paneli. Si4703 oddiy FM radiosi bo'lishidan tashqari, Radio Ma'lumotlari Xizmati (RDS) va Radio Broadcast Data Service (RBDS) ma'lumotlarini ham aniqlash va qayta ishlashga qodir