Ir al contenido principal

Puerta automática

 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