Arduino travando ao acionar motores

Olá bom dia pessoal!
Estou desenvolvendo um projeto de um robô controlado por cabo e alimentado por bateria, e indo direto ao ponto estou tendo problemas de travamento no Arduino quando eu ligo os motores.

Algumas especificações:

  • Arduino MEGA;
  • Bateria 16v 15A/h com regulador de tensão fixo para 12v de saída para que não haja variação na entrada do circuito;
  • Distância do cabo de 100 metros CAT6e;
  • Motores;
  • Driver SyRen25;
  • Protocolo de comunicação RS485.

Estou desenvolvendo um software que será a interface de controle, o qual se comunica com o Arduino pela porta serial através do protocolo de comunicação RS485, e também fica lendo os dados dos sensores que o carro possui, como o MQ-2, DHT22, MPU6050, HC020K, INA219, entre alguns outros. O problema acontece quando eu aciono os motores do carro, isso com uma rampa de 5 segundos, eles começam a girar, mas no mesmo momento param bruscamente e o Arduino trava, tendo que resetar ele no botão, ou mesmo tem que desligar ele e ligar novamente para que volte a funcionar. O que pode estar ocasionando esse travamento?

O sketch usa 18966 bytes (7%) de espaço de armazenamento para programas. O máximo são 253952 bytes. Variáveis globais usam 819 bytes (9%) de memória dinâmica, deixando 7373 bytes para variáveis locais. O máximo são 8192 bytes.

Essa é minha saída da IDE, acredito que não seja por falta de memória.
Obrigado desde já!

Não, ele está ligado na mesma saída que alimenta os drivers, no caso é o mesmo regulador de tensão.

Como não tenho um filtro na mão aqui, tentei ligar somente o arduino em uma fonte chaveada a parte, porém com os GNDs interligados, e apresentou o mesmo problema. O filtro seria diferente?

Imaginei algo assim também.
Você fala colocar opto acopladores nas saídas do Arduino que controlam os drivers?

Fazendo alguns testes aqui consegui mais algumas informações.
Eu inseri os fotoacopladores no circuito, mas de fato não resolveu meu problema, então decidi fazer alguns testes retroativos, até que percebi que quando eu removi o fio do motor do sensor INA219, sensor de corrente DC, o motor voltou a funcionar sem travar mais a placa.
Isso me faz pensar se tem alguma coisa haver com o protocolo I2C, que é onde o sensor de corrente é ligado, pois eu não cheguei a desligar ele, só removi os fios do motor que iam nele, então no caso ele está medindo zero.
Alguma sugestão?

Posta umas fotos do projeto para ver se não achamos algo gritante.

Oi pessoal, desculpe pelo atraso.

Estou deixando um diagrama pra tentar ajudar, foi o melhor que eu pude fazer.

No momento, o projeto está funcionando bem, porque removi o Vin- e Vin + do INA219, mas quando ligo esses cabos novamente, ele trava a placa quando lê os valores de corrente do motor. Nos meus testes, estou usando apenas um INA219, com outros todos os sensores ligados.

Isso ajuda em algo?

voce fez o procedimento de dar endereços unicos a cada ina219?