Talaan ng mga Nilalaman:

DC Motor Control Arduino Uno R3: 6 Mga Hakbang
DC Motor Control Arduino Uno R3: 6 Mga Hakbang

Video: DC Motor Control Arduino Uno R3: 6 Mga Hakbang

Video: DC Motor Control Arduino Uno R3: 6 Mga Hakbang
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Hulyo
Anonim
DC Motor Control Arduino Uno R3
DC Motor Control Arduino Uno R3

Sa eksperimentong ito, malalaman natin kung paano makontrol ang direksyon at bilis ng isang maliit na maliit na motor na DC ng isang driver chip L293D. Gumagawa ng mga simpleng eksperimento, gagawin lamang namin ang motor na paikutin pakaliwa at pakanan, at awtomatikong mapabilis o mabawasan.

Hakbang 1: Mga Bahagi

- Arduino Uno board * 1

- USB cable * 1

- L293D * 1

- Maliit na DC motor * 1

- Breadboard * 1

- Mga Jumper wires

Hakbang 2: Prinsipyo

Ang maximum na kasalukuyang ng isang Arduino I / O port ay 20mA ngunit ang kasalukuyang drive ng isang motor ay hindi bababa sa 70mA. Samakatuwid, hindi namin direktang magagamit ang I / O port upang himukin ang kasalukuyang; sa halip, maaari naming gamitin ang isang L293D upang magmaneho ng motor. Ang L293D L293D ay idinisenyo upang magbigay ng mga daloy ng bidirectional drive na hanggang sa 600mA sa mga voltages mula 4.5V hanggang 36V. Ginagamit ito upang maghimok ng mga inductive load tulad ng relay, solenoids, DC at bipolar stepping motors, pati na rin ang iba pang mga high-current / high-boltahe na naglo-load sa mga application na positibong-supply.

Tingnan ang pigura ng mga pin sa ibaba. Ang L293D ay may dalawang mga pin (Vcc1 at Vcc2) para sa power supply. Ang Vcc2 ay ginagamit upang magbigay ng lakas para sa motor, habang Vcc1, para sa maliit na tilad. Dahil ang isang maliit na maliit na motor na DC ay ginagamit dito, ikonekta ang parehong mga pin sa + 5V. Kung gumagamit ka ng isang mas mataas na motor na kuryente, kailangan mong ikonekta ang Vcc2 sa isang panlabas na suplay ng kuryente.

Hakbang 3: Ang Diagram ng Skematika

Ang Diagram ng Skematika
Ang Diagram ng Skematika

Hakbang 4: Mga Pamamaraan

Pamamaraan
Pamamaraan
Pamamaraan
Pamamaraan

Ang Paganahin ang pin 1, 2EN ng L293D ay konektado sa 5V na, kaya ang L293D ay palaging nasa estado ng pagtatrabaho. Ikonekta ang pin 1A at 2A sa pin 9 at 10 ng control board ayon sa pagkakabanggit. Ang dalawang mga pin ng motor ay konektado sa pin 1Y at 2Y ayon sa pagkakabanggit. Kapag ang pin 10 ay itinakda bilang Mataas na antas at pin 9 bilang Mababang, ang motor ay magsisimulang paikutin patungo sa isang direksyon. Kapag ang pin 10 ay Mababa at ang pin 9 ay Mataas, umiikot ito sa kabaligtaran na direksyon.

Hakbang 1:

Buuin ang circuit.

Hakbang 2:

I-download ang code mula sa

Hakbang 3:

I-upload ang sketch sa Arduino Uno board

I-click ang I-upload na icon upang mai-upload ang code sa control board.

Kung ang "Tapos nang mag-upload" ay lilitaw sa ilalim ng window, nangangahulugan ito na ang sketch ay matagumpay na na-upload.

Ngayon, ang talim ng motor na DC ay magsisimulang umiikot sa kaliwa at kanan, sa isang bilis na nag-iiba nang naaayon.

Hakbang 5: Code

Code
Code

// DC Motor Control

// Ang DC motor

ay magsisimulang umiikot sa kaliwa at kanan, at ang bilis nito ay mag-iiba nang naaayon.

//Website:www.primerobotics.in

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

Const int motorIn1

= 9; // ilakip sa isa sa pin ng motor

Const int motorIn2

= 10; // ilakip sa isa pang pin ng motor

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

walang bisa ang pag-setup ()

{

pinMode (motorIn1, OUTPUT); // ipasimuno ang motorIn1 pin bilang output

pinMode (motorIn2, OUTPUT); // ipasimuno ang motorIn2 pin bilang output

}

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

walang bisa loop ()

{

pakaliwa (200); // paikutin nang pakanan

pagkaantala (1000);

// maghintay para sa isang segundo

pakaliwa (200); // rotate ng pakaliwa

pagkaantala (1000);

// maghintay para sa isang segundo

}

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

/ Ang pagpapaandar sa

magmaneho ng motor paikutin nang pakanan

walang bisa sa tuwid (int

Bilis)

{

analogWrite (motorIn1, Bilis); // itakda ang bilis ng motor

analogWrite (motorIn2, 0); // ihinto ang motorIn2 na pin ng motor

}

// Ang pagpapaandar upang magmaneho

paikutin paikot ang motor

walang bisa

pakaliwa (int Bilis)

{

analogWrite (motorIn1, 0); // ihinto ang motorIn1 na pin ng motor

analogWrite (motorIn2, Bilis); // itakda ang bilis ng motor

}

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

Inirerekumendang: