Pessoal, boa tarde.

Estava pesquisando aqui, gostaria de saber se haveria possibilidade de conectar um Real Time Clock e um sensor Inercial BNO055 no mesmo Arduino (Mega).

Minha intenção é captar alguns dados do carrinho de controle remoto, contudo, preciso do tempo em que isso acontece. 

Os dois Utilizam as entradas SDA e SCL, gostaria de saber se teria como acessar uma outra localização de algum dos dois sensores para poder integrá-los no mesmo programa.

Segue anexado algumas imagens dos sensores.

(Não anexei os programas, caso seja necessária, anexo no comentário)

Exibições: 75

Anexos

Responder esta

Respostas a este tópico

olá Mr DEC.

      O I2C é um Barramento Endereçável, o que significa que cada dispositivo conectado a ele, possui seu próprio endereço. Ou seja, quando um programa vai acessar um dispositivo no barramento I2C, ele encontra o dispositivo especificando este endereço, e somente aquele dispositivo responde ao acesso, sendo que os demais que possuem endereço diferente ficam "quietinhos" em seus lugares.

      Este endereço é um número entre 0 e 127, de forma que teoricamente até 128 dispositivos poderiam estar conectados. Na prática evita-se uma quantidade tão grande como essa, por motivos técnicos os quais não entrarei em detalhes. Mas é comum se ligar diversos dispositivos I2C no Arduino, e eles irão conviver em harmonia, desde que tenham endereços diferentes.

       Muitas vezes o endereço é especificado no código do programa, mas isto não significa que vc pode escolher isso à vontade, pelo contrário:  quase sempre os fabricantes fixam o endereço do dispositivo e vc tem que usar o endereço que os fabricantes determinam.

      O módulo DS1307 e o módulo BNO055 tem endereços diferentes, e portanto conviverão juntos sem problemas.

      Mas há um cuidado que vc deve tomar. Quando for usar um módulo I2C, verifique a documentação ou datasheet da plaquinha (por exemplo olhar o circuito dela), e procure ver se nas linhas dos sinais SDA e SCL já foram incluídos os Resistores de "pullup" de 4.7k. Estes são os valores dos Resistores que devem ser usados no I2C. Porém no barramento inteiro, deve haver apenas um Resistor no SDA e apenas um no SCL. Se uma plaquinha já tem os Resistores, a outra não pode ter (vc pode retirar os mesmos dessoldando-os da plaquinha se for o caso). E claro: se nenhuma das plaquinhas que vc está usando tem os resistores, então vc deve acrescentá-los aos sinais SDA e SCL, pois eles são absolutamente necessários para que o I2C funcione. São de "pullup", e portanto devem ser ligados entre cada sinal e a alimentação do Sistema (5V ou 3.3V, a que vc estiver usando no seu Sistema).

     Caso queira aprender mais sobre o I2C, há uma infinidade de sites, blogs, vídeos mostrando sobre isso. Um artigo excelente é este da Sparkfun:  I2C Sparkfun

     Algo interessante pra seus testes, é usar o programa "I2C Scanner", que procura dispositivos ligados ao barramento I2C e informa vc quais os endereços estes dispositivos estão usando. Uma artigo que mostra seu uso é este:  exemplo uso I2C Scanner

     Caso tenha alguma dúvida, não deixe de perguntar.

    abrçs,

    Elcids

Pelo que verifiquei no datasheet, não preciso colocar esses resistores mesmo, pois o RTC já possui, correto ? Vou dar uma estudada melhor, é um mundo novo pra mim. kk

Boa tarde M.D.

Quem comanda a interface I2C é o Arduino. 

Parece que o seu  sensor BNO055 não gera gera interrupção. 

O Arduino terá que captar os dados do sensor inercial e depois a data/hora do RTC. 

Simples assim.

Muito interessante esse sensor ! 

https://www.bosch-sensortec.com/bst/products/all_products/bno055

https://www.davidpilling.com/wiki/index.php/BNO055

Como o Parece o sensor BNO055 não gera gera interrupção, bastar ligar, carregar os programas e informar somente o endereço do RTC que funcionará ?

informar somente o endereço do RTC que funcionará ?" ????

Claro que não. Terá que desenvolver uma programa para ler o sensor BNO055 e para o RTC.

Se é leigo e tem interesse em aprender, sugiro que faça testes separados. 

Monte o Arduino com o RTC e depois somente com o sensor. 

Aprenda a ler os dados do RTC (mais simples) . Depois aprenda a ler os dados do BNO055.

Depois de tudo aprendido,  desenvolva o seu projeto. 

Favor informar o módulo RTC que pretende usar.

Para estudar, montar e aprender :

http://blog.eletrogate.com/rtc-real-time-clock-ds1302-1307-e-3231/

Sobre o sensor, é mais complicado. Consegue traduzir inglês ? 

https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sen...

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço