Kirish. I. Bob. Robot tizimlarining drayvlari uchun dc motorini mikroprotsessorli boshqarish modeli


Arduino bilan DC vosita tezligini nazorat qilish



Download 203,52 Kb.
bet3/6
Sana02.06.2023
Hajmi203,52 Kb.
#948044
1   2   3   4   5   6
Bog'liq
Motorning aylanish tezligini kompyuterli boshqarish sistemasi

Arduino bilan DC vosita tezligini nazorat qilish

DC vosita robototexnika va elektronikada eng ko'p ishlatiladigan vosita turidir. Bunday dvigatelning tezligini boshqarish uchun turli usullardan foydalanish mumkin, ammo bu loyihada biz bu maqsadda impuls kengligi modulyatsiyasidan (PWM) foydalanamiz. Potansiyometr yordamida doimiy tok dvigatelining aylanish tezligini uning tugmachasini aylantirib boshqaramiz.
PWM dan foydalanishning umumiy printsipi
PWM modulyatsiya tezligini (Pulse Width Modulation, PWM) nazorat qilish orqali siz, masalan, LED porlashining kuchini sozlashingiz mumkin - bu tamoyil quyidagi rasmda tushuntirilgan. Xuddi shunday mexanizm dvigatelning aylanish tezligini boshqarish uchun ishlatiladi.
Agar ko'rsatilgan rasmda kalit biroz vaqt yopiq bo'lsa, u holda bir vaqtning o'zida lampochka yonadi. Agar kalit 8 ms yopilsa va 10 ms oralig'ida 2 ms ochiq bo'lsa, u holda yorug'lik faqat 8 ms oraliqda yonadi. Ushbu misolda biz o'rtacha chiqish voltaji (lampochkada) batareya kuchlanishining 80% bo'lishini aytishimiz mumkin.
Aks holda, kalit 5ms uchun yopiladi va 10ms oraliqda bir xil 5ms uchun ochiladi, shuning uchun lampochkaning o'rtacha kuchlanishi akkumulyator kuchlanishining 50% ni tashkil qiladi. Odatda, agar batareya zo'riqishida 5V bo'lsa va ish aylanishi 50% bo'lsa, u holda terminal qurilmasidagi (lampochka) o'rtacha kuchlanish 2,5V bo'ladi.

Rasmda ko'rsatilgan uchinchi holatda band aylanishi 20% ni tashkil qiladi va shuning uchun terminal qurilmasidagi (lampochka) o'rtacha kuchlanish akkumulyator kuchlanishining 20% ​​ni tashkil qiladi.

Biz ko'rib chiqayotgan vosita tezligini boshqarish misolida aytilganlarning barchasini qo'llagan holda, shuni aytishimiz mumkinki, PWM ning ish aylanishi qanchalik katta bo'lsa (yoqilgan holat davomiyligining davrga nisbati), vosita tezligi shunchalik yuqori bo'ladi. bo'l.

Kerakli komponentlar


Arduino UNO platasi ( AliExpress-da sotib oling ).
DC motor.
Transistor 2N2222 ( AliExpress-da sotib oling ).
Potansiyometr 100 kOm ( AliExpress-da sotib oling ).
Kondensator 0,1 nF ( AliExpress-da sotib oling ).
Non taxtasi.
Ulanish simlari.

Dasturning to'liq matni maqolaning oxirida berilgan, ushbu bo'lim kodning asosiy elementlarining maqsadini tushuntiradi.
Quyidagi kod satrlarida biz c1 va c2 o'zgaruvchilarini ishga tushiramiz va potentsiometrning chiqishiga A0 analog pinini tayinlaymiz va PWM uchun 12-pin ishlatiladi.

1
2
3
4

int pwmPin = 12;
int pot = A0;
int c1 = 0;
int c2 = 0;

Quyidagi kod satrlarida biz ma'lumotlarni kiritish uchun A0 pinini va ma'lumotlarni chiqarish uchun pin 12 (bu PWM pin) ni o'rnatdik.


1
2
3
4

void setup() {
pinMode(pwmPin, OUTPUT); // pin 12 - на вывод данных
pinMode(pot, INPUT); // pin A0 - на ввод данных
}

Endi loop() funksiyasida analogRead(pot) funksiyasi yordamida A0 pinidagi analog qiymatni o'qiymiz va uni c2 da saqlaymiz. Keyin 1024 dan c2 ni ayirib, natijani c1 da saqlaymiz. Keyin biz PWM ning 12-piniga yuqori darajani (HIGH) qo'llaymiz va c1 o'zgaruvchisi tomonidan aniqlangan kechikishdan so'ng biz ushbu pinga past darajani (LOW) qo'llaymiz. Shundan so'ng, biz LOW o'zgaruvchisi tomonidan belgilangan kechikishni bajaramiz va tsiklni boshidan davom ettiramiz.
Analog qiymatni 1024 dan ayirish sababi quyidagicha. Gap shundaki, Arduino Uno analog-raqamli konvertori (ADC) 10 bit ruxsatga ega, ya'ni u 0 - 2 ^ 10 \u003d 1024 oralig'ida butun qiymatlarni qabul qilishi mumkin. u 0 dan 5 V gacha bo'lgan diapazondagi kirish kuchlanish qiymatini 0 dan 1024 gacha bo'lgan oraliqda butun qiymatga aylantiradi. Shunday qilib, agar kirish kuchlanish qiymatini 5/1024 ga ko'paytirsak, biz kirish kuchlanishining raqamli qiymatini olamiz. .
Arduino

1
2
3
4
5
6
7
8

void loop()
{
c2= analogRead(pot);
c1= 1024-c2;
digitalWrite(pwmPin, HIGH); // подаем напряжение высокого уровня на pin 12
delayMicroseconds(c1); // ждем c1 микросекунд (high time)
digitalWrite(pwmPin, LOW); // подаем напряжение низкого уровня на pin 12
delayMicroseconds(c2); // ждем c2 микросекунд (low time)



1
2
3
4

void setup() {
pinMode(pwmPin, OUTPUT); // pin 12 - на вывод данных
pinMode(pot, INPUT); // pin A0 - на ввод данных
}

Endi loop() funksiyasida analogRead(pot) funksiyasi yordamida A0 pinidagi analog qiymatni o'qiymiz va uni c2 da saqlaymiz. Keyin 1024 dan c2 ni ayirib, natijani c1 da saqlaymiz. Keyin biz PWM ning 12-piniga yuqori darajani (HIGH) qo'llaymiz va c1 o'zgaruvchisi tomonidan aniqlangan kechikishdan so'ng biz ushbu pinga past darajani (LOW) qo'llaymiz. Shundan so'ng, biz LOW o'zgaruvchisi tomonidan belgilangan kechikishni bajaramiz va tsiklni boshidan davom ettiramiz.
Analog qiymatni 1024 dan ayirish sababi quyidagicha. Gap shundaki, Arduino Uno analog-raqamli konvertori (ADC) 10 bit ruxsatga ega, ya'ni u 0 - 2 ^ 10 \u003d 1024 oralig'ida butun qiymatlarni qabul qilishi mumkin. u 0 dan 5 V gacha bo'lgan diapazondagi kirish kuchlanish qiymatini 0 dan 1024 gacha bo'lgan oraliqda butun qiymatga aylantiradi. Shunday qilib, agar kirish kuchlanish qiymatini 5/1024 ga ko'paytirsak, biz kirish kuchlanishining raqamli qiymatini olamiz. .

void setup() {


pinMode(pwmPin, OUTPUT); // pin 12 - на вывод данных
pinMode(pot, INPUT); // pin A0 - на ввод данных
}
Endi loop() funksiyasida analogRead(pot) funksiyasi yordamida A0 pinidagi analog qiymatni o'qiymiz va uni c2 da saqlaymiz. Keyin 1024 dan c2 ni ayirib, natijani c1 da saqlaymiz. Keyin biz PWM ning 12-piniga yuqori darajani (HIGH) qo'llaymiz va c1 o'zgaruvchisi tomonidan aniqlangan kechikishdan so'ng biz ushbu pinga past darajani (LOW) qo'llaymiz. Shundan so'ng, biz LOW o'zgaruvchisi tomonidan belgilangan kechikishni bajaramiz va tsiklni boshidan davom ettiramiz.

Analog qiymatni 1024 dan ayirish sababi quyidagicha. Gap shundaki, Arduino Uno analog-raqamli konvertori (ADC) 10 bit ruxsatga ega, ya'ni u 0 - 2 ^ 10 \u003d 1024 oralig'ida butun qiymatlarni qabul qilishi mumkin. u 0 dan 5 V gacha bo'lgan diapazondagi kirish kuchlanish qiymatini 0 dan 1024 gacha bo'lgan oraliqda butun qiymatga aylantiradi. Shunday qilib, agar kirish kuchlanish qiymatini 5/1024 ga ko'paytirsak, biz kirish kuchlanishining raqamli qiymatini olamiz. .

Taqdim etilgan sxemada biz 100 kŌ potentsiometr yordamida DC motorining aylanish tezligini nazorat qilamiz, uning tugmachasini aylantirib, biz PWM signalining ish aylanishini o'zgartiramiz. 100 kŌ potentsiometr Arduino UNO ning analog kirish piniga A0 ulangan va shahar motori Arduino ning 12 piniga (bu PWM piniga) ulangan. Dasturning printsipi A0 analog pinidan kuchlanish qiymatini o'qishiga asoslanadi. Ushbu analog pindagi kuchlanish qiymati potansiyometr yordamida o'zgartiriladi. Keyinchalik, kerakli hisob-kitoblardan so'ng, PWM ning ish aylanishi ushbu qiymatga muvofiq o'rnatiladi.

Misol uchun, agar biz analog kirishdan 256 qiymatini (ya'ni, bu allaqachon o'zgartirilgan raqamli qiymat) olsak, bu holda PWM pinidagi yuqori daraja 768 ms (1024-256) uchun bo'ladi va past daraja 256 ms uchun bo'ladi. Shuning uchun, PWM ish aylanishi 75% bo'ladi. Inson ko'zi bunday yuqori chastotali tebranishlarni ajrata olmaydi, shuning uchun unga dvigatel doimiy ravishda maksimal 75% tezlikda aylanayotgandek tuyuladi.





  1. Download 203,52 Kb.

    Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish