Kontrolli i motorit DC Arduino Uno R3: 6 hapa
Kontrolli i motorit DC Arduino Uno R3: 6 hapa
Anonim
Kontrolli i motorit DC Arduino Uno R3
Kontrolli i motorit DC Arduino Uno R3

Në këtë eksperiment, ne do të mësojmë se si të kontrollojmë drejtimin dhe shpejtësinë e një motori DC të vogël me një çip drejtues L293D. Duke bërë eksperimente të thjeshta, ne thjesht do ta bëjmë motorin të rrotullohet majtas dhe djathtas, dhe të përshpejtojë ose ngadalësojë automatikisht.

Hapi 1: Përbërësit

- Arduino Uno bordi * 1

- Kabllo USB * 1

- L293D *1

- Motor i vogël DC * 1

- Breadboard * 1

- Telat e kërcyesit

Hapi 2: Parimi

Rryma maksimale e një porti Arduino I/O është 20mA, por rryma e lëvizjes së një motori është të paktën 70mA. Prandaj, ne nuk mund të përdorim drejtpërdrejt portën I/O për të drejtuar rrymën; në vend të kësaj, ne mund të përdorim një L293D për të drejtuar motorin. L293D L293D është projektuar për të siguruar rryma drejtimi dydrejtimëshe deri në 600mA në tensione nga 4.5V në 36V. Përdoret për të drejtuar ngarkesa induktive siç janë stafetat, solenoidet, motorët DC dhe bipolarë, si dhe ngarkesa të tjera me rrymë të lartë/tension të lartë në aplikimet e furnizimit pozitiv.

Shikoni figurën e kunjave më poshtë. L293D ka dy kunja (Vcc1 dhe Vcc2) për furnizimin me energji. Vcc2 përdoret për të furnizuar energjinë për motorin, ndërsa Vcc1, për çipin. Meqenëse këtu përdoret një motor DC me madhësi të vogël, lidhni të dy kunjat në +5V. Nëse përdorni një motor me fuqi më të lartë, duhet të lidhni Vcc2 me një furnizim me energji të jashtme.

Hapi 3: Diagrami Skematik

Diagrami Skematik
Diagrami Skematik

Hapi 4: Procedurat

Procedurat
Procedurat
Procedurat
Procedurat

Pika Enable 1, 2EN e L293D janë të lidhura tashmë me 5V, kështu që L293D është gjithmonë në gjendje pune. Lidhni kunjat 1A dhe 2A me pinin 9 dhe 10 të bordit të kontrollit respektivisht. Dy kunjat e motorit janë të lidhur përkatësisht me kunjat 1Y dhe 2Y. Kur kunja 10 është vendosur si nivel i lartë dhe kunja 9 si e ulët, motori do të fillojë të rrotullohet drejt një drejtimi. Kur kunja 10 është e ulët dhe kunja 9 është e lartë, ajo rrotullohet në drejtim të kundërt.

Hapi 1:

Ndërtoni qarkun.

Hapi 2:

Shkarkoni kodin nga

Hapi 3:

Ngarko skicën në tabelën Arduino Uno

Klikoni në ikonën Ngarko për të ngarkuar kodin në tabelën e kontrollit.

Nëse "Done uploading" shfaqet në fund të dritares, kjo do të thotë që skica është ngarkuar me sukses.

Tani, tehu i motorit DC do të fillojë të rrotullohet majtas dhe djathtas, me një shpejtësi që ndryshon në përputhje me rrethanat.

Hapi 5: Kodi

Kodi
Kodi

// Kontrolli i motorit DC

// Motori DC

do të fillojë të rrotullohet majtas dhe djathtas, dhe shpejtësia e tij do të ndryshojë në përputhje me rrethanat.

//Email: [email protected]

// Faqja e internetit: www.primerobotics.in

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

const int motorIn1

= 9; // ngjiteni në njërën nga kunjat e motorit

const int motorIn2

= 10; // bashkëngjitni një kunj tjetër të motorit

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

void setup ()

{

pinMode (motorIn1, OUTPUT); // inicializoni pinin motorIn1 si dalje

pinMode (motorIn2, OUTPUT); // inicializoni pinin motorIn2 si dalje

}

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

lak void ()

{

në drejtim të akrepave të orës (200); // rrotullohen në drejtim të akrepave të orës

vonesa (1000);

// prit për një sekondë

në drejtim të kundërt të orës (200); // rrotullohen në drejtim të kundërt të akrepave të orës

vonesa (1000);

// prit për një sekondë

}

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

/Funksioni për të

motori i makinës rrotullohet në drejtim të akrepave të orës

bosh në drejtim të akrepave të orës (int

Shpejtësia)

{

analogWrite (motorIn1, Shpejtësia); // vendosni shpejtësinë e motorit

analogWrite (motorIn2, 0); // ndaloni kunjin motorIn2 të motorit

}

// Funksioni për të përzënë

motori rrotullohet në drejtim të kundërt të akrepave të orës

i pavlefshëm

në drejtim të kundërt të akrepave të orës (shpejtësia int)

{

analogWrite (motorIn1, 0); // ndaloni kunjin motorIn1 të motorit

analogWrite (motorIn2, Shpejtësia); // vendosni shpejtësinë e motorit

}

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

Recommended: