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
Reinicie seu Raspberry PI:
sudo shutdown -r now
Faça um teste:
sudo i2cdetect -y 0 # Versão antiga
Faça tutoriais tambem, só assim a comunidade RPi no Brasil vai para frente!
Tags:
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:
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.
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!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por