Муҳаммад ал-хоразмий номидаги тошкент ахборот технологиялари университети



Download 3,17 Mb.
bet6/6
Sana31.12.2021
Hajmi3,17 Mb.
#253509
1   2   3   4   5   6
Bog'liq
LOYIHA ISHI (2)

ENA

IN1

IN2

DC MOTOR STATUS

O

X

X

TO'XTA

1

0

O

Tormozlash

1

0

1

Oldinga

1

1

0

Orqaga

1

1

1

BARKING

Ⅳ. Avtomobilni harakatga keltiring
Birinchi qadam: Dvigatelni boshqaring
Biz motorni tezlikni boshqarmasdan harakatlantirishga harakat qilamiz. Tezlikni boshqarmasdan dasturni yozish oson.

Avvalo, L298N dvigatelining ulanishini ko'rib chiqaylik, biz mashinani boshqarish uchun Arduino 5, 6, 7, 8, 9, 10 pinlarini ishlatamiz. 6 va 7 pin o'ng g'ildirakni boshqaradi. 8 va 9 pinlar chap g'ildirakni boshqaradi. 5 va 10 pinalar ENA va ENB-ni boshqaradi.

Shunday qilib, ulanish quyidagicha:

L298N

V5 kengaytirish kartasi

ENA

5

IN1

6

IN2

7

IN3

8

IN4

9

ENB

11

Yuqorida keltirilgan varaqqa asoslanib, avval biz o'ng g'ildirakni ijobiy tomonga 0,5s burish, 0,5s to'xtash, salbiy tomonga 0,5s burilish va 0,5s to'xtatish uchun oddiy dastur tuzamiz. Va g'ildirak reaktsiyani takrorlaydi.

UNO boshqaruv panelini kompyuterga ulang, right_wheel_rotation \ right_wheel_rotation.ino faylini oching



Kod quyidagicha:
/*In1 connected to the 9 pin,

In2 connected to the 8 pin, ENA pin 10,*/ int ENA=5;

int IN1=6; int IN2=7; void setup()

{

pinMode(IN1,OUTPUT);

pinMode(IN2,OUTPUT);

pinMode(ENA,OUTPUT);

digitalWrite(ENA,HIGH);

}

void loop()

{

digitalWrite(IN1,HIGH);

digitalWrite(IN2,LOW); //Right wheel forward

delay(500);

digitalWrite(IN1,LOW);

digitalWrite(IN2,LOW); //Right wheel stop

delay(500);

digitalWrite(IN1,LOW);

digitalWrite(IN2,HIGH); //Right wheel back

delay(500);

digitalWrite(IN1,LOW);

digitalWrite(IN2,LOW); //Right wheel stop

delay(500);

}

Dasturni UNO platasiga yuklang, uni kompyuterdan uzing va keyin avtomobilning elektr ta'minotini yoqing. Siz o'ng g'ildirak siz kutganingizdek harakatlanishini ko'rasiz.

Agar mashina harakatlanmasa, UNO bortidagi reset tugmasini bosing.

Agar dvigatelning harakatlanish yo'nalishi siz o'rnatgan yo'nalishdan farq qiladigan bo'lsa, siz dvigateldan L298N platasiga qora va qizil chiziqlarning ulanishini o'zgartirishingiz mumkin.


Keyin chap g'ildirakni xuddi shu tarzda aylantiramiz.

UNO boshqaruv panelini kompyuterga ulang, Left_wheel_rotation \ Left_wheel_rotation.ino faylini oching


Kod quyidagicha:
/*In3 connected to the 7 pin,

In4 connected to the 6 pin, ENB pin 5,*/ int ENB=11;

int IN3=8; int IN4=9; void setup()

{

pinMode(IN3,OUTPUT);

pinMode(IN4,OUTPUT);

pinMode(ENB,OUTPUT);

digitalWrite(ENB,HIGH);

}

void loop()

{

digitalWrite(IN3,LOW);

digitalWrite(IN4,HIGH); //Left wheel forward

delay(500);

digitalWrite(IN3,LOW);

digitalWrite(IN4,LOW); //Left wheel stop

delay(500);

digitalWrite(IN3,HIGH);

digitalWrite(IN4,LOW); //Left wheel back

delay(500);

digitalWrite(IN3,LOW);

digitalWrite(IN4,LOW); //Left wheel stop

delay(500);

}

Dasturni UNO platasiga yuklang, uni kompyuterdan uzing va keyin avtomobilning elektr ta'minotini yoqing. Siz o'ng g'ildirak siz kutganingizdek harakatlanishini ko'rasiz.

Ikkinchi qadam: oldinga va orqaga harakat qilish

Avtomobilni disk raskadrovka qilishni tugatgandan so'ng, siz mashinani harakatga keltirish uchun dasturlarni yozishingiz mumkin. Quyida avtoulovning qanday harakatlanish usuli keltirilgan:



Avtomashina oldinga




orqaga

to'xtash


Chap g'ildirak Oldinga




orqaga

to'xtash


O'ng g'ildirak Oldinga




orqaga

to'xtash




CAR chapga buriling




o'ngga

to'xtash


Chap g'ildirak orqaga




Oldinga

to'xtatish

Orqa g'ildirak




orqaga qarab

to'xtaydi

Keyinchalik, biz mashinani 0,5 soniya oldinga siljitish uchun oddiy dastur yozamiz, so'ngra 0,5 soniyani to'xtatib, keyin 0,5 soniyani zaxiralaymiz va keyin 0,5 soniyani to'xtatamiz.



UNO boshqaruv panelini kompyuterga ulang, forward_back \ forward_back.ino faylini ochin



Kod quyidagicha:
int ENA=5; int IN1=6; int IN2=7; int ENB=11; int IN3=8; int IN4=9; void setup()

{

pinMode(IN1,OUTPUT);

pinMode(IN2,OUTPUT);

pinMode(IN3,OUTPUT);

pinMode(IN4,OUTPUT);

pinMode(ENA,OUTPUT);

pinMode(ENB,OUTPUT);

digitalWrite(ENA,HIGH);

digitalWrite(ENB,HIGH);

}

void loop()

{

digitalWrite(IN1,HIGH);

digitalWrite(IN2,LOW); // left wheel goes forward

digitalWrite(IN3,LOW);

digitalWrite(IN4,HIGH); // right wheel goes forward

delay(500);

digitalWrite(IN1,LOW);

digitalWrite(IN2,LOW); //left wheel holds still

digitalWrite(IN3,LOW);

digitalWrite(IN4,LOW); // right wheel holds still

delay(500);

digitalWrite(IN1,LOW);

digitalWrite(IN2,HIGH); //left wheel is back up

digitalWrite(IN3,HIGH);

digitalWrite(IN4,LOW); // right wheel is back up

delay(500);

digitalWrite(IN1,LOW);

digitalWrite(IN2,LOW); // left wheel holds still

digitalWrite(IN3,LOW);

digitalWrite(IN4,LOW); // right wheel holds still

delay(500);

}

Dasturni UNO platasiga yuklang, uni kompyuterdan uzing va keyin avtomobilning elektr ta'minotini yoqing. Siz o'ng g'ildirak siz kutganingizdek harakatlanishini ko'rasiz.


Uchinchi qadam: Dasturni yozing
Avtomobilni avtomatik ravishda harakatga keltirish uchun sizga butun dasturni yozish qiyin bo'lishi mumkin. Shunday qilib, biz harakatlarni turli funktsiyalarga ajratamiz, masalan oldinga siljish va chapga burilish. Va oxirgi bosqichda dasturni yozganimizda, funktsiyani chaqirishimiz mumkin.

Keyinchalik, biz har bir harakat uchun dasturlar yozishni boshlaymiz:


Kod quyidagicha:
/**********************************************

**** Forward sub function functions:Move forward


***********************************************

***/ void forward( )

{

digitalWrite(IN1,HIGH);

digitalWrite(IN2,LOW); //Left wheel forward

digitalWrite(IN3,LOW);

d igita lWrite(IN4,HIGH); / / Right wheel forward

}

/**********************************************

**** Forward sub function functionsMove backward

***********************************************

***/ void back( )

{

digitalWrite(IN1,LOW);

digitalWrite(IN2,HIGH); //Left wheel back

digitalWrite(IN3,HIGH);

digitalWrite(IN4,LOW); //Right wheel back
}

/**********************************************

**** turnLeftsub function functions:Turn left

***********************************************

***/ void turnLeft( )

{

digitalWrite(IN1,HIGH);

digitalWrite(IN2,LOW); //Left wheel back

digitalWrite(IN3,HIGH);

d igita lWrite(IN4,LOW); / / Right wheel forward

}

/**********************************************

**** turn Right sub function functions:Turn right

***********************************************

***/ void turnRight( )

{

digitalWrite(IN1,LOW);

digitalWrite(IN2,HIGH); //Left wheel forward

digitalWrite(IN3,LOW);

digitalWrite(IN4,HIGH); //Right wheel back

}

/**********************************************

**** stop sub function functions:Stop

***********************************************

***/ void _stop()

{

digitalWrite(IN1,LOW);

digitalWrite(IN2,LOW); //Left wheel stop

digitalWrite(IN3,LOW);

digitalWrite(IN4,LOW); //Right wheel stop

}

To'rtinchi qadam: Avtomatik ravishda harakat qilish


Va nihoyat, biz mashinani avtomatik ravishda harakatga keltirish uchun dastur yozishni boshlaymiz: oldinga siljish - 0.4s - zaxira 0.4s - chapga burilish 0.4s - o'ngga 0.4s.
UNO boshqaruv panelini kompyuterga ulang, AUTO_GO_ \ AUTO_GO_.ino faylini oching




Kod quyidagicha:



/*define logic control output pin*/


int in1=6;




int in2=7;




int in3=8;




int in4=9;




/*define channel enable output pins*/




int ENA=5;




int ENB=11;




/*define forward function*/




void _mForward()



{


digitalWrite(ENA,HIGH);




digitalWrite(ENB,HIGH);

digitalWrite(in1,HIGH);//digital output

digitalWrite(in2,LOW);




digitalWrite(in3,LOW);

digitalWrite(in4,HIGH);

Serial.println("Forward");






/*define back function*/
}


void _mBack()



{


digitalWrite(ENA,HIGH);

digitalWrite(ENB,HIGH);

digitalWrite(in1,LOW);




digitalWrite(in2,HIGH)

;

digitalWrite(in3,HIGH)

;

digitalWrite(in4,LOW);




Serial.println("Back");






/*define left function*/
}


void _mleft()



{


digitalWrite(ENA,HIGH);

digitalWrite(ENB,HIGH);

digitalWrite(in1,HIGH)

;

digitalWrite(in2,LOW);




digitalWrite(in3,HIGH)

;

digitalWrite(in4,LOW);




Serial.println("Left");






/*define right function*/
}


void _mright()



{


digitalWrite(ENA,HIGH);

digitalWrite(ENB,HIGH);

digitalWrite(in1,LOW);




digitalWrite(in2,HIGH)

;

digitalWrite(in3,LOW);




digitalWrite(in4,HIGH)

;

Serial.println("Right");






/*put your setup code here, to run once*/
}


void setup() {




Serial.begin(9600); //Open the serial port and set the baud rate to 9600


/*Set the defined pins to the output*/




pinMode(in1,OUTPUT);




pinMode(in2,OUTPUT);




pinMode(in3,OUTPUT);




pinMode(in4,OUTPUT);




pinMode(ENA,OUTPUT);




pinMode(ENB,OUTPUT);





/*put your main code here, to run repeatedly*/
}

v



delay(1000);

mBack();

mForward();

oid loop() {
_

_

delay(1000);





delay(1000);

mright();

mleft();
_

_

delay(1000);



}

Dasturni UNO platasiga yuklang, uni kompyuterdan uzing va keyin avtomobilning elektr ta'minotini yoqing. Siz o'ng g'ildirak siz kutganingizdek harakatlanishini ko'rasiz.






Download 3,17 Mb.

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