Buenos dias, tengo un robot ( si se le puede llamar asi), que se mueve con dos motores de 24v y 350w y 300 rpm finales en el eje, con un piñon de 9 dientes y una corona de 50, controlado por un radio control de 6 canales de los baratitos, llevo casi un año con el proyecto, probando la plataforma, el software y el hardware( mega 2560, brujula GY-273, bluethooth HM18 , gps neo6 y 2 bts7960), y todo alimentado por 2 baterias de gel de 12v en serie, la plataforma es grande mide 97cm de ancho por 140 cm, tiene un eje de traccion y una rueda loca. Y todo iba bien poquito a poquito, hasta que cargue la plataforma( unos 150 kg aprox), entonces y despues de muchas pruebas se me quemo un bts y perdi el control del robot, (una de las ruedas iba solo en una direccion), lo cambie por otro bts y todo bien, hasta que lo lleve la primera vez al campo(es una desbrozadora doble) durante un rato todo fue bien, pero de repente perdi el control del robot, se puso a maxima velocidad (5 km/h aprox) y cuando lo pare se habian quemado los dos bts solo iban en una direccion, alguien sabe porque se queman los bts, tendran algo que ver los cambios bruscos de sentido por el tema de la inercia, cada bts tiene un fusible de 30 amp como los de los coches y no se queman. gracias a todos de antemano, intentare mandaros fotos
Buenos días,
Lamentablemente, no puedo ver fotos aquí, pero trataré de ayudarte basándome en la información que proporcionaste.
Los BTS7960 son controladores robustos, pero todo componente tiene sus límites, y parece que en tu caso estás excediendo esos límites debido a varias razones posibles. Algunas posibles causas por las cuales los BTS7960 se están quemando podrían ser:
-
Sobrecorriente: Aunque estás usando fusibles de 30A, la corriente pico durante arranques, frenados o cambios bruscos de sentido (especialmente con una carga tan pesada) puede exceder momentáneamente la capacidad de manejo del BTS7960.
-
Disipación de Calor: Asegúrate de que los BTS7960 tengan adecuados disipadores de calor y, si es posible, que tengan una circulación de aire adecuada. Un enfriamiento insuficiente podría causar que los controladores se sobrecalienten y fallen.
-
Inductancia de los Motores: Cambios rápidos en el sentido de rotación o la velocidad del motor pueden generar picos de voltaje debido a la inductancia del motor, que podrían dañar los controladores.
-
Alimentación: Asegúrate de que las baterías estén en buen estado y que la conexión sea sólida. Una conexión floja o intermitente puede causar picos de corriente o voltaje.
-
Interferencia Electromagnética: Las fuentes de interferencia, como motores grandes, pueden afectar el comportamiento de los componentes electrónicos. Asegúrate de que todos los cables estén adecuadamente protegidos y, si es posible, utilice filtros de ferrita en cables que estén propensos a recoger interferencias.
-
Configuración de Software: Revisa tu código para asegurarte de que no estés enviando comandos que generen cambios bruscos en el sentido o velocidad del motor, especialmente cuando está bajo una carga pesada.
Para solucionar tu problema, te recomendaría:
-
Monitorear la Corriente: Si es posible, usa un amperímetro para medir la corriente que pasa por cada motor durante las operaciones normales y durante cambios bruscos de sentido o velocidad.
-
Uso de Drivers Más Robustos: Considera la posibilidad de usar controladores de motor más robustos diseñados específicamente para aplicaciones de alta potencia.
-
Sistema de Protección: Añade sistemas de protección, como diodos de rueda libre (flyback diodes) para proteger contra picos de voltaje y asegúrate de que las conexiones a tierra estén bien realizadas.
-
Revisión de Alimentación: Asegúrate de que las baterías estén bien cargadas y en buen estado.
Espero que estas recomendaciones te ayuden a resolver el problema con tu robot. ¡Buena suerte con tu proyecto!
Gracias por la respuesta tan rapida, voy a tener en cuenta varias de ellas que no habia considerado, a saber, conexiones mas solidas a las baterias, y reducir los cambios bruscos de direccion esto ultimo lo hare por software, la disipacion de calor no creo que sea un problema. La inductancia, ahi estoy perdido, son motores dc de iman permanente.
La interferencia electromagnetica si puede ser un problema, ya que la carga es un generador de 5500 watios que alimenta un motor monofasico de 1 cv y otro trifasico de 2 cv.
Y otra a considerar utilizar drivers mas robustos, pero no los he encontrado aunque seguro que los hay. A ver si esta tarde puedo poner fotos.gracias
aparentemente es muy feo(lo es), pero de momento funciona con RC, incluso puedo parar el generador desde el RC o por software. Para mi es algo es algo grande porque todo lo he hecho yo, mecanica, soldaduras etc y todo esto partió de un robot pequeñito, intentare madaros una foto
De aqui partio todo

Ahora estoy con la brujula, (mas adelante el gps), es el ya conocido gy-273 con HM5883L aprovechando los sketchs de Luis Llamas (toda una institución) y sus indicaciones, a saber librerias Wire.h. I2Cdev.h y HMC5883L.h, leo perfectamente mi brujula, en su dia incluso la calibre mediante una transformada mas el offest algo que se hacia colocando la brujula en diferentes posiciones y tomando unos datos y comparada con la de varios moviles era bastante exacta, pero ahora esta sobre el robot de la foto, con motores de cc, es decir de iman permanente junto con todos los campos electromagneticos que gereran dos motores de alterna mas el generador, con lo que hay veces que va bien y veces que no, toda la electronica esta dentro de una caja de un dvd antiguo. Tengo comunicacion con el robot via bluetooth, basicamente lo uso como el monitor de arduino.
El caso es que hay por ahi un proceso para calibrar la brujula(girando a un lado luego al otro) os pongo el enlace pero no tengo muy claro su funcionamiento, ademas creo que no esta completo
https://github.com/helscream/HMC5883L_Header_Arduino_Auto_calibration
Alguien que me pueda orientar, mi codigo para leer la brujula es:
escribe o pega el código aquí
float leerBrujula() {
compass.getHeading(&mx, &my, &mz);
//Calcular ángulo el ángulo del eje X respecto al norte
float angulo = atan2(my, mx);
angulo = angulo * RAD_TO_DEG;
// angulo = angulo - declinacion; declinacion 0º 15' +- 0º20' , es decir despreciable
if (angulo < 0) {angulo = angulo + 360;}
Serial.print("N:");
Serial.println(angulo,0);
Serial2.print("N:");
Serial2.println(angulo,0);
return angulo;
}
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.



