buenas noches todos, soy un poco novato en este foro y perdonen si este hilo no va aquí o ya existe pero no lo encuentro.
tengo un sensor hc-sr04 programado de esta manera:
long distancia;
long tiempo;
void setup(){
serial.begin(9600);
pinmode(11, output);
pinmode(12, input);
}
void loop(){
digitalwrite(11,low);
delaymicroseconds(5);
digitalwrite(11, high);
delaymicroseconds(10);
tiempo=pulsein(12, high);
distancia= int(0.017*tiempo);
serial.println("distancia ");
serial.println(distancia);
serial.println(" cm");
delay(1000);
}
el problema es que cuando intento medir distancias superiores 70 cm aproximadamente, o cuando detecta una superficie estraña ( algo curvo) marca una lectura de 0cm, pero se queda ahí, mandando esa lectura aún que varie la distancia ( le pongo la mano delante ), y tengo que desconectar y conectar el pin del voltaje para que vuelva medir.
por debajo de los 70 cm aproximadamente va perfecto.
?alguna idea?
tengo un sensor hc-sr04 programado de esta manera:
long distancia;
long tiempo;
void setup(){
serial.begin(9600);
pinmode(11, output);
pinmode(12, input);
}
void loop(){
digitalwrite(11,low);
delaymicroseconds(5);
digitalwrite(11, high);
delaymicroseconds(10);
tiempo=pulsein(12, high);
distancia= int(0.017*tiempo);
serial.println("distancia ");
serial.println(distancia);
serial.println(" cm");
delay(1000);
}
el problema es que cuando intento medir distancias superiores 70 cm aproximadamente, o cuando detecta una superficie estraña ( algo curvo) marca una lectura de 0cm, pero se queda ahí, mandando esa lectura aún que varie la distancia ( le pongo la mano delante ), y tengo que desconectar y conectar el pin del voltaje para que vuelva medir.
por debajo de los 70 cm aproximadamente va perfecto.
?alguna idea?
fijate si te ayuda este codigo
es facil, si te ayuda cambia el titulo de tu post (resuelto)
code: [select]
/*
sensor de proximidad y al ser inferior 10cm
envia un pulso de alarma por el pin 13
hc-sr04 conexiones:
vcc al arduino 5v
gnd al arduino gnd
echo al arduino pin 6
trig al arduino pin 7
descargar planos de conexiones en http://elprofegarcia.com/
*/
#define pecho 6
#define ptrig 7
#define micro 8
long duracion, distancia;
void setup() {
serial.begin (9600); // inicializa el puerto seria 9600 baudios
pinmode(pecho, input); // define el pin 6 como entrada (echo)
pinmode(ptrig, output); // define el pin 7 como salida (triger)
pinmode(13, 1); // define el pin 13 como salida
pinmode(8, 1);
}
void loop() {
digitalwrite(ptrig, low);
delaymicroseconds(2);
digitalwrite(ptrig, high); // genera el pulso de triger por 10ms
delaymicroseconds(10);
digitalwrite(ptrig, low);
duracion = pulsein(pecho, high);
distancia = (duracion/2) / 29; // calcula la distancia en centimetros
if (distancia >= 500 || distancia <= 0){ // si la distancia es mayor 500cm o menor 0cm
serial.println("---"); // no mide nada
}
else {
serial.print(distancia); // envia el valor de la distancia por el puerto serial
serial.println("cm"); // le coloca la distancia los centimetros "cm"
digitalwrite(13, 0); // en bajo el pin 13
digitalwrite(8,0); // el pin 8 en bajo
}
if (distancia <= 10 && distancia >= 1){
digitalwrite(13, 1); // en alto el pin 13 si la distancia es menor 10cm
digitalwrite(8,1);
serial.println("alarma......."); // envia la palabra alarma por el puerto serial
}
delay(400); // espera 400ms para que se logre ver la distancia en la consola
}
es facil, si te ayuda cambia el titulo de tu post (resuelto)
Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > Problema con HC-SR04
arduino
Comments
Post a Comment