Go Down

Topic: deteccion obstaculos // cambio de planes en proyecto (Read 440 times) previous topic - next topic

alepeez2300023

Sep 24, 2019, 04:00 pm Last Edit: Sep 24, 2019, 04:02 pm by alepeez2300023
hola !
soy novata en programación arduino y tengo este código para detectar obstaculos pero con SONIDO, y a mi solo me interesa el actuador de VIBRACIÓN.

Leí mil tutoriales  y aun no se que parte del código modificar para que no me tire error
Aiuda porfis !


const int EchoPin = 5;
const int TriggerPin = 6;
const int LedPin = 13;
const int distancia= 170; //distancia en cm
int frecuencia = 400; // sonido más grave (con la distancia más lejana)
int cm;
int muestreo = 10; // Duración del Silencio (tiempo de muestreo entre
los promedios)
const int K = 6; // constante multiplicadora buzzer
const int pin = 7; // PIN DEL BUZZER
int pausasonido = 400 ; // Duración del sonido (biiii)
void setup() {
 Serial.begin(9600);
 pinMode(LedPin, OUTPUT);
 pinMode(TriggerPin, OUTPUT);
 pinMode(EchoPin, INPUT);
 pinMode(pin, OUTPUT);
}
void loop() {
 cm = ping(TriggerPin, EchoPin);
 // Serial.print("Distancia: ");
 //Serial.println(cm);
 //delay(100);
 while (cm <= distancia) {
 Serial.print("Distancia OK: ");
 Serial.println(cm);
 delay(50);
 tone(pin, (((distancia - cm)*K)+ frecuencia) ); //activa un tono de
frecuencia determinada en un pin dado
 delay(pausasonido);
 noTone(pin);
 pausasonido=(200+(cm*2));//Esto es para cambiar la freciancia de
sonido en función de la distancia
 Serial.print("----------Pausasonido: ");
 Serial.println(pausasonido);
 muestreo=10+cm;//Esto es para cambiar la freciancia de sonido en
función de la distancia
 Serial.print("---Muestreo: ");
 Serial.println(muestreo);
 cm = ping(TriggerPin, EchoPin);
 }
}



int ping(int TriggerPin, int EchoPin) {
 long duration, distanceCm, dis1, dis2, dis3;
 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
 dis1 = duration * 10 / 292/ 2; //convertimos a distancia, en cm
 delay(muestreo);
 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
 dis2 = duration * 10 / 292/ 2; //convertimos a distancia, en cm
 delay(muestreo);
 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
 dis3 = duration * 10 / 292/ 2; //convertimos a distancia, en cm
 delay(muestreo);
 distanceCm =(dis1+dis2+dis3)/3 ;
 return distanceCm;
}

pacoandres

Sería buena idea que indicases que placa estás utilizando y con que sensores o dispositivo,  junto a un esquemático, o cualquier otro diagrama, indicando las conexiones.
Si no, es muy difícil saber que habría que modificar.

Go Up