Estoy haciendo un proyecto que detecta proximidad a 3cm con un sensor de ultra sonido hcsr04 y la libreria NewPing, cuando detecta la proximidad, mueve un servo mg90s de 0 a 180°. hasta ahi todo bien!!
Le intente agregar un buzzer para que emita un simple beep cuando detecte la proximidad con la libreria EasyBuzzer y me tira error de compilacion! les agradesco desde ya su ayuda!!
falla arduino|690x174
el codigo es el siguiente:
#include <NewPing.h> //agrego la libreria del ultra sonido
int pinEcho = 10;
int pinTrig = 11;
int max_distance = 200; // Distancia máxima a detectar en cm newPing sonar(pinTrig, pinEcho, max_distance)
NewPing sonar(pinTrig, pinEcho, max_distance); //le envío a la librería NewPing los nombres de las variables
#include <Servo.h> //agrego la librería del servo
Servo servo1; //creo un objeto Servo1
int pinservo=9; //le asigno el pin de salida del servo
int pulsomin=1500; //genero la constante de 1micseg para los 0°
int pulsomax=2000; //genero la constante de 2micseg para los 90°
#include <EasyBuzzer.h> //agrego la libreria para el buzzer
//int NOTA = 1047; //nota para el buzzer
//int buzzer = 2; //buzzer
int pinledr = 3; //led rojo
int pinledv = 4; //led verde
int grados; //variable de captura de grados del eje del servo
int distance; //variable de conversion a cm del sonar
void setup() {
Serial.begin(9600); //inicio la consola
servo1.attach(pinservo,pulsomin,pulsomax); //inicializo el servo con los parámetros
EasyBuzzer.setPin(5); //pin de salida del Buzzer
EasyBuzzer.beep(2300,150,50,1,100,1); //configuracion del sonido del Buzzer
}
void loop() {
digitalWrite(pinledv, HIGH); //Led verde encendido
distance = sonar.ping_cm(); //la variable distance toma el valor de sonar.ping_cm
if(distance > 0 && distance < 4) { //si la distancia es mayor a 0 y menor a 4 cm
Serial.print("Distancia "); //imprimo en la consola la distancia en cm
Serial.print(distance);
Serial.println(" cm");
EasyBuzzer.update(); //Ejecuto el Beep en el Buzzer
servo1.attach(9); //enciendo el servo
Serial.println("servo encendido");
grados=servo1.read(); //leo los grados del eje del servo y los guardo en la verible grados
if (grados == 0){ //si el angulo del eje es igual a 0°
Serial.println("Eje en 0 grados");
digitalWrite(pinledr, HIGH); //Led rojo encendido
digitalWrite(pinledv, LOW); //Led verde apagado
servo1.attached(); //enciendo el servo
servo1.write(180); //Eje del servo a 180°
delay(1000);
Serial.println("Eje en 180 grados");
servo1.write(0); //Eje del servo a 0°
delay(1000);
digitalWrite(pinledv, HIGH); //Led verde apagado
digitalWrite(pinledr, LOW); //Led rojo encendido
}
else { //si el angulo del eje es diferente a 0°
Serial.println("el eje no esta en 0");
servo1.write(0); //Eje del servo a 0°
delay(1000);
Serial.println("eje puesto a 0");
}
}
servo1.detach(); //desconecto el servo
Serial.println("servo apagado");
}
