Stap 12: Vak Bot in actie
Hier is een voorbeeldcode voor het project van de boxbot dat kunt u aan de slag en een video demonstratie van wat het doet.Opmerking: In de loop van maken het bot lopen rond dat ik heb een paar dingen ontdekt.
1. het is daadwerkelijk veiliger om de versnellingsbak vastbinden met behulp van enkele van de haak tot draad.
2. zorg zeker de wielen worden gecentreerd in de video mijn bot een beetje naar rechts sleept en ik denk dat dit is vanwege het hebben van een uit gecentreerd wiel.
U kunt kopiëren en plak de code hieronder (ik geprobeerd om de verschillende manieren en het zou niet opdagen bestand te koppelen.):
/*
* Simple arduino code
* om te pronken met mogelijkheden
* van de robot
* Reacties naar de kant van elke code is
* "Als u nog nooit hebt gebruikt arduino voordat,..."
*/
Datamembers definiëren
een PIN-code voor de photoresitor en de drempel definiëren
int lightPin = 0;
int drempel = 750; //In de kamer was ik werkzaam in 1000 was echt donker
en 525 was echt helder hebt om te spelen
rond met deze waarde afhankelijk van uw instelling.
Definiëren en initialiseren van variabelen van de motor
Motorsnelheid bereik loopt van 0 tot 255 (springen naar snelste)
Linker Motor
int speedPin1 = 9;
int motor1APin = 4;
int motor2APin = 3;
int speed_value_motor1 = 64; kwartaal snelheid
Goede Motor
int speedPin2 = 10;
int motor4APin = 12;
int motor3APin = 11;
int speed_value_motor2 = 64; kwartaal snelheid
eerste installatie begint de lus
VOID Setup {}
Serial.begin(9600); Seriële communicatieboekjes beginnen
Dit zal alleen invloed hebben op de arduino
Wanneer deze is aangesloten op de PC
Instellen van de digitale pinnen als uitgang voor de linker- en motor
pinMode (speedPin1, OUTPUT);
pinMode (motor1APin, OUTPUT);
pinMode (motor2APin, OUTPUT);
pinMode (speedPin2, OUTPUT);
pinMode (motor4APin, OUTPUT);
pinMode (motor3APin, OUTPUT);
}
Dit is wat daadwerkelijk wordt uitgevoerd
void loop {}
Serial.println(analogRead(lightPin));
if(analogRead(lightPin) > drempel) //Reads in de seriële waarde als het donker is doen de code binnen de haakjes hieronder
{
Serial.println("Dark"); Wordt alleen weergegeven wanneer aangesloten op de PC voor testdoeleinden gebruikt
fullStop();
}
anders //Otherwise (als het niet donker is) doen de code binnen de haakjes hieronder
{
Serial.println("Bright"); Wordt alleen weergegeven wanneer aangesloten op de PC voor testdoeleinden gebruikt
moveForward();
}
delay(1000);
}
Deze methode roept de geschikte methoden om te
beide motoren draaien op een zodanige wijze veroorzaken
dat gaat het bot vooruit
ongeldig moveForward() {}
leftMotorForward();
rightMotorForward();
}
Deze methode maakt alleen het recht
motor om te draaien in een voorwaartse richting
ongeldig leftMotorForward() {}
Zet de motor in de voorwaartse beweging
digitalWrite (motor1APin, laag);
digitalWrite (motor2APin, hoge);
analogWrite (speedPin1, speed_value_motor1);
}
Deze methode maakt alleen links
motor om te draaien in een voorwaartse richting
ongeldig rightMotorForward() {}
digitalWrite (motor4APin, laag);
digitalWrite (motor3APin, hoge);
analogWrite (speedPin2, speed_value_motor2);
}
/ Deze methode zorgt ervoor dat beide motoren om te komen tot een volledige stop
ongeldig fullStop() {}
stopLeftMotor();
stopRightMotor();
}
Wordt de snelheid ingesteld op 0, waardoor de linker motor om te stoppen met spinnen
ongeldig stopLeftMotor() {}
analogWrite (speedPin1, 0);
}
Wordt de snelheid ingesteld op 0, waardoor de juiste motor om te stoppen met spinnen
ongeldig stopRightMotor() {}
analogWrite (speedPin2, 0);
}