Programacion de sensores ultrasonicos

Que tal a todos, un saludo.

Estoy trabajando en un proyecto para ayudar a personas invidentes pero no soy muy experto en lo que es programacion y necesito ayuda.

La cuestion es que quiero hacer un codigo que reciba lecturas de dos o tres sensores ultrasonicos, pero independientes. Es decir que cada uno al detectar una distancia encienda un led o un zumbador...

Cualquier ayuda que me puedan proporcionar se las agradesco de antemano.

Perdooon si no puse el modelo, y todas las especificaciones tencincas de los sensores... Pero si puse, sensores ULTRASONICOS, ¿como cuantos deese tipo crees que haya para proyectos con Arduino?

Por otro lado, si ya se ha expuesto el tema mucho, nisiquiera lo se... acabo de entrar a este foro.

No soy ningun experto ni mucho menos, lo reconozco... pero si estoy tratando de crear este proyecto, obio que ya tengo una idea al menos de lo que quiero hacer y de como hacerlo.

De hecho, lo que intento hacer es un baston blanco (para invidentes) que detecte objetos de frente y desniveles en el piso. Ya se que ya se han heco, no hace falta que reclames repitiendolo.

Tengo armado el circuito con un arduino nano y dos sensores HC SR04, "ULTRASONICOS" pero en la forma que los programe, activan un led, cualquiera de los dos y como necesito que uno detecte objetos de frente y el otro desniveles el el suelo, necesito que activen un led independiente cada uno.

Otra cosa... ovio que la pregunta era para quienes quieran y puedan ayudarme. Si esto te causa conflicto, pues... simplenente has como que no lo leiste...

Bueno no se hasta que punto podrás lograr algo efectivo pero supongamos que sea el caso.

Busca la librería Newping, la descargas, tienes un ejemplo para varios sensores (creo que 5) limitalo a tu caso 2.
Tendras entonces dos valores con los que puedas manejar independientemente los leds o buzzers.

Obio que los leds solo son para verlos yo durante las pruebas... No quiero estar a toque y toque el dispositivo para ver si se acciono o no el vibrador... y el buzzer es muy molesto.

Es curioso pero... ¿No te has fijado que la mayoria de los proyectos, ya sea que vallan a encender un simple bombillo o un motor a 220v AC primero los arman con un par de leds? ¿Que curioso no?

Pyes en realidad yo no tengo dudas de que valla a ser efectivo el baston. De hecho, es un diseño muy simple, que de querer hacerlo, sin saber mucho, solo tendria que usar un arduino nano para cada sensor HCSR 04 ULTRASONICO, pero, ya que es posible hacerlo con uno solo, es mejor asi, logrando que sea algo sencillo, funcional y economico... No todas las personas con esta discapacidad tienen las posibilidades economicas para invertir en un modelo costoso y la idea es ayudar.

Bueno, dejemonos de ironías.
Si tu vienes al foro y no explicas que usaras los leds a modo de simulación, pues nosotros tenemos que adivinarlo.
Y esto no es para seguirla, ya esta aclarado okay.

Asi que avancemos con la idea.
De hecho me sorprende que ahora digas que lo haras con uno, no entiendo cómo?

Gracias Surbyte, creo que eso es lo que necesito hacer... y a los demas tambien, por sus comentarios tan.. didacticos. :wink:

Si... una sola placa arduino nano, que controlara a un par de sensores HCSR 04, ULTRASONICOS, uno.que detecte objetos a una distancia de entre 80 a 90 cm, que hara sonar un buzzer a cierta frecuencia, y otro que detecte a unos 20 cm el nivel del suelo, con un acoplamiento con transistores PNP y NPN que haran las veces de inversor, para que al dejar de detectar, active un vibrador.

Creo que el poder detectar cuando haya un obstaculo enfrente y poder anticipar un nivel mas bajo como donde se termina la banqueta o algun registro de agua destapado serian de buena ayuda para las personas con esta discapacidad.

Bueno el ejemplo que te di de la librería NewPing
Este es el ejemplo adaptado para solo 2 sensores

#include <NewPing.h>
 
#define SONAR_NUM     2 // Number or sensors.
#define MAX_DISTANCE 200 // Max distance in cm.
#define PING_INTERVAL 33 // Milliseconds between pings.
 
unsigned long pingTimer[SONAR_NUM]; // When each pings.
unsigned int cm[SONAR_NUM]; // Store ping distances.
uint8_t currentSensor = 0; // Which sensor is active.
 
NewPing sonar[SONAR_NUM] = { // Sensor object array.
  NewPing(41, 42, MAX_DISTANCE),
  NewPing(43, 44, MAX_DISTANCE),
 
void setup() {
  Serial.begin(115200);
  pingTimer[0] = millis() + 75; // First ping start in ms.
  for (uint8_t i = 1; i < SONAR_NUM; i++)
    pingTimer[i] = pingTimer[i - 1] + PING_INTERVAL;
}
 
void loop() {
  for (uint8_t i = 0; i < SONAR_NUM; i++) {
    if (millis() >= pingTimer[i]) {
      pingTimer[i] += PING_INTERVAL * SONAR_NUM;
      if (i == 0 && currentSensor == SONAR_NUM - 1)
        oneSensorCycle(); // Do something with results.
      sonar[currentSensor].timer_stop();
      currentSensor = i;
      cm[currentSensor] = 0;
      sonar[currentSensor].ping_timer(echoCheck);
    }
  }
  // The rest of your code would go here.
}
 
void echoCheck() { // If ping echo, set distance to array.
  if (sonar[currentSensor].check_timer())
    cm[currentSensor] = sonar[currentSensor].ping_result / US_ROUNDTRIP_CM;
}
 
void oneSensorCycle() { // Do something with the results.
  for (uint8_t i = 0; i < SONAR_NUM; i++) {
    Serial.print(i);
    Serial.print("=");
    Serial.print(cm[i]);
    Serial.print("cm ");
  }
  Serial.println();
}

Muchas gracias Subyte... Voy a descargar esa libreria a la primera oportunidad... :slight_smile:

No se si te entendi bien, pero creo que te refueres a que el gobierno apoya a personas invidentes con recursos economicos para comprar bastones o cosas asi. Aqui en Mexico no es asi. De hecho mi inquietud por diseñar un baston como el que menciono es porque veo regularmente a personas invidentes que suben a los camiones a cantar o tocar un istrumento para ganarse la vida, y muchos de ellos nisiquiera traen el llamado baston blanco, sino cualquier tipo de baston para auxiliarse. Tambien los he visto ir por las banquetas, y como hay muchos propietarios de casas y/o negocios insensibles que no les importa poner escalones o desniveles si creo que les ayudaria un baston como el que propongo. Y claro que un pitido ayuda ¿Acaso no has visto los semaforos que dan un pitido cuando la luz esta en verde? Y la vibracion para los desniveles tambien, ya que el baston debe ir unos sentimetros levantado del suelo para que no se valla atorando, y ellos lo van moviendo de lado a lado no dando golpes en el suelo asi que ayudaria un sensor para ver si hay un agujero.