Բովանդակություն:

DC Motor Control Arduino Uno R3: 6 քայլ
DC Motor Control Arduino Uno R3: 6 քայլ

Video: DC Motor Control Arduino Uno R3: 6 քայլ

Video: DC Motor Control Arduino Uno R3: 6 քայլ
Video: Control a DC Motor with Arduino (Lesson #16) 2024, Հուլիսի
Anonim
DC Motor Control Arduino Uno R3
DC Motor Control Arduino Uno R3

Այս փորձի ընթացքում մենք կսովորենք, թե ինչպես վերահսկել փոքր չափի DC շարժիչի ուղղությունը և արագությունը վարորդական չիպի L293D- ի միջոցով: Պարզ փորձեր կատարելով ՝ մենք պարզապես կստիպենք շարժիչը պտտել ձախ և աջ և արագացնել կամ դանդաղեցնել ինքնաբերաբար:

Քայլ 1: Բաղադրիչներ

- Arduino Uno տախտակ * 1

- USB մալուխ * 1

- L293D *1

- Փոքր DC շարժիչ * 1

- Հացաթուղթ * 1

- Jumper լարերը

Քայլ 2: Սկզբունք

Arduino I/O նավահանգստի առավելագույն հոսանքը 20 մԱ է, իսկ շարժիչի շարժիչ հոսանքը `առնվազն 70 մԱ: Հետևաբար, մենք չենք կարող ուղղակիորեն օգտագործել I/O նավահանգիստը `ընթացիկ հոսքը քշելու համար. փոխարենը, մենք կարող ենք օգտագործել L293D շարժիչը վարելու համար: L293D L293D- ն նախատեսված է ապահովել մինչև 600 մԱ երկկողմանի հոսանքի հոսանքներ 4.5 Վ -ից 36 Վ լարման դեպքում: Այն օգտագործվում է ինդուկտիվ բեռներ վարելու համար, ինչպիսիք են ռելեներ, էլեկտրամագնիսական հոսանքները, DC և երկբևեռ քայլող շարժիչները, ինչպես նաև այլ բարձր ընթացիկ/բարձրավոլտ բեռներ դրական մատակարարման ծրագրերում:

Տե՛ս ստորև բերված կապերի պատկերը: L293D- ն ունի երկու կապ (Vcc1 և Vcc2) էլեկտրամատակարարման համար: Vcc2- ն օգտագործվում է շարժիչի էներգիա մատակարարելու համար, իսկ Vcc1- ը `չիպի համար: Քանի որ այստեղ օգտագործվում է փոքր չափի DC շարժիչ, միացրեք երկու կապում +5V- ին: Եթե դուք օգտագործում եք ավելի բարձր հզորության շարժիչ, ապա ձեզ հարկավոր է Vcc2- ը միացնել արտաքին էներգիայի աղբյուրին:

Քայլ 3: Սխեմատիկ դիագրամ

Սխեմատիկ դիագրամ
Սխեմատիկ դիագրամ

Քայլ 4: Ընթացակարգեր

Ընթացակարգեր
Ընթացակարգեր
Ընթացակարգեր
Ընթացակարգեր

L293D- ի Enable pin 1, 2EN- ն արդեն միացված է 5V- ին, ուստի L293D- ը միշտ աշխատանքային վիճակում է: Միացրեք 1A և 2A կապերը համապատասխանաբար կառավարման տախտակի 9 և 10 կապակցիչներին: Շարժիչի երկու կապում միացված են համապատասխանաբար 1Y և 2Y կապանքներին: Երբ կապում 10 -ը սահմանվում է որպես բարձր մակարդակ, իսկ 9 -ը `ցածր, շարժիչը կսկսի պտտվել մեկ ուղղությամբ: Երբ կապում 10 -ը ցածր է, իսկ 9 -ը ՝ բարձր, այն պտտվում է հակառակ ուղղությամբ:

Քայլ 1:

Կառուցեք շրջանը:

Քայլ 2:

Ներբեռնեք կոդը https://github.com/primerobotics/Arduino կայքից

Քայլ 3:

Վերբեռնեք ուրվագիծը Arduino Uno տախտակին

Կտտացրեք Վերբեռնման պատկերակին ՝ կոդը կառավարման տախտակին վերբեռնելու համար:

Եթե «Կատարված բեռնումը» հայտնվում է պատուհանի ներքևում, նշանակում է, որ ուրվագիծը հաջողությամբ բեռնվել է:

Այժմ, DC շարժիչի սայրը կսկսի պտտվել ձախ և աջ ՝ համապատասխանաբար տատանվող արագությամբ:

Քայլ 5: Կոդ

Կոդ
Կոդ

// DC շարժիչի հսկողություն

// DC շարժիչ

կսկսի պտտվել ձախ և աջ, և դրա արագությունը համապատասխանաբար կտատանվի:

// Վեբ կայք: www.primerobotics.in

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

const int motorIn1

= 9; // ամրացրեք շարժիչի քորոցներից մեկին

const int motorIn2

= 10; // ամրացրեք շարժիչի մեկ այլ կապում

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

դատարկ կարգավորում ()

{

pinMode (motorIn1, OUTPUT); // սկզբնականացնել motorIn1 քորոցը որպես ելք

pinMode (motorIn2, OUTPUT); // սկզբնականացնել motorIn2 քորոցը որպես ելք

}

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

դատարկ շրջան ()

{

ժամացույցի սլաքի ուղղությամբ (200); // պտտել ժամացույցի սլաքի ուղղությամբ

ուշացում (1000);

// սպասիր մի վայրկյան

ժամացույցի սլաքի հակառակ ուղղությամբ (200); // պտտել ժամացույցի սլաքի հակառակ ուղղությամբ

ուշացում (1000);

// սպասիր մի վայրկյան

}

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

/Գործառույթը դեպի

շարժիչի շարժիչը պտտվում է ժամացույցի սլաքի ուղղությամբ

անվավեր ժամացույցի սլաքի ուղղությամբ (ներ

Արագություն)

{

analogWrite (motorIn1, Արագություն); // սահմանել շարժիչի արագությունը

analogWrite (motorIn2, 0); // կանգնեցնել շարժիչի motorIn2 քորոցը

}

// Քշելու գործառույթը

շարժիչը պտտվում է ժամացույցի սլաքի հակառակ ուղղությամբ

դատարկ

ժամացույցի սլաքի հակառակ ուղղությամբ (int Speed)

{

analogWrite (motorIn1, 0); // կանգնեցնել motorIn1 շարժիչը

analogWrite (motorIn2, Արագություն); // սահմանել շարժիչի արագությունը

}

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

Խորհուրդ ենք տալիս: