LEGO Spybotics med Arduino (3 / 3 steg)
Steg 3: Arduino
Koppla Arduino som anges i föregående steg och i koden. 3 AA-batterier fungerar bra för motorerna (du kan låna den befintliga batterifack för att hysa dem).
Här är koden. Det helt enkelt rör sig framåt och bot, vänder höger, vänster, sedan vänder och upprepar.
/* int LED = 13. med hjälp av inbyggda LED void setup() } void loop() } Annullera go (booleskt dir, int spd, int tid) //function som flyttar roboten framåt eller bakåt IF(Dir) //if riktning är sant, gå framåt analogWrite(Eright,spd); Aktivera rätt motor på tanke på hastighet } void tur (boolean vänster, int spd, int tid) //function som gör roboten vända
Spybotics + Arduino
NIC boja
20/11/13
*/
int Eleft = 6; Aktivera vänster motor. Måste vara en PWM stift
int Eright = 5; Aktivera rätt motor. Måste vara en PWM stift
int Rforward = 12; rätt motor fram
int Rbackwards = 11; rätt motor tillbaka
int Lforward = 9; vänster motor fram
int Lbackwards = 10; vänster motor tillbaka
{
initialisera pins som resultat
pinMode (LED, OUTPUT);
pinMode (Eleft, OUTPUT);
pinMode (Eright, OUTPUT);
pinMode (Rforward, OUTPUT);
pinMode (Rbackwards, OUTPUT);
pinMode (Lforward, OUTPUT);
pinMode (Lbackwards, OUTPUT);
{
int x = 200. Detta värde anger hastigheten på alla rörelser
gå (true, 255, x); gå framåt i hastighet 255 för x millisekunder
Delay(20); vänta lite
vända (true, 255, x); sväng höger vid hastighet 255 för x millisekunder
Delay(20);
vända (falsk, 255, x);
Delay(20);
gå (falsk, 255, x);
Delay(20);
{
{
digitalWrite (Rbackwards, låg);
digitalWrite (Rforward, hög);
digitalWrite (Lbackwards, låg);
digitalWrite (Lforward, hög);
}
annars //else om riktning är falskt, gå tillbaka
{
digitalWrite (Rbackwards, hög);
digitalWrite (Rforward, låg);
digitalWrite (Lbackwards, hög);
digitalWrite (Lforward, låg);
}
analogWrite(Eleft,spd); Aktivera vänster motor på tanke på hastighet
Delay(Time); fortsätta att vända för ges tid
analogWrite(Eright,0); stoppa rätt motor
analogWrite(Eleft,0); stoppa vänster motor
{
IF(Left) //if vänster är sant, sväng vänster
{
digitalWrite (Rbackwards, låg);
digitalWrite (Rforward, hög);
digitalWrite (Lbackwards, hög);
digitalWrite (Lforward, låg);
}
annars //else om kvar är falskt, sväng höger
{
digitalWrite (Rbackwards, hög);
digitalWrite (Rforward, låg);
digitalWrite (Lbackwards, låg);
digitalWrite (Lforward, hög);
}
analogWrite (Eright, spd); //enable rätt motor på tanke på hastighet
analogWrite(Eleft,spd); Aktivera vänster motor på tanke på hastighet
Delay(Time); fortsätta att vända för ges tid
analogWrite(Eright,0); stoppa rätt motor
analogWrite(Eleft,0); stoppa vänster motor
}
(Ursäkta ibland slarvigt koden)