Servo motor com sensor ultrassônico

 


código 

#include <Servo.h>
Servo MeuServo;
int PortaServo = 8;
int AnguloAberto = 90;
int AnguloFechado = 8;
// Cria a variavel que armazena a distancia aferida
int cm = 0;
// Funcao que realiza a afericao da distancia
long readUltrasonicDistance(int triggerPin, int echoPin){
  pinMode(triggerPin, OUTPUT);  // Clear the trigger
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  // Liga o pino tigger por 10 microsegundos
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(triggerPin, LOW);
  pinMode(echoPin, INPUT);
  // Afere o tempo ate o retorno do som no pino echo
  return pulseIn(echoPin, HIGH);
}
void setup(){
  Serial.begin(9600); // Inicia uma comunicacao serial
  MeuServo.attach(PortaServo); // Declara o MeuServo na porta 5
}
void loop(){
  // Calcula a distancia em cm
  cm = 0.01723 * readUltrasonicDistance(6, 7);
  // Mostra a distancia no monitor serial
  Serial.print(cm);
  Serial.println("cm");
  if(cm <= 10){ // Se a distancia for menor que 10cm abre a tampa
    MeuServo.write(AnguloAberto);
    delay(3000);
  }
  else{ // Caso contrario fecha a tampa
    MeuServo.write(AnguloFechado);
  }
  delay(100); // espera por 100 milisegundos antes de repetir
}

Comentários

Postagens mais visitadas