Stap 4: Ard-e op Auto: met behulp van de Ardunio te rijden van de DC-motoren
De chip neemt in principe drie ingangen, één PWM-ingang die Hiermee stelt u de snelheid van de motor en verandert het in- en uitschakelen en twee "inputs" die bepalen van de richting die de motor draait. Het PWM-pin is het inschakelen van de L293, de twee pinnen die bepalend zijn voor de richting van de motor spins zijn de ingangen 1A en 2A. De motoren zijn aangesloten op de uitgangen 1 jaar en 2 Y. De L293 kunt twee DC-motoren, dus zodra je het aangesloten op de Arduino Ard-e zelf kan rijden.
De data-sheet voor de L293 kan worden gevonden op http://www.datasheetcatalog.com/datasheets_pdf/L/2/9/3/L293.shtml
Uiteindelijk heb ik twee van de L293-chips uit www.mouser.com te bestellen en ze kost me ongeveer $7. Na een paar uur van trial and error kreeg ik eindelijk de Arduino te rijden beide Ard-e motoren. Ik niet lees de data-sheet goed genoeg omdat ik oorspronkelijk 3V gebruikt werd om te proberen en de L293 worden uitgevoerd wanneer het duidelijk (nu ten minste zijn duidelijk) moet ten minste vijf volt. Dus na talrijke uitstapjes naar www.Arduino.cc hier is de code die ik gebruikt om te testen rijden Ard-e motoren:
int diraPin = 10;
int dirbPin = 9; Deze twee moeten tegenover digitale waarden te draaien van de motor als ze zowel hoog of beide laag dan de motor is eigenlijk geremd.
int enablePin = 11; Deze pin wordt de snelheid van de motor ingesteld en moet een pin PWM.
int dira2Pin = 2;
int dirb2Pin = 3;
int enable2Pin = 5; Deze worden gebruikt op dezelfde manier de tweede motor rijden.
int val = 0; Variabele gebruikt om de snelheid van de motoren.
VOID Setup {}
pinMode (diraPin, OUTPUT);
pinMode (dirbPin, OUTPUT);
pinMode (enablePin, OUTPUT);
pinMode (dira2Pin, OUTPUT);
pinMode (dirb2Pin, OUTPUT);
pinMode (enable2Pin, OUTPUT); Verklaart alle van de pinnen als uitgang.
}
void loop {}
Val = 175; Een waarde die wordt gebruikt voor het instellen van de snelheid van de motor, ongeveer 70% van de snelheid.
Motor 1 achteruit gedurende één seconde draaien
analogWrite (enablePin, val); De snelheid van de motoren met PWM
digitalWrite (diraPin, laag);
digitalWrite (dirbPin, hoge);
motor 2 achteruit gedurende één seconde draaien
analogWrite (enable2Pin, val);
digitalWrite (dira2Pin, laag);
digitalWrite (dirb2Pin, hoge);
delay(1000); Als u omschakelt welke richting pin is hoog en laag zal de motor draaien een andere richting.
motor 1 voorwaarts gedurende één seconde draaien
digitalWrite (diraPin, hoge);
digitalWrite (dirbPin, laag);
motor 2 vooruit gedurende één seconde draaien
digitalWrite (dira2Pin, hoge);
digitalWrite (dirb2Pin, laag);
delay(1000);
Stop voor een tweede
Val = 0;
analogWrite (enablePin, val);
analogWrite (enable2Pin, val);
delay(1000);
}
Dus uiteindelijk heb ik om dit te testen uit op Ard-e waardoor een breadboard op de toevoeging dat de pan en tilt systeem eerder had gehouden. Ik heb verplaatst ook de Arduino rechts naast het breadboard voor gemakkelijk prototyping. Ik had ook een toe te voegen twee AA batterijen zodat het de L293 zou hebben de 6V moet voor het aandrijven van de motoren.
Heres een snelle video van Ard-e uitvoeren van dit programma. Een van de motoren draaien sneller dan de andere zodat hij naar de camera in de buurt van het einde van het bocht. Ik weet echt niet waarom dit gebeurt...
Dus zodra u alle code schrijven en herschikken van de componenten zodat de Arduino baas rond de L293 en krijgen van die vervelende gelijkstroommotoren onder controle Ard-e mogelijk gebruikt verhogen dramatisch. Alles wat die je nu moet zijn enkele sensoren.