Pessoal, preciso muito da ajuda de vocês, tenho um projeto de faculdade para entregar e estou com muitas dificuldades com meu frankdrone...

Seguinte, ligo meu ESP32 + MPU6050 via cabo USB ou bateria externa 9v e eles funcionam em perfeita harmonia... Fornecendo leituras precisas e consistentes de aceleração e movimento. Amostra:

Ax: -6.25 Ay: 15.50 Az: 2047.94 T: 26.74 Gx: -285.00 Gy: 1.00 Gz: -16.00
Ax: -3.00 Ay: 19.50 Az: 2047.94 T: 26.74 Gx: -277.00 Gy: 18.00 Gz: -39.00
Ax: -2.75 Ay: 13.00 Az: 2047.94 T: 26.79 Gx: -280.00 Gy: 10.00 Gz: 0.00
Ax: -3.50 Ay: 16.75 Az: 2047.94 T: 26.74 Gx: -276.00 Gy: 18.00 Gz: -9.00

Ligo meu ESP32 + IRF540 + Motores e eles funcionam tb bem... Motores acionam, consigo controlar a rotação e etc.

Ligo ESP32 + IRF540 + MPU6050 + Motores e as trevas invadem meu projeto... O MPU6050 começa a fornecer dados loucos e inconsistentes como o exemplo abaixo:

Ax: -4.00 Ay: 19.50 Az: 2047.94 T: 26.79 Gx: -292.00 Gy: 13.00 Gz: -8.00
Ax: -2048.00 Ay: 2047.94 Az: 2047.94 T: 26.74 Gx: -782.00 Gy: -4159.00 Gz: 3883.00
Ax: 2047.94 Ay: 2047.94 Az: 2047.94 T: 26.69 Gx: -10125.00 Gy: 1894.00 Gz: 5046.00
Ax: -505.50 Ay: -2048.00 Az: 971.25 T: 26.65 Gx: 6064.00 Gy: 195.00 Gz: -6532.00
Ax: -352.25 Ay: 602.00 Az: 1333.00 T: 26.74 Gx: -49.00 Gy: -3233.00 Gz: 2985.00
Ax: -438.00 Ay: -205.00 Az: 2047.94 T: 26.79 Gx: 5745.00 Gy: -4802.00 Gz: 1344.00
Ax: -2048.00 Ay: -236.75 Az: 2047.94 T: 26.74 Gx: 4162.00 Gy: -10412.00 Gz: 117.00
Ax: 2047.94 Ay: -104.00 Az: -20.25 T: 26.60 Gx: 5914.00 Gy: 4254.00 Gz: -2155.00

O meu ESP32 e MPU6050 estão sendo alimentados pela USB do PC ou por uma bateria 9v.

O motores e IRF540 estão sendo alimentados por uma bateria LiPo 3.7v.

Ambas fontes de alimentação com o terra (negativo) ligado em comum.

Abaixo um desenho (bem bizarro) do esquema utilizado na ligação do frankdrone:

O que poderia estar acontecendo para que o MPU6050 gere essas leituras doidas?

Lembrando que ESP32 + MPU funciona beleza e ESP32 + Motores (controlados pelo IRF) funcionam bem. O conjunto de todos vira a confusão.

Enquanto a bateria dos motores (3.7v) está desconectada tudo corre bem, no segundo que conecto a bateria tudo vai por água abaixo.

Outro detalhe curioso é que tenho 4 portas Digitais PWM para enviar o sinal para o IRF540, sempre a última porta mantem um sinal constante do motor em um giro baixo (um sinal baixo que mantém o motor em rotação lenta), mesmo no código estando para ele se manter 0.

O que poderia ser essa questão do giro?

Anexei ao posto o meu projeto da IDE Arduino tb.

Preciso entregar ele em 3 semanas e estou já a ponto de desespero sem saber o que fazer. 

Abaixo algumas fotos de como ficou o protótipo assustador. Importante destacar que é importante que eu construa o máximo possível desse drone pois quanto mais for feito pelo aluno, maior a nota (não posso comprar a carcaça pronta e o projeto deve ser feito pelo aluno, não posso comprar kit pronto).

Exibições: 89

Anexos

Responder esta

Respostas a este tópico

Utilize capacitores para decoupling. Seus motores estão interferindo no terra.

Qual vc recomenda para este caso?

Use 1 capacitor de 10uF ceramico entre os terminais do motor.
Outra coisa, coloque um diodo 1N4148 com o catodo ligado do lado positivo da bateria e o anodo do outro lado do motor para poder lidar com a força contra eletromotriz.
veja esse vídeo: Força eletromotriz

bom dia Felipe.

     As considerações que o Igor Miranda fez sobre os spikes na alimentação gerados pela força contra-eletromotriz, são muito pertinentes, e realmente seriam consideradas. Caso venha a utilizar motores mais "trancudos", sugiro utilizar diodos da série 1N4937 (entre 1N4933 e 1N4937), ao invés do 1N4148.

    Mas tem duas coisas estranhas no seu diagrama (aquele que vc chamou de "bizarro"):

1) os transistores segundo vc disse, são IRF540, ou seja, MOSFETs canal N. No entanto no seu diagrama, a simbologia está indicando transistores bipolares. Além disso a ligação mostrada no digrama, de fato é para transistores bipolares (ligados na configuração coletor comum). Bem, ocorre que a ligação dos MOSFETs canal N, é completamente diferente daquela mostrada no seu diagrama (a ligação típica é com carga "não aterrada" e "source aterrado"). Afinal, que diabos você está utilizado como driver para os motores ?

   (segue datasheet do IRF540:  IRF540 datasheet - Vishay )

2) no seu diagrama, a placa do MPU-6050 está recebendo a alimentação de 3.3V, mas claramente (pelas fotos) esta sua plaquinha MPU é daquelas que tem um regulador LDO cuja saída sabemos ser de 3.3V (veja o componente "Q2" no diagrama logo abaixo, que "peguei" no Google). Embora até pareça possível alimentar esse LDO mesmo com 3.3V, isso não é sensato, já que estes LDOs tem um dropout mínimo entre 50mV a 150mV (depende do LDO e da corrente drenada). Afinal, você "jumpeou" o LDO na sua plaquinha MPU-6050 ?

Desculpe se pareço "enxerido",  mas fiquei um tanto curioso quando vi seu diagrama. Caso vc não possa responder, seja por qual motivo for, tranquilo, eu entenderei.

Abrçs

Elcids

ah sim:

caso vc tenha jumpeado (ou seja, feito um "bypass") no LDO da plaquinha MPU-6050, seu problema pode ter sido causado por isso. Isto porque o LDO recebendo 5V na sua entrada, além de regular e estabilizar a alimentação do MPU-6050, também funciona como um filtro para a alimentação deste (acelerômetros costumam ser exigentes quando à "limpeza" da alimentação). Jumpeando o LDO, você eliminaria estas características benéficas ao sub-sistema do MPU-6050 (e neste caso não adiantaria muito o capacitor C10 no esquemático da plaquinha, nem seus outros coleguinhas "satélites").

Se for algo assim que está ocorrendo, alimentando a plaquinha MPU (e portanto o LDO) com 5V (pelo diagrama, parece que vc tem isso disponível), poderá resolver ou minimizar o problema (mas talvez não seja sensato dispensar os diodos).

abrçs,

Elcids

muito importante:

se vc for alimentar a "plaquinha MPU" com 5V, NÃO se esqueça de retirar o "jumpeamento"  do LDO (caso tenha feito este bypass), do contrário seu MPU6050 vai dar uma fervida e possivelmente um último suspiro.

Mas se vc não jumpeou o LDO, lembre-se: um dropout mínimo entre 50mV e 150mV é necessário entre saída e entrada do LDO. Ou seja: não é sensato alimentar o LDO com tensão menor que algo em torno de 3.45V. Alimentá-lo com 5V, seria uma boa opção.

Abrçs,

Elcids

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2018   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço