Mavzu: Arduino yordamida motorlarni boshqarish texnologiyalari


H-ko'prikli sxemaning ishlashi



Yüklə 100,63 Kb.
Pdf görüntüsü
səhifə7/7
tarix20.11.2023
ölçüsü100,63 Kb.
#164110
1   2   3   4   5   6   7
Arduino mamumotlar

H-ko'prikli sxemaning ishlashi
 
Keyinchalik, siz potentsiometr va H-ko'prigi yordamida dvigatelning yo'nalishini va tezligini 
boshqaradigan dastur yozasiz. Potansiyometrni o'rta diapazonda o'rnatish dvigatelni to'xtatadi, 
potentsiometrni o'rtasidan yuqori diapazonga qo'yish oldinga tezlikni oshiradi va potentsiometrni 
o'rtasidan pastroqqa qo'yish tezlikni orqaga oshiradi. Bu Arduino dasturida funktsiyalarni ishlatish 
Kirishlar 
Chiqish 

A EN 
H H 

L H 

X L 



uchun yana bir ajoyib imkoniyat . Siz dvigatelni to'xtatish funktsiyasini yozishingiz mumkin , 
bunda u belgilangan tezlikda oldinga siljiydi, ikkinchisi esa belgilangan tezlikda orqaga 
aylanadi . Dvigatel rejimini o'zgartirishdan oldin, funktsiya boshida H-ko'prigini to'g'ri o'chirib 
qo'yganingizga ishonch hosil qiling ; bu sizning xato qilish ehtimolini kamaytiradi va tasodifan H-
ko'prigini qisqartiradi.
Yuqoridagi rasmdagi mantiqiy diagrammadan so'ng, kerakli natijalarga erishish uchun pinlarni 
qanday boshqarish kerakligini tezda aniqlashingiz mumkin :
■■ Qurilma orqali oqim oqimini to'xtatish uchun yoqish pinini past qilib qo'ying.
■■ Kalitlarni bir tomonga burilishga o'rnatish uchun birini baland, ikkinchisini past qilib qo'ying. 
■■ Kalitlarni teskari yo'nalishda aylantirish uchun, baland va pastni almashtiring .
■■ Dvigatel zudlik bilan to'xtab qolishi uchun ikkala kalitni ham pastga qo'ying.
ESLATMA. Kalitlarning holatini o'zgartirmasdan oldin, oqim oqimini har doim o'chirib qo'ying, 
shunda kalitlar aylanayotganda bir lahzalik qisqa tutashuvni yaratib bo'lmaydi.
Birinchidan, siz ilgari tasvirlangan harakatlarni xavfsiz bajaradigan funktsiyalarni o'ylab 
topishingiz kerak. Yangi Arduino eskizini yarating va yangi funktsiyalarni yozishdan boshlang :
//Motor oldinga harakatlanadi 
void forward (int rate) 

digitalWrite(EN, LOW); 
digitalWrite(MC1, HIGH); 
digitalWrite(MC2, LOW); 
analogWrite(EN, rate); 

//Motor orqaga harakatlanadi 
void reverse (int rate) 

digitalWrite(EN, LOW); 
digitalWrite(MC1, LOW); 
digitalWrite(MC2, HIGH); 
analogWrite(EN, rate); 
//Motor tormoz 
void brake () 

digitalWrite(EN, LOW); 
digitalWrite(MC1, LOW); 
digitalWrite(MC2, LOW); 
digitalWrite(EN, HIGH); 

E'tibor bering, har bir funktsiyaning boshida EN pin har doim past bo'ladi, keyin esa MC1 va MC2 
pinlari (Dvigatelni boshqarish pini) o'rnatiladi. Bu bajarilganda, oqim oqimi qayta yoqilishi 
mumkin. Tezlikni o'zgartirish uchun avval qilgan texnikadan foydalaning . PWM dan foydalanib, 


siz EN pinining almashtiriladigan burchini o'zgartirishingiz va tezlikni boshqarishingiz 
mumkin. Tezlik 
o'zgaruvchisi 0 
dan 
255 
gacha bo'lishi 
kerak . 
Asosiy 
tsikl kirish 
potentsiometrining ma'lumotlaridan to'g'ri tezlikni yaratishga e'tibor beradi .
Endi, dasturning asosiy tsiklini ko'rib chiqing: 
void loop() 

val = analogRead(POT); 
//go forward 
if (val > 562) 

velocity = map(val, 563, 1023, 0, 255); 
forward(velocity); 

//go backward 
else if (val < 462) 

velocity = map(val, 461, 0, 0, 255); 
reverse(velocity); 

//brake 
else 

brake(); 


Asosiy tsiklda potentsiometr qiymati o'qiladi va potentsiometr qiymatiga qarab tegishli funktsiyani 
chaqirish mumkin. Eslatib o'tamiz, analog kirish 0 dan 1023 gacha raqamli qiymatlarga o'tkaziladi. 
Potentsiometr o'rta nuqtani o'rab turgan 100 birlik ichida bo'lsa , tormoz funktsiyasi chaqiriladi. 
Potentsiometr qiymati 562 dan 1023 gacha oshishi bilan oldinga tezlik oshadi. Xuddi shunday, 
tezlik 462 va 0 potentsiometrlari orasidagi teskari yo'nalishda ortadi. Xarita funktsiyasi sizga 
oldingi bobdan tanish bo'lishi kerak . Bu erda, teskari tezlikni aniqlayotganda, o'zgaruvchilar 
tartibiga e'tibor bering: 461 - 0 ga, 0 - 255 ga teng; xarita funktsiyasi o'zgaruvchilar kamayish 
tartibida o'tkazilganda xaritani o'zgartirishi mumkin . Loopni funktsiyalar va sozlamalar bilan 
birlashtirib, siz Quyidagi kodda ko'rsatilgan dasturga o'xshab tugallangan dasturni olasiz . Sizning 
dasturingiz bu yerga mos kelishiga ishonch hosil qiling va uni Arduinoga yuklang .
//Hbridge Motor kontrol 
const int EN=9; //Half Bridge 1 Enable 
const int MC1=3; //Motor kontrol 1 
const int MC2=2; //Motor kontrol 2 
const int POT=0; //POT Analog Pin 0da 
int val = 0; // POTdan keluvchi signal qiymatini o’qish uchun 
int velocity = 0; //Mo’ljallangan tezlikni to’plash uchun ( 0-255) 


void setup() 

pinMode(EN, OUTPUT); 
pinMode(MC1, OUTPUT); 
pinMode(MC2, OUTPUT); 
brake(); //Motor tormozlangan holatda boshlash 

void loop() 

val = analogRead(POT); 
//oldinga 
if (val > 562) 
{
velocity = map(val, 563, 1023, 0, 255); 
forward(velocity); 

//oldinga 
else if (val < 462) 

velocity = map(val, 461, 0, 0, 255); 
reverse(velocity); 

//tormoz 
else 

brake(); 


//Motor goes forward at given rate (from 0-255) 
void forward (int rate) 

digitalWrite(EN, LOW); 
digitalWrite(MC1, HIGH); 
digitalWrite(MC2, LOW); 
analogWrite(EN, rate); 

//Motor goes backward at given rate (from 0-255) 
void reverse (int rate) 

digitalWrite(EN, LOW); 
digitalWrite(MC1, LOW); 
digitalWrite(MC2, HIGH); 
analogWrite(EN, rate); 

//Stops motor 
void brake () 



digitalWrite(EN, LOW); 
digitalWrite(MC1, LOW); 
digitalWrite(MC2, LOW); 
digitalWrite(EN, HIGH); 
}
Hammasi kutilganidek ishlayaptimi? Agar yo'q bo'lsa, kontaktlarning to’g’ri ulanganligiga 
ishonch hosil qiling. Qo'shimcha qiyinchilik sifatida, ikkinchi o’zgarmas tok motorini oling va uni 
H-ko'prik chipining boshqa yarmiga ulang. Siz minimal harakat bilan bir vaqtning 
o'zida ikkita dvigatelni boshqarishingiz mumkin.
Foydalanilgan Adabiyotlar 
• 
Jeremy Blum, “Exploring arduino: Tools and techniques for engineering 
wizardry”, 2013 
• 
Electronics: A Systems Approach (6th edition), Neil Storey,Pearson Education 
UK, 2017 
• 
Arduino.cc veb sayti ma’lumotlari 

Yüklə 100,63 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin