Error coincidencia variable en librerías (creo)

Hola, muy buenas tardes a todos, soy nuevo en el foro y casi que también con Arduino, ya que me iniciado recientemente.

Estoy construyendo un robot(coche) controlado por bluetooth y hasta ahí todo bien, el problema viene cuando intento acoplarle un sensor de ultrasonidos.

Me explico, cuando compilo por un lado el robot sin el ultrasonidos todo bien, y lo mismo ocurre cuando compilo el ultrasonidos solo que va todo bien. Pero cuando lo junto me salta el siguiente error:

C:\Users\AGUILI~1\AppData\Local\Temp\build024fe27627a6c7a81a597204f6589fc6.tmp/core\core.a(Tone.cpp.o): In function `__vector_7':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Tone.cpp:539: multiple definition of `__vector_7'

libraries\NewPing\NewPing.cpp.o:C:\Users\Aguililla\Documents\Arduino\libraries\NewPing/NewPing.cpp:284: first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1 Error compilación en tarjeta Arduino/Genuino Uno.

Me parece entender que dos librerías usan una misma variable. He intendado buscar __vector_7, que creo que es la variable, en el código pero no me ha servido de nada

¿Como podría solucionar eso?

Un saludo

Gracias.

Como no posteaste el código poco podemos decir de cual es tu error.
Si lo haces, lee las normas y luego usa tags. SI no sabes que es un tag, lee las normas. Esta bien explicado.

Realmente no tengo problemas con el código, ya que de momento me funciona todo. El problema viene cuando inserto una nueva librería para aumentar las cosas que quiero hacer.

Con solo estas dos librerías todo funciona perfectamente:

#include <SoftwareSerial.h> //Librería para asignar otros puertos seriales
#include <Servo.h> //Para control de los motores servo

Pero al añadir esta se produce el error:

#include <SoftwareSerial.h> //Librer+ia para asignar otros puertos seriales
#include <Servo.h> //Para control de los motores servo
#include <NewPing.h> //Nueva librería (Sensor de ultrasonidos HC-SR04)


/*Aqui se configuran los pines donde debemos conectar el sensor*/
#define TRIGGER_PIN  3
#define ECHO_PIN     5
#define MAX_DISTANCE 200
 
/*Crear el objeto de la clase NewPing*/
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

El error es el siguiente:

Arduino:1.6.8 (Windows 10), Tarjeta:"Arduino/Genuino Uno"

C:\Users\AGUILI~1\AppData\Local\Temp\build024fe27627a6c7a81a597204f6589fc6.tmp/core\core.a(Tone.cpp.o): In function `__vector_7':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Tone.cpp:539: multiple definition of `__vector_7'

libraries\NewPing\NewPing.cpp.o:C:\Users\Aguililla\Documents\Arduino\libraries\NewPing/NewPing.cpp:284: first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compilación en tarjeta Arduino/Genuino Uno.

¿Alguna forma de solucionarlo? Creo que es un problema de compatibilidad entre librerías, ya que tengo programas por separado donde funcionan perfectamente.

Un saludo

Gracias.

El problema es que ambas librerías NewPing y tone estan usando el mismo timer y entonces solo te informa que hay multiple definición de la librería. Hay soluciones a nivel de ajustar una de las librerías y cambiar el timer que usa por defecto. Otra solución es que en lugar de usar NewPing usa el metodo simple que envia un eco, y luego recibes lees el ancho del pulso con PULSEIN.

Muchas gracias por su información. Me ha sido de gran utilidad. Ahora estudiaré de que forma voy a solucionarlo.

Te acabo de dar una manera. Muchos leen el sensor ultrasónico con la instrucción o función PULSEIN, que además te permite limitar el tiempo de espera y por ende hacerla mas rápida. Depende de tu aplicación, claro.