Bonsoir à tous,
Pour augmenter la capacité mémoire, je souhaiterai assembler des EEPROM en série.
Le tuto vidéo suivant Youtube explique le montage et le codage.
Le code doit écrire une valeur à la première adresse de chaque mémoire (110 sur la première, 111 sur la seconde, 112 sur la troisième).
Malheureusement, l'écriture ne fonctionne pas : les valeurs lues sont toujours à 255.
D'où vient donc mon erreur ?
Merci
#include <EEPROM.h>
#include <Wire.h>
#define EEPROM_I2C_ADDRESS0 0x50
#define EEPROM_I2C_ADDRESS1 0x51
#define EEPROM_I2C_ADDRESS2 0x52
#define EEPROM_I2C_ADDRESS3 0x53
void writeAddress(byte i2cAddress, int address, byte val)
{
Wire.beginTransmission(i2cAddress);
Wire.write((int)(address >> 8));
Wire.write((int)(address & 0xFF));
Wire.write(val);
Wire.endTransmission();
delay(5);
}
byte readAddress(byte i2cAddress,int address)
{
byte rData = 0xFF;
Wire.beginTransmission((int)(address >> 8));
Wire.beginTransmission((int)(address & 0xFF));
Wire.endTransmission();
rData = Wire.read();
return rData;
}
void setup() {
Wire.begin();
Serial.begin(9600);
int address = 0;
byte val0 = 110;
byte val1 = 111;
byte val2 = 112;
byte val3 = 113;
byte readVal=0;
writeAddress(EEPROM_I2C_ADDRESS0,address,val0);
readVal = readAddress(EEPROM_I2C_ADDRESS0,address);
Serial.print("Lu : ");
Serial.println(readVal);
writeAddress(EEPROM_I2C_ADDRESS1,address,val1);
readVal = readAddress(EEPROM_I2C_ADDRESS1,address);
Serial.print("Lu : ");
Serial.println(readVal);
writeAddress(EEPROM_I2C_ADDRESS2,address,val2);
readVal = readAddress(EEPROM_I2C_ADDRESS2,address);
Serial.print("Lu : ");
Serial.println(readVal);
}
void loop() {
}