collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Comunicação I2C com Arduino  (Lida 10613 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline marlon.tiedt

  • Mini Robot
  • *
  • Mensagens: 5
Re: Comunicação I2C com Arduino
« Responder #15 em: 04 de Dezembro de 2014, 21:05 »
Como nunca mexi com I2C, estas informações são muito valiosas.

Estou querendo mexer com acelerômetros e giroscópios, e encontrei o MPU-6050. Mas o que me desanimou foi o I2C. Já vi acelerômetros com saidas digitais, que eu acho mais tranquilo de trabalhar, pois cada elemento tem uma saída analógica.

Porém não achei nenhum giroscópio com saída analógica, será que existe? E claro, outros componentes como magnétron e medidor de pressão e altitude, tudo usa I2C.

E minha singela opinião, ler 3 saídas analógicas é mais rápido do que ler 6 bytes.



 

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Comunicação I2C com Arduino
« Responder #16 em: 04 de Dezembro de 2014, 21:09 »
Se for com um Arduino não, porque a ADC corre a pouco mais de 10Khz, e depois introduzes ruidos, problemas a desenhar filtros analógicos, bla bla bla.

Esses sensores são muito, muito usados, tens milhentas bibliotecas, quem não conhece, aqui fica uma boa base de dados de código comprovado e testado:
http://www.i2cdevlib.com/
Avr fanboy

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: Comunicação I2C com Arduino
« Responder #17 em: 07 de Dezembro de 2014, 15:37 »
Não senso, não é só de ti que o I2C não gosta :)

Não Kamm., não tem nada a ver com extensões ao I2C, são simplesmente bugs de implementação da funcionalidade básica.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Comunicação I2C com Arduino
« Responder #18 em: 07 de Dezembro de 2014, 15:42 »
A ultima coisa estranha foi mesmo o PCA ser um Plus(ou plus + ou lá o nome do i2c rápido esta semana) que devia funcionar a 1Mhz, mas acima de 400Khz e passa-se quando tento mudar o prescaler do clock, o sinal tem uma forma bonita, tem os devidos pull-ups e pistas curtas, mas nem me preocupei muito com aquilo, a 400Khz funciona rápido o suficiente.
Avr fanboy

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: Comunicação I2C com Arduino
« Responder #19 em: 07 de Dezembro de 2014, 16:17 »
Na DiffTrike temos um RasPI ligado a 2 isoladores galvânicos I2C que ligam a 2 AVR (que controlam as pontes-H de potência), por um cabo "em Y" que terá cerca de 50cm entre o PI e cada AVR, e I2C a bombar a 500 kbps (a 3V3). Temos uma "checksum", mas nunca vimos nenhum erro. Agora bomba, mas não sem antes termos partido a cabeça com o bug no I2C do PI.

O isolador I2C foi crucial para detectar o bug do PI, porque pela forma como funcionam estes isoladores; o sinal "low" tem uma tensão ligeiramente diferente para o mestre e para o escravo, o que permitiu perceber quem é que estava a fazer o quê.

O cabo não foi escolhido à toa, é um cabo de rede, que escolhi por causa de ter vários pares entrançados; cada sinal (SDA, SCL) tem o seu próprio par, em que o GND é ligado nas 2 pontas. Por ser entrançado reduz a inductância do cabo (e logo distorções, emissões de EMI e susceptiilidade a EMI) e o crosstalk (por serem pares separados e viajarem com o seu próprio GND). A alimentação para o isolador I2C também viaja pelo cabo, no seu próprio par entrançado o que também ajuda a reduzir a inductância e logo problemas de alimentação (quando se tenta puchar corrente muito depressa através duma inductância, ela opõe-se fazendo baixar a tensão, e vice-versa).
« Última modificação: 07 de Dezembro de 2014, 16:23 por Njay »