O AT24C256 é um I2C EEPROM (memória programável eletricamente apagável) que permite ao Raspberry Pi armazenar e recuperar dados mesmo após a perda de energia. Este guia explica como interface o AT24C256 com o Raspberry Pi, incluindo fiação, habilitando o I2C e a leitura/escrita de dados usando o Python.
O que você precisará
- Raspberry Pi (Qualquer modelo com suporte GPIO e I2C, por exemplo, PI 3, PI 4)
- Módulo AT24C256 EEPROM
- Fios de pão e jumper
- Python instalado No Raspberry Pi
Etapa 1: Fiação do AT24C256 para o Raspberry Pi
O AT24C256 se comunica usando o Protocolo I2C.
Conexões
AT24C256 PIN | Pino de framboesa pi |
---|---|
VCC | 3.3V (pino 1) |
Gnd | Terra (pino 6) |
SDA | SDA (pino 3, gpio2) |
SCL | SCL (pino 5, gpio3) |
WP (Write Protect) | GND (desativar proteção de gravação) |
Etapa 2: Ativar I2C no Raspberry Pi
- Abra a ferramenta de configuração do Raspberry Pi:
sudo raspi-config
- Navegar para Opções de interface> i2c e ativá -lo.
- Reinicie o Raspberry Pi:
sudo reboot
Etapa 3: Instale as bibliotecas necessárias
- Atualize a lista de pacotes do Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Instale as ferramentas i2C necessárias e as bibliotecas Python:
sudo apt install -y i2c-tools python3-smbus
- Verifique se o AT24C256 EEPROM é detectado no barramento i2C:
A EEPROM deve aparecer em 0x50 (ou outro endereço com base nas configurações do pino A0-A2).sudo i2cdetect -y 1
Etapa 4: Ler e escrevendo dados para o AT24C256
Os AT24C256 armazena dados em 256kb de memóriae cada byte é acessado usando seu endereço de memória.
Escrevendo dados para a EEPROM
import smbus2
import time
EEPROM_ADDRESS = 0x50 # Default I2C address of AT24C256
bus = smbus2.SMBus(1) # Use I2C bus 1
def write_byte(address, data):
bus.write_i2c_block_data(EEPROM_ADDRESS, address, [data])
time.sleep(0.05) # EEPROM needs time to write
# Write data (example: store 'A' at address 0x00)
write_byte(0x00, ord('A'))
print("Data written successfully!")
Lendo dados da EEPROM
def read_byte(address):
return bus.read_byte_data(EEPROM_ADDRESS, address)
# Read the stored byte at address 0x00
stored_value = read_byte(0x00)
print(f"Stored Data: {chr(stored_value)}")
Etapa 5: Aplicações do AT24C256
- Registro de dados: Armazene os dados do sensor ao longo do tempo para acesso offline.
- Armazenamento de configuração: Salvar configurações do sistema ou dados de calibração.
- Autenticação segura: Armazene chaves criptografadas ou tokens de autenticação.
- Projetos de IoT: Habilite o armazenamento persistente para aplicativos da Internet das Coisas.
Solução de problemas
-
EEPROM não detectado:
- Verifique a fiação e confirme as conexões SDA/SCL.
- Correr
sudo i2cdetect -y 1
Para verificar o endereço I2C da EEPROM.
-
Operações de leitura/gravação incorretas:
- Garantir Write Protect (WP) é de castigo Para ativar a escrita.
- Introduzir atrasos (
time.sleep(0.05)
) para permitir a conclusão das operações de gravação da EEPROM.
-
Erros de comunicação i2c:
- Verifique se há endereços I2C conflitantes no barramento.
- Garantir
smbus2
é instalado corretamente usandopip3 install smbus2
.
Conclusão
A EEPROM AT24C256 é uma maneira simples, mas poderosa de armazenar dados persistentemente em um Raspberry Pi. Seja para Registro de dados, armazenamento de configurações ou aplicativos de IoT, este guia fornece o conhecimento fundamental necessário para interagir com o armazenamento da EEPROM de maneira eficaz. Experimente a leitura/escrita de conjuntos de dados maiores para explorar todo o seu potencial! 🚀