GOduino III - skärbräda-vänlig Arduino-baserad robot controller (2 / 6 steg)

Steg 2: Kontrollera 2 borstad DC motorer



GOduino III använder L293D h-bron (motor förare) som är en robust och billig dopp IC som förenklar kretsdesign. Det har inbyggt EMF skydd och termisk avstängning om motorer dra för mycket ström som kan också skada L293D.

En enda L293D kan styra 2 borstad DC motorer med peak/stall nuvarande upp till 600mA per motor. Topp/stall nuvarande är den nuvarande motorn drar när förhindras från att rotera medan fortfarande drivs.

Om du kombitrafik två L293D ICs, kan du dubbla strömmen av GOduino III till 1.2a per motor. Detta är mer än tillräckligt för att driva de flesta DC motorer för små robotar.

Pololu och Solarbotic, till exempel, ger ett brett urval av motorer som fungerar väl inom nuvarande betyg av L293D.

L293D logik krets drivs via GOduino III power regulator (7805) men den L293D motorstyrning krets drivs direkt från batteriet.

Varje motor drivs från L293D via en 2-polig hane rubrik (Motor 1 och Motor 2). Ordningen på ansluter en motor polacker till 2-stifts huvud beslutar rotationsriktningen av motorn. Du kan också ändra motor rotationsriktning från din Arduino skiss.

Tips: Löda en 0.1uF keramiska kondensator över polerna av din borstad likströmsmotor för extra krets stabilitet. Förkorta leder på kondensatorn så mycket som möjligt för bättre svar och för att undvika oavsiktliga elektriska shorts.

GOduino III: s ATmega328 stift mappas till L293D h-bryggan på detta sätt (med Arduino pin numreringssystem):

Motor 1 STOLPE1---> Arduino stift 4
Motor 1 stolpe 2---> Arduino stift 2
Motor 1 aktivera---> Arduion stift 5 (PWM)

Motor 2 STOLPE1---> Arduino stift 7
Motor 2 Pole2---> Arduino stift 8
Motor 2 aktivera---> Arduion stift 6 (PWM)

SOFTWARE LIBRARY

Jag skrev Goduino motor biblioteket för att eliminera behovet av att memorera höga, låga pin utgång sekvenser som krävs för att vända eller stoppa en motor.

Det finns 4 funktioner i Goduino motor biblioteket:

  • motorSpeed (mot1speed, mot2speed) anger hastigheten för båda motorerna.
  • motorStop(motorNum) stoppar en motor.
  • motorForward(motorNum) snurrar en motor i en riktning.
  • motorBack(motorNum) snurrar en motor i motsatt riktning.

PARAMETRAR

Det finns två 2-polig hane rubriker på GOduino III PCB: Motor 1 och Motor 2. Alla funktioner i Goduino biblioteket motor som tar en parameter, det är antingen 1 för Motor 1 eller 2 för Motor 2.

Den enda funktion som har två parametrar är funktionen motorSpeed(). Den första parametern anger hastigheten för Motor 1 och den andra anger hastigheten för Motor 2. Den maximala hastigheten är 1023. Detta innebär att din motor max hastighet kan ökas eller minskas med 1023 i taget.

GOduino III biblioteket och andra stödfiler kan laddas ner från Github:
https://github.com/techbitar/goduino

Du kan använda exempelkoden (motortest.ino) ingår i Goduino biblioteket under mappen exempel att testa och synkronisera motor rotationsriktningen. Videon visar den GOduino III Kör test rutin. Öppna från Arduino IDE:

Filer/exempel/Goduino/motortest

Obs: Jag har undvikit att använda Arduino Uno stift 3 och 11 eftersom de används av funktionen Arduino tone(). Så nu kan jag bygga en robot som gör ljud. (Applåder).

Detta är provet koden som används i videon. Kolla in min Github för uppdateringar och buggfixar:

/*
Fil: motortest.ino - exemplet skiss för att testa GOduino III robot controller.
Skapad av: Hazim Bitar (techbitar på gmail punkt com)
Datum: 23 augusti, 20012.
Version: 0.11 beta
Licens: Ut i offentligheten.
*/

#include < Goduino.h >

Goduino myrobot;

void setup() {
Serial.BEGIN(9600);
Serial.println ("inställda hastigheten av båda motorer till 100 (max 1024)");
myrobot.motorSpeed(50,50);
}

void loop() {

Serial.println ("TESTFAS I - snurra båda motorer tillsammans i samma riktning");
Delay(3000);

Serial.println ("Spin båda motorer i en riktning (3 SEK)");
myrobot.motorForward(1);
myrobot.motorForward(2);
Delay(3000);

Serial.println ("Stop båda motorer för 1 SEK");
myrobot.motorStop(1);
myrobot.motorStop(2);
Delay(1000);

Serial.println ("Spin båda motorer i motsatt riktning (3 SEK)");
myrobot.motorBack(1);
myrobot.motorBack(2);
Delay(3000);

Serial.println ("Stop båda motorer för 1 SEK");
myrobot.motorStop(1);
myrobot.motorStop(2);
Delay(1000);

//=================================================================================

Serial.println ("TEST fas II - snurra varje MOTOR OPPOSTE av andra");
Delay(3000);

Serial.println ("Spin motor 1 i en riktning medan motor 2 i motsatt riktning (3 SEK)");
myrobot.motorForward(1);
myrobot.motorBack(2);
Delay(3000);

Serial.println ("Stop båda motorer för 1 SEK");
myrobot.motorStop(1);
myrobot.motorStop(2);
Delay(1000);

Serial.println ("Spin motor 2 i en riktning medan motor 1 i motsatt riktning (3 SEK)");
myrobot.motorBack(1);
myrobot.motorForward(2);
Delay(3000);

Serial.println ("Stop båda motorer för 1 SEK");
myrobot.motorStop(1);
myrobot.motorStop(2);
Delay(1000);

//=================================================================================

Serial.println ("TEST fas III - snurra varje MOTOR medan andra stoppas");
Delay(3000);

Serial.println ("Spin motor 1 i en riktning medan motor 2 är stoppad (3 SEK)");
myrobot.motorForward(1);
myrobot.motorStop(2);
Delay(3000);

Serial.println ("Stop båda motorer för 1 SEK");
myrobot.motorStop(1);
myrobot.motorStop(2);
Delay(1000);

Serial.println ("Spin motor 2 i en riktning medan motor 1 är stoppad (3 SEK)");
myrobot.motorForward(2);
myrobot.motorStop(1);
Delay(3000);

Serial.println ("Stop båda motorer för 1 SEK");
myrobot.motorStop(1);
myrobot.motorStop(2);
Delay(1000);

Serial.println ("Spin motor 1 i omvänd riktning medan motor 2 är stoppad (3 SEK)");
myrobot.motorBack(1);
myrobot.motorStop(2);
Delay(3000);

Serial.println ("Stop båda motorer för 1 SEK");
myrobot.motorStop(1);
myrobot.motorStop(2);
Delay(1000);

Serial.println ("Spin motor 2 i omvänd riktning medan motor 1 är stoppad (3 SEK)");
myrobot.motorBack(2);
myrobot.motorStop(1);
Delay(3000);

Serial.println ("Stop båda motorer för 1 SEK");
myrobot.motorStop(1);
myrobot.motorStop(2);
Delay(1000);

}

Se Steg
Relaterade Ämnen

Arduino baserade Robotic Car(wireless controls+Autonomous)

Detta instructable handlar om en Arduino baserad robot bil som använder Arduino, Arduino programmeringsspråk, motor driver, en LCD-skärm visar aktuell status för bilen och även en Bluetooth-modul för trådlös kommunikation från en smartphone eller en...

Arduino-baserad robot med IR radar

robot prototypen i detta Instructable är min andra Arduino-baserad "slumbot" som är en autonom robot. Den är kopplad med husgeråd och skrotar. Roboten ser"" med en IR-scanning sensor roteras ett servo. Det ser vänster, framåt, och rätt...

Dual Core Arduino / Atemga328 - Robot Controller & Audio Player

Hej där stipendiaten beslutsfattare,Jag vill dela några erfarenheter som jag har fått när han arbetade på mitt projekt, som ledde mig att använda 2 Arduino.Varför?Kort version: eftersom det ser ut som ett roligt projekt.Lång version: Jag körde slut p...

Ligth efterföljare Arduino baserad Robot

detta är min allra första robot, en ligth anhängare Robot1. Tamiya caterpillar kit2. Tamiya twin växellåda3. Arduino Diecimila4. H bridge L293e5. 8 dioder6. bröd styrelse7. 2 foto motstånd8 massa sladdarKällkoden:int pinMotorL1 = 2;int pinMotorL2 = 3...

3 axel Arduino-baserad CNC Controller

jag har spelat med olika CNC design och Stepper Controller i många år nu. Jag började bygga CNC-maskiner länge sedan. Min första inspiration kom från Bruce Shapiro eggbot. Jag försökte några varianter av det och även styrelsen från onda galen vetensk...

Billiga arduino baserad robotic jordluckraren prostetic hand

Detta projekt kom att tänka på de underrättats Medicare inte skulle betala för en hand, endast kroken. så jag bestämde mig att försöka göra en robotic hand. Den totala partscost är väl under $100.servo https://www.Sparkfun.com/products/10333klo https...

Arduino-baserad Robotic Manipulator

detta är min första prototypen av en robotic manipulator. Fram till nu, har jag verkligen fokus på fysik aspekten av armen så jag inte har arbetat en hel del på programmet aspekt. Det nuvarande målet med detta projekt är att skapa en solid plattform...

Kontrollera din Arduino kamera Robot från datorn

En Arduino baserad Robot kontrollerad från en PC med visual basic och en Bluetooth-adapter.Steg 1: Layout Jag har gjort denna robot baserad på den populära DD1-1 spårade plattformen. Du kan fjärden det billigt på Ebay, eller AliExpress.På tavlan stäl...

Att införa Climaduino - Arduino-baserad termostaten du styr från din telefon!

Uppdatering:Det finns en ny version av Climaduino och Climaduino Controller med några mycket väsentliga ändringar.Stöder flera zonerAnvänder Arduino YúnFungerar med Central luftkonditioneringKommunicerar med MQTT protokoll (kan integrera med andra sy...

Arduino justerbar Timer Controller med relä

detta är mitt första inlägg här, så jag hoppas jag får allt rätt!Jag har en gasvärmare millivolt (termoelement högen) veranda som har en manuell kontroll på den. Jag tröttnade på att få upp och ner att slå på och stänga av den, så jag beslöt att göra...

Arduino-baserad byta spänningsregulatorer

DC till DC omvandlare används effektivt konvertera DC-spänningar. De har en verkningsgrad på upp till 95% vilket gör dem användbara för LED strips, CYKELLYSEN, batteriladdare och solar powered enheter. En spänningsomvandlare kräver en PWM källa som e...

Pipe-Bot - en smart arduino bluetooth robot

Detta är min första instructables. Här visar jag hur man gör en billig två hjulförsedda arduino bluetooth robot, med PVC-rör och dess leder (för att göra kroppen). Det är enkelt att göra och lätt att programmet. Det har mycket roligt att spela med de...

Arduino-kontrollerade Robotic trumma

I år jag har berättat för någon som lyssnar som skulle jag bygga en robot trumma. De flesta slags ryckte likgiltigt. Även när jag byggde det, de flesta slags sneglade över på det och förmedlas tveksamhet. Det verkade som ingen men själv var övertygad...

Spåra din bil med en Arduino-baserad Lojack

Bilstölder är en verklig dra! Öka dina chanser att få tillbaka din bil genom att installera denna enkla Arduino-baserad tracker i bilen.Detta projekt är ganska enkel, och skulle vara ett bra projekt för nya Arduino programmerare letar efter något lit...

Arduino-baserad Bi-color LED Matrix Flappy fågeln spel

Vi har byggt en hel del projekt med Bi-färg (rött och grönt) LED Matrix drivrutinsmodulen Kit från jolliFactory och har publicerat dem som instructables här. Var och en av dessa moduler använder två MAX7219 Display Driver ICs för att driva en Bi-colo...

Arduino-baserad skugga larm

Shadow larm används vanligen för skydd mot stöld. En skugga larm är en enhet som avger ett larm när en skugga faller på den. Beskrivs här är en enkel krets larm arduino baserade skugga. Denna kompakta skugga larm enhet kan avkänning en rörlig skugga...

Låg höjd miljöövervakning med en Arduino baserade väder Instrument och Aeropod Remote Sensing plattform

ProjektöversiktStudenter på New Lothrop High School i Michigan har arbetat tillsammans för att bygga en plattform för remote sensing låg höjd som kallas en "Aeropod" och rummen har det med ett "Arduino" baserade väder instrument att sa...

Med en Arduino ritning Robot med timme av koden Tutorials

Jag skapade en Arduino ritning robot för en workshop för att hjälpa tonåring flickor få intresserade av STEM ämnen (se). Roboten var avsedd att använda sköldpadda stil programmering kommandon som forward(distance) och turn(angle) för att skapa intres...

GEST kontrollerade Arduino baserade Rover (Wireless + linje följande)

Vad är det kan?1. det kan styras med gester.2. det kan skicka temperatur, objekt avstånd, batterinivå, etc. värden till handsken (LCD).3. kan köras på 45 + graders vinkel.4. Tx Rx par på både rover och handske (för dubbelriktad dataöverföring).Varför...