ultrasonic sensor y MEGA Sensor Shield V2.0 Sensor Expansion

Hola

a ver si me podeis echar una mano, estoy intentando conectar un sensor de distancia a la
MEGA Sensor Shield V2.0 Sensor Expansion
y vease necesito 4 pines el trig, echo, gnd y vcc, pero esta placa los pines van de 3 en 3

eh conectado el trig a un pin el solito, pero no me hace nada, imagino que sea porque no le este llegando corriente… o datos mejor dicho…

Sabeis si hay otra forma de conectarlo? porque voy a necesitar conectar varios

el codigo que le cargue al arduino es:

#include <Servo.h>
#include "SR04.h"

Servo myservo1;  // crea el objeto servo
Servo myservo2;  // crea el objeto servo
Servo myservo3;  // crea el objeto servo
char numero = 0;
int pos = 0;
int bucle = 0;
char php = 0;
#define TRIG_PIN 49
#define ECHO_PIN 48
SR04 sr04 = SR04(ECHO_PIN, TRIG_PIN);
long a;



void setup()
{
  Serial.begin(9600);
  delay(1000);
  myservo1.attach(9);  // vincula el servo al pin digital 9
  myservo2.attach(11);  // vincula el servo al pin digital 9
  myservo3.attach(22);  // vincula el servo al pin digital 9

}


void loop()
{

  a = sr04.Distance();
    Serial.print(a);
    Serial.println("cm");
    delay(1000);
    
  if (Serial.available() > 0)
  {
    numero = Serial.read();
    //Serial.print(numero);

  }

  if (numero == '1')
  {
    
    for (pos = 90; pos <= 150; pos += 1)
    {

      myservo1.write(pos);
      delay(15);
    }
    delay(1000);
    if (a < 30) {

      for (pos = 150; pos >= 90; pos -= 1)
      {

        myservo1.write(pos);
        delay(15);
      }

    }

  }
  if (numero == '2')
  {
    for (pos = 90; pos <= 150; pos += 1)
    {

      myservo2.write(pos);
      delay(15);
    }
    delay(1000);
    for (pos = 150; pos >= 90; pos -= 1)
    {

      myservo2.write(pos);
      delay(15);
    }
  }
  if (numero == '3')
  {
    for (pos = 90; pos <= 150; pos += 1)
    {

      myservo3.write(pos);
      delay(15);
    }
    delay(1000);
    for (pos = 150; pos >= 90; pos -= 1)
    {

      myservo3.write(pos);
      delay(15);
    }
  }

  numero = '\0';

}

basicamente mi intencion, es que se mueva el servo hacia un lado, pero que si el sensor detecta un obstaculo, que el servo no regrese a su posicion y salga del loop

Gracias

Hola, lo has hecho correctamente, si no te has equivocado en la asignación de los números de puerto deberías tener un servo moviendose de un lado a oro sin pararse.
Comprueba las conexiones y asignación de número de puerto y si queres que se pare prueba con algo parecido a lo siguiente:

 if (numero == '1')
    {   
    for (pos = 90; pos <= 150; pos += 1)
      { 
      if((sr04.Distance())<30){break;}
      myservo1.write(pos);
      delay(15);
      }     
    delay(1000);

    for (pos = 90; pos <= 150; pos += 1)
      { 
      if((sr04.Distance())<30){break;}
      myservo1.write(pos);
      delay(15);
      }

Saludos.

Aca tienes la página de la Mega Sensor Shield V1 espero te sirva de referencia. La V2 no la encuentro pero haz como yo, busca

Google: Mega Sensor Shield V2

Yo veo pines de 5V GND y pines para conectar a los pines. De modo que tus 4 pines estan garantizados.

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