Pages: [1]   Go Down
Author Topic: Nueva duda con ultrasonico  (Read 1633 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola de nuevo, vengo con una nueva duda, ya he avanzado un poco en el uso de la Arduino uno, en estos momentos estoy trabajando con los sensores ultrasonicos SR04 con esta libreria: http://www.ardublog.com/library-for-arduino-ultrasonic-ranging-hc-sr04/

Y vengo con unas dudas de su funcionamiento, ya lo he logrado hacer funcionar con un sencillo programa que dependiendo de la distancia que detecte encienda un led u otro, pero he aqui los problemas que se me presentaron:

*No logre hacer que detectara correctamente mas de 60 cm
*El ultrasonico emite un sonido molesto cuando detecta un objeto

Este es el codigo que utilize:

Code:
#include <Ultrasonic.h>
Ultrasonic ultra1(9,8); // (Trig,Echo)
int led1 = 14; // - Led 1
int led2 = 15; // - Led 2
int dist1;

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
}

void loop()
{
 
  dist1 = ultra1.Ranging(CM);
  if (dist1<85)
  {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, LOW); 
  }
  else
  {
    digitalWrite(led2, HIGH);
    digitalWrite(led1, LOW); 
  }
 
  }
Logged

COM22
Offline Offline
God Member
*****
Karma: 6
Posts: 702
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La librería tiene por defecto un timeout de 3 ms = 51 cm (Más info http://arduino.cc/forum/index.php/topic,115077.msg866360.html#msg866360 )

Si tienes la ultima versión de github o la rev.3 del blog puedes seleccionar el timeout máximo que que deses teniendo en cuenta:

centímetros * 58 = Max.TimeOut

Sustituye esta linea:

Quote
Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN)

Por esta:

Quote
Ultrasonic ultrasonic(9,8,3000); // (Trig PIN,Echo PIN, Max.TimeOut in µsec )

Sustituye los 3000 microsegundos con el tiempo máximo de timeout que tu necesites.



El tema del ruido ten en cuenta que mide las distancias por medio del sonido, y el ruido que hace es casi imperceptible para el oído humano ( si eres muy joven lo oyes más que si eres más mayor) pero por lo general para poder escuchar el sonido tienes que ponerte el sensor delante de la oreja  smiley-slim

Un saludo!
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La librería tiene por defecto un timeout de 3 ms = 51 cm (Más info http://arduino.cc/forum/index.php/topic,115077.msg866360.html#msg866360 )

Si tienes la ultima versión de github o la rev.3 del blog puedes seleccionar el timeout máximo que que deses teniendo en cuenta:

centímetros * 58 = Max.TimeOut

Sustituye esta linea:

Quote
Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN)

Por esta:

Quote
Ultrasonic ultrasonic(9,8,3000); // (Trig PIN,Echo PIN, Max.TimeOut in µsec )

Sustituye los 3000 microsegundos con el tiempo máximo de timeout que tu necesites.



El tema del ruido ten en cuenta que mide las distancias por medio del sonido, y el ruido que hace es casi imperceptible para el oído humano ( si eres muy joven lo oyes más que si eres más mayor) pero por lo general para poder escuchar el sonido tienes que ponerte el sensor delante de la oreja  smiley-slim

Un saludo!

Gracias , entonces si quiero medír 100cm seria 100*58 y eso va en la parte del tiempo.

Y en cuanto a lo del sonido no se si tengo oído de perro oque pero se escucha mucho cuando le pones un objeto enfrente.

Que librería recomiendan mas, esta o la new Ping?
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No digas tonterias, el oido humano como mucho detecta  frecuencias de 15 a 18  Khz,,,,,nunca mas allla  de estas por muy joven que  seas.
Los murcielagos si......a menos que seas uno de estos jajajaa
Bromas a parte......el  ruido que notas es la  oscilacion de algun elemento mecanico suelto en la  capsula del Ultrasonico,  Compra uno nuevo y veras como  no hay  ruido alguno
Sobre la distancia....es tan facil como  amplificar la señal de salida del ultrasonico, o bien a la  inversa...amplificar la señal de entrada en el receptor...o mejor de todo,,,una combiancion de ambas....con ellllo puedes tener  hasta unos 10 metros de alcance sin problemas
Logged

COM22
Offline Offline
God Member
*****
Karma: 6
Posts: 702
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@quevon24 yo te recomiendo la mía por que es muy simple de utilizar, pero puedes probar la NewPing haber si te funciona mejor o si da mejores resultados!

Pero me mirare NewPing haber si tiene alguna función buena para implementar en mi librería  smiley-razz

No digas tonterias, el oido humano como mucho detecta  frecuencias de 15 a 18  Khz,,,,,nunca mas allla  de estas por muy joven que  seas.
Los murcielagos si......a menos que seas uno de estos jajajaa  [...]

No se escucha un pitido (por lo menos yo) pero si que escuchas el "disparo" que sera seguramente las vibraciones que se crean al emitir el sonido. Así es como compruebo que esta midiendo  smiley-sweat

Un saludo!
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@quevon24 yo te recomiendo la mía por que es muy simple de utilizar, pero puedes probar la NewPing haber si te funciona mejor o si da mejores resultados!

Pero me mirare NewPing haber si tiene alguna función buena para implementar en mi librería  smiley-razz

No digas tonterias, el oido humano como mucho detecta  frecuencias de 15 a 18  Khz,,,,,nunca mas allla  de estas por muy joven que  seas.
Los murcielagos si......a menos que seas uno de estos jajajaa  [...]

No se escucha un pitido (por lo menos yo) pero si que escuchas el "disparo" que sera seguramente las vibraciones que se crean al emitir el sonido. Así es como compruebo que esta midiendo  smiley-sweat

Un saludo!

Que mal yo que crei que tenia superpoderes xD

Muchas gracias por la ayuda, intentare y ya les reportare como me fue.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es tan facil como mediir  la diferencia de tension que aparece entre los terminales del amplificador tras el ultrasonico
En reposo debe dar un valor  bajo de referencia...y cuando recibe el  ultrasonido este valor debe de elevarse  proporcionalmente
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola de nuevo compañeros del foro, vengo con una nueva duda a la que no le encuentro solucion

Basicamente lo que quiero hacer es que si un sensor no detecta nada, pase al siguiente y si no hace nada al siguiente asi, y ya que termine con los 4 sensores regrese al primero, hasta ahi todo bien, ya hice funcionar un sensor como exprese al principio del tema, ahora el problema es que, no puedo hacer que funcionen 2, pareciera si como el primer sensor funcionara igual que el segundo, aunque estan en direcciones opuestas y uno si detecta y el otro no., he revisado el codigo pero no le veo problema alguno, espero puedan asesorarme y gracias.

Code:
#include <Ultrasonic.h>
Ultrasonic ultra1(9,8); // (Trig,Echo)
Ultrasonic ultra2(7,6); // (Trig,Echo)
int led1 = 14; // A0 - Led 1 sensor1
int led2 = 15; // A1 - Led 2 sensor1
int led3 = 16; // A1 - Led 3 sensor2
int led4 = 17; // A1 - Led 4 sensor2
int dist1;
int dist2;

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);  
}

void loop()
{
  
  dist1 = ultra1.Ranging(CM); // mide distancia sensor 1
  dist2 = ultra2.Ranging(CM); // mide distancia sensor 2

  
  if (dist1 < 50) // Si distancia menor 50cm enciende led 1 y apaga 2, pero si es mayor enciende 2 apaga 1
  {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, LOW);  
  }
  else
  {
    digitalWrite(led2, HIGH);
    digitalWrite(led1, LOW);  
  }
  
      if (dist2 < 50) // Similar a sensor 1
  {
    digitalWrite(led3, HIGH);
    digitalWrite(led4, LOW);  
  }
  else
  {
    digitalWrite(led4, HIGH);
    digitalWrite(led3, LOW);  
  }
  
  }
« Last Edit: November 04, 2012, 09:03:30 pm by quevon24 » Logged

COM22
Offline Offline
God Member
*****
Karma: 6
Posts: 702
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Prueba de poner un delay entre medición y medición, por que si haces todas de golpe parece ser que el sonido que emite uno le resuena al otro y da problemas.

Code:
 dist1 = ultra1.Ranging(CM); // mide distancia sensor 1
  delay(50);
  dist2 = ultra2.Ranging(CM); // mide distancia sensor 2

Prueba y nos cuentas.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prueba de poner un delay entre medición y medición, por que si haces todas de golpe parece ser que el sonido que emite uno le resuena al otro y da problemas.

Code:
 dist1 = ultra1.Ranging(CM); // mide distancia sensor 1
  delay(50);
  dist2 = ultra2.Ranging(CM); // mide distancia sensor 2

Prueba y nos cuentas.

Si, muchisimas gracias, ya va de lujo, nunca se me ocurrio eso, que en basic no era necesario un delay, lo anotare.

Y una duda mas, se que no va a el caso con el tema, pero es posible conectarle una lipo de 7.4v a la arduino?
Logged

COM22
Offline Offline
God Member
*****
Karma: 6
Posts: 702
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

[...]

Y una duda mas, se que no va a el caso con el tema, pero es posible conectarle una lipo de 7.4v a la arduino?

Claro! Mediante el  "Power Jack" o en el Vin y GND

Revisa las caracteristicas de tu placa, por ejemplo el Arduino UNO (http://www.arduino.cc/en/Main/arduinoBoardUno) tiene:

  • Input Voltage (recommended): 7 - 12V
  • Input Voltage (limits): 6 - 20V

En la misma pagina te explica tambien el pin Vin o el Power Jack  smiley-wink

Quote
The power pins are as follows:

VIN. The input voltage to the Arduino board when it's using an external power source (as opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin.

Un saludo!
Logged


Pages: [1]   Go Up
Jump to: