Inhoudsopgave:

DC-motorbesturing Arduino Uno R3 - Ajarnpa
DC-motorbesturing Arduino Uno R3 - Ajarnpa

Video: DC-motorbesturing Arduino Uno R3 - Ajarnpa

Video: DC-motorbesturing Arduino Uno R3 - Ajarnpa
Video: Программирование Arduino с оптическим энкодером Epson и двигателем постоянного тока — серия DIY DTG 2024, November
Anonim
DC-motorbesturing Arduino Uno R3
DC-motorbesturing Arduino Uno R3

In dit experiment zullen we leren hoe we de richting en snelheid van een kleine gelijkstroommotor kunnen regelen door middel van een driverchip L293D. Door eenvoudige experimenten te doen, laten we de motor gewoon naar links en rechts draaien en automatisch versnellen of vertragen.

Stap 1: Componenten

- Arduino Uno-bord * 1

- USB-kabel * 1

-L293D *1

- Kleine DC-motor * 1

- Broodplank * 1

- Jumper draden

Stap 2: Principe

De maximale stroomsterkte van een Arduino I/O-poort is 20mA, maar de aandrijfstroom van een motor is minimaal 70mA. Daarom kunnen we de I/O-poort niet rechtstreeks gebruiken om de stroom aan te sturen; in plaats daarvan kunnen we een L293D gebruiken om de motor aan te drijven. L293D L293D is ontworpen om bidirectionele aandrijfstromen tot 600 mA te leveren bij spanningen van 4,5 V tot 36 V. Het wordt gebruikt voor het aansturen van inductieve belastingen zoals relais, solenoïdes, gelijkstroom- en bipolaire stappenmotoren, evenals andere belastingen met hoge stroom/hoogspanning in toepassingen met positieve voeding.

Zie de afbeelding van pinnen hieronder. L293D heeft twee pinnen (Vcc1 en Vcc2) voor voeding. Vcc2 wordt gebruikt om de motor van stroom te voorzien, terwijl Vcc1 voor de chip wordt gebruikt. Aangezien hier een kleine gelijkstroommotor wordt gebruikt, sluit u beide pinnen aan op +5V. Als u een motor met een hoger vermogen gebruikt, moet u Vcc2 aansluiten op een externe voeding.

Stap 3: Het schematische diagram

Het schematische diagram
Het schematische diagram

Stap 4: Procedures

Procedures
Procedures
Procedures
Procedures

De Enable pin 1, 2EN van de L293D zijn al verbonden met 5V, dus L293D is altijd in de werkende staat. Sluit pin 1A en 2A respectievelijk aan op pin 9 en 10 van de besturingskaart. De twee pinnen van de motor zijn respectievelijk verbonden met pin 1Y en 2Y. Wanneer pin 10 is ingesteld op Hoog niveau en pin 9 op Laag, begint de motor in één richting te draaien. Wanneer de pin 10 laag is en pin 9 hoog, draait deze in de tegenovergestelde richting.

Stap 1:

Bouw de schakeling.

Stap 2:

Download de code van

Stap 3:

Upload de schets naar het Arduino Uno-bord

Klik op het pictogram Uploaden om de code naar de besturingskaart te uploaden.

Als "Klaar met uploaden" onderaan het venster verschijnt, betekent dit dat de schets succesvol is geüpload.

Nu begint het blad van de gelijkstroommotor naar links en rechts te draaien, met een snelheid die overeenkomstig varieert.

Stap 5: Coderen

Code
Code

//DC-motorbesturing

//De DC-motor

begint naar links en rechts te draaien en de snelheid zal dienovereenkomstig variëren.

// Website: www.primerobotics.in

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

const int motorIn1

= 9; // bevestig aan een van de pennen van de motor

const int motorIn2

= 10; // bevestig aan een andere pin van de motor

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

ongeldige setup()

{

pinMode (motorIn1, UITGANG); // initialiseer de motorIn1-pin als uitvoer

pinMode (motorIn2, UITGANG); // initialiseer de motorIn2-pin als uitvoer

}

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

lege lus()

{

met de klok mee (200); //met de klok mee draaien

vertraging (1000);

// wacht even

tegen de klok in (200); //draai tegen de klok in

vertraging (1000);

// wacht even

}

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

/De functie om

aandrijfmotor draaien met de klok mee

ongeldig met de klok mee (int

Snelheid)

{

analoogWrite(motorIn1, Snelheid); // stel de snelheid van de motor in

analoogWrite(motorIn2, 0); // stop de motorIn2 pin van motor

}

//De functie om te rijden

motor draait tegen de klok in

leegte

tegen de klok in (int snelheid)

{

analoogWrite(motorIn1, 0); // stop de motorIn1 pin van motor

analoogWrite(motorIn2, Snelheid); // stel de snelheid van de motor in

}

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

Aanbevolen: