Paso 11: Escribir algo de código
Aquí el código es muy simple!
Robot tiene puede hacer muchas funciones como avanzar, mover hacia atrás, girar etc.. Usted puede averiguar las funciones.
Aquí estamos haciendo un obstáculo evitar er usando el sensor de ultrasonido. Nosotros; ll uso la librería servo en esto.
CÓDIGO:
---------------------
#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; constantes de motor velocidad const int pingPin = 7; const int Irpín = 0; Sensor infrarrojo Sharp perno const int dangerThresh = 10; umbral de obstáculos (en cm) int leftDistance, rightDistance; Distancias en cualquier lado Servo panMotor; Servo leftMotor; Servo rightMotor; declarar la duración de los motores; tiempo que toma recibir PING))) señal
void setup() {rightMotor.attach(11); leftMotor.attach(10); panMotor.attach(6); //attach motores panMotor.write(90) de pines adecuada; //set PING))) pan al centro}
void loop() {int distanceFwd = be; si (distanceFwd > dangerThresh) //if camino está claro {leftMotor.write(LForward); rightMotor.write(RForward); //move adelante} else //if camino es bloqueado {leftMotor.write(LNeutral); rightMotor.write(RNeutral); panMotor.write(0); delay(500); rightDistance = be //scan a la derecha delay(500); panMotor.write(180); delay(700); leftDistance = be //scan a la izquierda delay(500); panMotor.write(90); //return al centro delay(100); compareDistance();}} void compareDistance() {si (leftDistance > rightDistance) //if queda menos obstruido {leftMotor.write(LBackward); rightMotor.write(RForward); //turn delay(500) izquierdo;} más Si (rightDistance > leftDistance) //if derecho es menos obstruido {leftMotor.write(LForward); rightMotor.write(RBackward); //turn delay(500) derecha;} else //if son igualmente obstruido {leftMotor.write(LForward); rightMotor.write(RBackward); //turn 180 grados delay(1000);}}
be largo {/ / envía PING))) señal pulso pinMode (pingPin, salida); digitalWrite (pingPin, LOW); delayMicroseconds(2); digitalWrite (pingPin, HIGH); delayMicroseconds(5); digitalWrite (pingPin, LOW); Conseguir la duración que tarda en recibir el eco pinMode (pingPin, entrada); duración = pulseIn (pingPin, HIGH); Convertir duración duración vuelta distancia / 29 / 2; }
------------