Paso 3: código
Este es un código corto y sólo el 20% de lo que tengo en mente para implementar este sistema incorporado.
pero, espero puede ayudar a alguien que es nuevo en control de servo y necesita una rápida instrucción.
Espero que no sea de complicado. así que básicamente lo que pasa es que mi sensor ultrasónico se monta a mi servo y se enfrenta a un ángulo de 90 grados cuando se trata a través de un obstáculo menor o igual a 20cm en esa dirección, el servo gira a la derecha. por favor también tenga en cuenta que si 0 te da un completo giro a la izquierda entonces el giro completamente a la derecha de este servo es de 180. Gracias y disfrute. :)
#include / / include biblioteca servo
#define trigpin 5//set trigpin #define echopin 6//set echopin
Servo myservo;// declare servo name type servo
int duration, distance;//declare variable for unltrasonic sensor void setup() { Serial.begin(9600); pinMode(trigpin, OUTPUT); pinMode(echopin, INPUT); myservo.attach(2);// attach your servo myservo.writeMicroseconds(1500); // put your setup code here, to run once:
}
void loop() {
myservo.write(90);// always set servo to 90 to position it to the middle //ultrasonic code digitalWrite(trigpin,HIGH); _delay_ms(500); digitalWrite(trigpin, LOW); duration=pulseIn(echopin,HIGH); distance=(duration/2)/29.1;
if(distance <=20)// if ultrasonic sensor detects an obstacle less than 20cm in 90 degree angle. { myservo.write(0); //servo rotates at full speed to the right delay(600);
} else { myservo.write(90);// else servo stays at 90 degree angle. delay(600);
} Serial.print("cm"); //print distance unit cm Serial.println(distance);//distance
Pon tu código principal, para ejecutar varias veces: // put your main code here, to run repeatedly: }