Buenas a tod@s, tengo el problema que el siguente codigo, funciona perfectamente en mi placa Arduino UNO pero no lo hace en la MEGA tal como indico en el titulo.
Estoy haciendo un pequeño robot conformado por un arduino MEGA, el clásico chasis 4WD de metacrilato, una shield para 4 motores DC mas dos servos, un modulo de matrices LED 8x8 de cuatro elementos + dos de un elemento (boca y ojos del robot) y modulo bluetooth HC-06, alimentado con una bateria LiPo de aeromodelismo (regulada a 5V, 3.6V y 9V)
Através del bluetooth recibe las ordenes enviadas por una aplicacion desde el PC.
Para probar cada parte, programé primero sólo la parte de tracción (motores+ shield) en arduino UNO (con alimentacion LiPo), que funciona bien;
en segundo lugar programé la parte de las matrices LED tambien en arduino UNO (sin shield y alimentado por USB), que funciona perfecto;
Como me encontré con el problema que la shield ocupa demasiados pines (y con la idea de usar algunos sensores y servos en un futuro cercano) pensé en usar arduino MEGA.
Conectando todo igual en MEGA (incluyendo la shield), el sketch para probar la tración funciona bien.
Conectando todo igual en MEGA (excluyendo la shield), el sketch para probar las matrices LED no funciona.
El codigo (el sketch para probar las matrices LED) lo adjunto porque excede el tamaño máximo permitido. Si necesitan los schetch de las otras pruebas, fotos o mas infornación agradezco me la soliciten.
Hace un rato, haciendo pruebas suprimí esta linea:
SoftwareSerial BT1(4,2); //RX, TX
y en adelante opero el bluetooth como Serial1. (conectado en el pin 18 y 19 de arduino MEGA)
con eso funcionó el sketch de expresión, pero para mi desespero:
-cuando uno ambos sketchs (tración y expresión) solo funciona la parte de expresión, los motores no se mueven.
-para continuar cuando conecto un servo (9G) a cualquiera de los conectores que vienen preparados en la shield, las matrices se apagan completamente.
-como los problemas eran pocos el regulador 7805 alcanza una temp muy elevada.
-para saltar por la ventana: como se agotaba la bateria LiPo, la puse a cargar y la encontré como un balón de rugbi.
dejo adjunto el sketch (tracción + expresión) por superar el tamaño permitido por si quieren echar un vistazo.
Lo de la maquina de estados, llevas razón Surbyte, los delay()s paran completamente la ejecución del programa, pero aun no se como hacerlo en este caso, me pondré a experimentar, los delay()s en principio son temporales, solo para ver las transiciones fluidas pero no a velocidad extrema, por eso algunos valores tan altos.
Dos servos manejarán las cejas, un servo grande la rotacion del cuello. Podré un ultrasonico y alguna cosa mas... ahora le falta el "cuerpo" que es un bol plastico por eso etá apoyado sobre las ruedas...
se que lo voy a matar, pero pensé que como son pocos LED los que se encienden simultaneamente me arriegué, tengo el disipador preparado, pero como estoy en fase de pruebas aun no lo he fijado (tengo que aislar los LM317 y el 7805 mi disipador será compartido)
Al igual que _Gromek tenia el mismo problema de comunicación. Estaba realizando un programa para la comunicación entre una PC y un Arduino MEGA con el uso del HC-06 por medio de comunicación serie, pero con el fin de facilitarme las cosas use un Arduino UNO. Todo me funciono bien en el Arduino UNO, pero al subir el mismo programa al Arduino MEGA este no recibía el mensaje desde la computadora y solo se quedaba ejecutando el loop para recibir caracteres. Lo que me funciono fue eliminar el "SoftwareSerial BT1(4,2)" y programar alguno de los Seriales que trae Arduino MEGA (Serial1, Serial,2 y Serial3) como lo menciona _Gromek.