Stap 8: Triggering GELIJKSTROOMMOTOREN VIA H-brug
De voorste en achterste motoren zijn verbonden met H-brug zoals in het bovenstaande diagram, en elk van de Arduino pinnen, die moeten worden gedefinieerd als een vermogen tijdens setup, zal hebben een variabele toegewezen:
Const int rearMtFw = 4; Rear Engine - FW
Const int rearMtBw = 7; Rear Engine - BW
Const int rearMtEne = 6; De achterkant van de motor - inschakelen
Const int frontMtLeft = 2; Front Motor - verlaten draai
Const int frontMtRight = 3; Front motor - rechtsaf
Const int frontMtEne = 5; Front motor inschakelen
Bijvoorbeeld, als we willen de auto om vooruit te gaan, de functie "moveForward ()" moet zetten van de pin 4 nl HIGH en pin 7 in laag, hierdoor huidige stromen "rechtsom" zoals in het bovenstaande tweede diagram.
Pin 6 is de "enable", slechts wanneer het in "HIGH", zal de brug toestaan huidige stromen naar de motor. Omdat deze pin is een type PWM, is de snelheid waarop de motor zal veranderen, afhankelijk van de waarde van de variabele "MotorSpeed", op pin 6 (waardebereik van 0 tot 255).
De functie moet ook garanderen dat de voorkant motor "handmatig draaien" en daarvoor de pin 5 die de pin "enable" laag moet (de status van pin 2 en 3 doen er niet toe, aangezien de inschakelen is laag). De rode LED die functioneert als "inschakeling achteruitrijdversnelling licht" altijd moet uitgeschakeld zijn wanneer de auto naar voren verplaatst:
VOID moveForward () / / achterste motor FW
{
analogWrite (rearMtEne, MotorSpeed);
digitalWrite (rearMtFw, hoge);
digitalWrite (rearMtBw, laag);
digitalWrite (frontMtEne, laag);
digitalWrite (ledRed, laag);
vertraging (5);
}
Analogie, het is duidelijk dat de auto "terugplaatst" maken, de motor moet draaien in de tegenovergestelde richting. Hiervoor moet de pin 4 laag en hoog pin 7. Merk op dat in dit geval van de "inschakeling achteruitrijdversnelling light", moet worden op. De functie zal in dit geval zijn:
VOID moveBackward () / / achterste motor BW
{
analogWrite (rearMtEne, MotorSpeed);
digitalWrite (rearMtFw, laag);
digitalWrite (rearMtBw, hoge);
digitalWrite (frontMtEne, laag);
digitalWrite (ledRed, hoge);
vertraging (5);
}
Dezelfde redenering kan worden gebruikt voor de voorkant motor, alleen dat in dit geval is er geen snelheidscontrole. Zetten de pin 2 (inschakelen) maakt HIGH de motor "proberen om te zetten" aan de ene kant of de andere afhankelijk van de status van pin 2 en 3:
VOID moveLeft () / / voorzijde links motor
{
digitalWrite (frontMtEne, hoge);
digitalWrite (frontMtLeft, hoge);
digitalWrite (frontMtRight, laag);
digitalWrite (ledRed, laag);
vertraging (10);
}
// ************************************//
VOID moveRight () / / front motor recht
{
digitalWrite (frontMtEne, hoge);
digitalWrite (frontMtLeft, laag);
digitalWrite (frontMtRight, hoge);
digitalWrite (ledRed, laag);
vertraging (10);
}
Om te stoppen met de auto, zomaar alle de brug uitgangen voor de achterste motor in laag, die "vangen" de motoras (voor de voorkant motor, alleen de pin inschakelen moet laag):
VOID moveStop () / / achterste motor uitzetten
{
analogWrite (rearMtEne, laag);
digitalWrite (rearMtFw, laag);
digitalWrite (rearMtBw, laag);
digitalWrite (frontMtEne, laag);
digitalWrite (ledRed, laag);
vertraging (5);
}
In de link hieronder vindt u de volledige code voor de Arduino: