Objetivo:
Consiste en girar un servomotor dependiendo del sensor ultrasónico. Si detectaba un objeto cerca, el servomotor debe girar, y se debe cerrar en el caso opuesto.
¿Qué y cómo lo aprendí?
Aprendí mediante internet indagando y conociendo sobre que otras funciones se pueden usar estos dos componentes a través de una programación.
¿Qué dificultades se presentaron?
La única dificultad que se presentó por mi parte fue mi ausencia ese día por motivos de problemas con la computadora. Y en general no sé realmente si es que hubo algún problema pero lo dudo ya que no solemos estar en problemas en cuanto a trabajo en grupo.
Codigo:
#include <Servo.h>
Servo servo;
const int EchoPin = 3;
const int TriggerPin = 4;
int ping(int TriggerPin, int EchoPin) {
long duration, distanceCm;
digitalWrite(TriggerPin, LOW); //para generar un pulso limpio ponemos a LOW 4us
delayMicroseconds(4);
digitalWrite(TriggerPin, HIGH); //generamos Trigger (disparo) de 10us
delayMicroseconds(10);
digitalWrite(TriggerPin, LOW);
duration = pulseIn(EchoPin, HIGH); //medimos el tiempo entre pulsos, en microsegundos
distanceCm = duration * 10 / 292/ 2; //convertimos a distancia, en cm
return distanceCm;
}
void setup()
{
Serial.begin(9600);
servo.attach(7);
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void loop()
{
int cm = ping(TriggerPin, EchoPin);
Serial.print("Distancia: ");
Serial.println(cm);
delay(10);
//ABRIR
if(cm<30){
servo.write(90);
delay(10);
}
//CERRAR
else{
servo.write(0);
delay(10);
}
}
Comentarios
Publicar un comentario