Apenas mais uma brincadeirinha de menino crescido. Escrever e ler na memória EEPROM via interface I2C. Seguem alguns materiais adicionais.
//CI 24LC02B - Memória EEPROM de 2KBit Comunicação Serial I2C
//Mestre é o Arduino UNO
//Escravo é a memória EEPROM CI 24LC02B
//Autor: Ismael Lopes da Silva
#include <Wire.h> //Biblioteca padrão da IDE Arduino
void setup()
{
Serial.begin(9600);
Wire.begin();
char vDadoEscrita[] = "EEPROM CI 24LC02B. Teste de escrita e leitura. Escrita e leitura por Byte."; //String que será escrita na EEPROM 24LC02B
for (int i=0; i < sizeof(vDadoEscrita); i++) //Imprimir na serial uma amostra do que será escrito na EEPROM
{
Serial.print(vDadoEscrita[i]);
}
Serial.println();
for (int i=0; i < sizeof(vDadoEscrita); i++) //Mestre transmite comandos, endereços e dados de escrita para o escravo
{
Wire.beginTransmission(0x50); //Mestre transmite comando de partida (start) com o Byte de Controle de acesso a EEPROM 0x01010000 = 0x50
Wire.write(i); //Transmite Byte que é o dado de endereço
Wire.write(vDadoEscrita[i]); //Transmite o Byte que é o dado de escrita, cada caracter da String
Wire.endTransmission(); //Transmite o comando de parada (stop)
delayMicroseconds(6000); //Aguarda o tempo de escrita que é aproximadamente 3ms, portanto, por garantia o dobro do tempo tipico
}
Serial.println("EEPROM foi escrita...");
for (int i=0; i < sizeof(vDadoEscrita); i++) //Mestre solicita dados do escravo, que são dados escrito na EEPROM
{
Wire.beginTransmission(0x51); //Mestre transmite comando de partida (start) com o Byte de Controle de acesso a EEPROM 0x01010001 = 0x51
Wire.write(i); //Transmite Byte que é o dado de endereço de leitura da EEPROM
Wire.endTransmission(); //Transmite o comando de parada (stop) e aguardará o envio do dado Byte da EEPROM
Wire.requestFrom(0x51,1,true); //Comando para fazer leitura de um Byte
if (Wire.available()) Serial.print((char)Wire.read()); //Lê o dados da EEPROM e imprime na serial
}
Serial.println();
Serial.println("EEPROM foi lida...");
}
void loop()
{
}
Tags:
da uma olhada nesse aqui link
Wadeck, boa tarde.
Os códigos são bem parecidos, salvo as diferenças de hardware. Obrigado pela atenção e gostei por ter compartilhado. Um abraço.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por