Stap 11: Sommige code te schrijven
De code hier is heel eenvoudig!
Je robot heeft vele functies zoals vooruit, achteruit verplaatsen, draaien enz kunt doen. U kunt de functies uitzoeken.
Hier maken we een obstakel te voorkomen dat er met behulp van ultrasone sensor. We; ll gebruik de servo-bibliotheek in dit.
CODE:
---------------------
#include < servo.h >
Const int RForward = 0; Const int RBackward = 180; Const int LForward = RBackward; Const int LBackward = RForward; Const int RNeutral = 90; Const int LNeutral = 90; constanten voor motor snelheid const int pingPin = 7; Const int irPin = 0; Scherpe infraroodsensor pin const int dangerThresh = 10; drempel voor obstakels (in cm) int leftDistance, rightDistance; afstanden op ofwel zijde Servo panMotor; Servo leftMotor; Servo rightMotor; verklaren van lange duur van de motoren; de tijd het neemt om te ontvangen van PING))) signaal
void setup {rightMotor.attach(11); leftMotor.attach(10); panMotor.attach(6); //attach motoren aan de juiste pinnen panMotor.write(90); //set PING))) pan naar center}
void loop {int distanceFwd = ping(); als (distanceFwd > dangerThresh) //if pad is duidelijk {leftMotor.write(LForward); rightMotor.write(RForward); //move vooruit} anders //if pad is geblokkeerd {leftMotor.write(LNeutral); rightMotor.write(RNeutral); panMotor.write(0); delay(500); rightDistance = ping() met //scan om de juiste delay(500); panMotor.write(180); delay(700); leftDistance = ping() met //scan aan de linker delay(500); panMotor.write(90); //return naar het midden van de delay(100); compareDistance();}} ongeldig compareDistance() {als (leftDistance > rightDistance) //if links is minder belemmerd {leftMotor.write(LBackward); rightMotor.write(RForward); //turn linker delay(500);} anders Als (rightDistance > leftDistance) //if recht is minder belemmerd {leftMotor.write(LForward); rightMotor.write(RBackward); //turn de juiste delay(500);} anders //if ze even zijn belemmerd {leftMotor.write(LForward); rightMotor.write(RBackward); //turn 180 graden delay(1000);}}
lange ping() {/ / afgeven van PING))) signaal pulse pinMode (pingPin, OUTPUT); digitalWrite (pingPin, laag); delayMicroseconds(2); digitalWrite (pingPin, hoge); delayMicroseconds(5); digitalWrite (pingPin, laag); Duur, duurt voor het ontvangen van echo pinMode krijgen (pingPin, INPUT); duur = pulseIn (pingPin, hoge); Duur converteren naar afstand terugkeer duur / 29 / 2; }
------------