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
Postar um comentário