Habilitando I2C no Raspberry PI


digite:

sudo nano /etc/modules


Adicione essas duas novas linhas, depois salve com ctrl+o e para sair ctrol+x:

  • i2c-bcm2708

  • i2c-dev


Digite uma linha por vez:

  • sudo apt-get install python-smbus

  • sudo apt-get install i2c-tools


Digite:

sudo nano /etc/modprobe.d/raspi-blacklist.conf


edite as seguintes linhas adicionando um # antes de cada linha (comentario)

  • #blacklist spi-bcm2708

  • #blacklist i2c-bcm2708


Reinicie seu Raspberry PI:

sudo shutdown -r now


Faça um teste:

  • sudo i2cdetect -y 0 # Versão antiga

  • sudo i2cdetect -y 1 # versão nova

Faça tutoriais tambem, só assim a comunidade RPi no Brasil vai para frente!

Exibições: 4976

Responder esta

Respostas a este tópico

moderador, move para tutoriais do raspberry..

Pronto! =D

Rogério, mais alguns comandos úteis:

pi@raspberrypi ~ $ i2cdetect -l
i2c-0 unknown bcm2708_i2c.0 N/A
i2c-1 unknown bcm2708_i2c.1 N/A

Leitura de registrador do dispositivo I2C:

pi@raspberrypi ~ $ sudo i2cget
Usage: i2cget [-f] [-y] I2CBUS CHIP-ADDRESS [DATA-ADDRESS [MODE]]
I2CBUS is an integer or an I2C bus name
ADDRESS is an integer (0x03 - 0x77)
MODE is one of:
b (read byte data, default)
w (read word data)
c (write byte/read byte)

Exemplo de leitura de registrador do dispositivo I2C:

pi@raspberrypi ~ $ sudo i2cget -f -y 1 0x68 0x0E b
0x18

Dump de memória do dispositivo I2C :

pi@raspberrypi ~ $ sudo i2cdump -y 1
Usage: i2cdump [-f] [-y] [-r first-last] I2CBUS ADDRESS [MODE [BANK [BANKREG]]]
I2CBUS is an integer or an I2C bus name
ADDRESS is an integer (0x03 - 0x77)
MODE is one of:
b (byte, default)
w (word)
W (word on even register addresses)
s (SMBus block)
i (I2C block)
c (consecutive byte)

Exemplo de dump de memória do dispositivo I2C :

pi@raspberrypi ~ $ sudo i2cdump -f -y 1 0x68 b 0

0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 22 11 14 01 04 08 13 00 00 00 00 00 00 04 18 80 "??????......???
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX

pi@raspberrypi ~ $ i2cdump -V          (para ver a versão) 
i2cdump version 3.1.0

Cuidado ! Não use o RTC de Arduino no Raspberry Pi. 

O DS1307 usa 5V e o GPIO é 3,3V.

Montei um circuito com o DS1337 (3,3V).e funcionou.

Ou então faça a conversão de interface .

eu fiz isso com alguns resistores.. para comunicar com o Arduino.

:)

outros CIs que não são 3.3v, como que você fez para se comunicar com o RPi?

Por enquanto eu testei o DS1337(RTC) e o termometro DS18B20 (com 3,3V). 
Mas existem  os conversores de níveis lógicos, por exemplo:

https://www.sparkfun.com/products/11978

https://www.sparkfun.com/products/12009

Helder, o Ds1337 tem um inconveniente, ou talvez ainda não entendi o melhor jeito de alimenta-lo com 3,3V. Ele não tem entrada para bateria, talvez pelo consumo reduzidissimo de 150 uA quando ativo. Talvez o melhor jeito é alimenta-lo diretamente com a bateria de 3,3 V.

http://www.maximintegrated.com/datasheet/index.mvp/id/3128

Eu comprei um RTC DS1307 para Arduino que usa uma bateria (tipo moeda) recarregável de 3,6V l! Nem sabia que existia essa bateria. Veja o circuito de 5V que carrega essa bateria:

Esse desenho eu que fiz, porque o diagrama do china estava péssimo.

 

Usando apenas resistores não é bom não?

Funciona, mas dependendo dos valores usados, poderá estar sobrecarregando os circuitos? 

Tem que analisar o circuito. 

A forma mais adequada seria com conversores de nível lógico.

Bom dia,Estou participando de um projeto e preciso de uma biblioteca para utilizar um LCD 16x2 atráves de comunicação I²C (PCF8574) no Raspberry. Encontrei algumas coisas em Python, porém estamos desenvolvendo o projeto em C/C++ e não encontrei nada. Alguém já fez uso de alguma biblioteca epara essa finalidade e possa me ajudar?

Obrigada!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço