Sensor ultrasónico no funciona en motor shield

¡Hola! Estoy teniendo unos problemas con el sensor ultrasónico HC-SR04 conectado a mi motor Shield. Lo conecté a los pines analógicos A0 (TRIGGER) y A1 (ECO) junto con el GND y 5V+

Sin embargo, por más que en todos lados lo vea conectado así, me sigue sin funcionar, y es un proyecto a entregar hoy D:

Creo que el problema es mi código:

#include <NewPing.h>
#include <AFMotor.h>

#define TRIGGER A0
#define ECHO A1

AF_Stepper motor1(256, 1); // A la puerta M1 M2
AF_Stepper motor2(256, 2); // A la puerta M3 M4
NewPing Dist(TRIGGER, ECHO, 200);

void setup() {
  Serial.begin(9600);
  Serial.println("Empezando a andar los motores");
  motor1.setSpeed(50); // 50 rpm
  motor2.setSpeed(50); // 50 rpm
  pinMode(TRIGGER, OUTPUT);
  pinMode(ECHO, INPUT);

}

void loop() {
  int distancia = Dist.ping_cm();
  Serial.println(distancia);
  if(distancia <= 50 && distancia >= 1){
    Serial.println("Adelante");
    motor1.step(1000, FORWARD, SINGLE);
    motor2.step(1000, FORWARD, SINGLE);   
  }
  else{
    Serial.println("Atras");
    motor1.step(1000, BACKWARD, SINGLE);
    motor2.step(1000, BACKWARD, SINGLE);    
  }
}

A este shield está conectado 2 motores NEMA17, aclaro.

Gracias por tomarte el tiempo de leer ^^

Aunque los pines deberían funcionar porque los usas?
Si usas NewPing no tienes que usar esto

  pinMode(TRIGGER, OUTPUT);
  pinMode(ECHO, INPUT);

Este es un código simple ejemplo que adapté a tus pines A0 y A1

#include <NewPing.h>

#define TRIGGER_PIN  A0  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     A1  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {
  Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
}

void loop() {
  delay(50);                     // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm()); // Send ping, get distance in cm and print result (0 = outside set distance range)
  Serial.println("cm");
}

¿Que motor shield estas usando?, lo pregunto porque existe uno por el mercado que usa los pines A0 y A1 para monitorear la corriente , usa los puertos A2 y A3 a ver que pasa.

Esos pines los uso para conectar el sensor.
Y probé el código y en el monitor serial solo me aparece ?????

Estoy usando el Motor Shield Driver L293d, pero aún no me funciona aunque use esos puertos

¿Has ajustado tu monitor serial a la velocidad que se define en el codigo), 115200 baudios. Ese codigo de @Surbyte funciona si o si.

El tema siempre es el mismo.
Cuando tienes un problema, separa las cosas.
Prueba x un lado sensor y por otro el motor.
Luego compara resultados, mira si hay simultaneidad de pines utilizados.
Eso te ahorrará tiempo y sabrás que esta pasando. Además de aprender a usar cada cosas correctamente y no empezar por el lado mas difícil.

Algo mas, agota instancias antes de consultarnos. Prueba todo, lee que dice el código, si dice Serial.begin(X) usa X en tu monitor Serial.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.