Beschrijving
AT24C256 Memory module I2C interface EEPROM ‘electrically erasable programmable read only memory’. Hiermee houd je de gegevens vast zelfs als er geen voeding is. De Atmel AT24C256 heeft opslagruimte voor 256KBits (32Kbytes).
AT24C256 Memory module I2C interface EEPROM specificaties:
– 8P onboard chip mount
– AT24C256 chip
– I2C interface instelbaar via jumpers A0 en A1 0x50 tot 0x53 (standaard 0x50).
– Afmetingen: 36.5 * 12 mm
Aansluiten:
VCC – Voedingsspanning (5V)
GND – Ground/Aarde
SDA – I2C SDA aansluiting (naar SDA op de Arduino)
SCL – I2C SCL aansluiting (naar SCL op de Arduino)
Jumpers:
WP – Write protect
A0 – Voor het instellen van het I2C-adres
A1 – Voor het instellen van het I2C-adres
A2 – Niet aangesloten
Arduino code voorbeeld:
#include <Wire.h>
void i2c_eeprom_write_byte( int deviceaddress, unsigned int eeaddress, byte data ) {
int rdata = data;
Wire.beginTransmission(deviceaddress);
Wire.write((int)(eeaddress >> 8)); // MSB
Wire.write((int)(eeaddress & 0xFF)); // LSB
Wire.write(rdata);
Wire.endTransmission();
}
// WARNING: address is a page address, 6-bit end will wrap around
// also, data can be maximum of about 30 bytes, because the Wire library has a buffer of 32 bytes
void i2c_eeprom_write_page( int deviceaddress, unsigned int eeaddresspage, byte* data, byte length ) {
Wire.beginTransmission(deviceaddress);
Wire.write((int)(eeaddresspage >> 8)); // MSB
Wire.write((int)(eeaddresspage & 0xFF)); // LSB
byte c;
for ( c = 0; c < length; c++)
Wire.write(data[c]);
Wire.endTransmission();
}
byte i2c_eeprom_read_byte( int deviceaddress, unsigned int eeaddress ) {
byte rdata = 0xFF;
Wire.beginTransmission(deviceaddress);
Wire.write((int)(eeaddress >> 8)); // MSB
Wire.write((int)(eeaddress & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(deviceaddress,1);
if (Wire.available()) rdata = Wire.read();
return rdata;
}
// maybe let's not read more than 30 or 32 bytes at a time!
void i2c_eeprom_read_buffer( int deviceaddress, unsigned int eeaddress, byte *buffer, int length ) {
Wire.beginTransmission(deviceaddress);
Wire.write((int)(eeaddress >> 8)); // MSB
Wire.write((int)(eeaddress & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(deviceaddress,length);
int c = 0;
for ( c = 0; c < length; c++ )
if (Wire.available()) buffer[c] = Wire.read();
}
void setup()
{
char somedata[] = "dit is een test met de eeprom"; // data to write
Wire.begin(); // initialise the connection
Serial.begin(9600);
i2c_eeprom_write_page(0x50, 0, (byte *)somedata, sizeof(somedata)); // write to EEPROM
delay(10); //add a small delay
Serial.println("Memory written");
}
void loop()
{
int addr=0; //first address
byte b = i2c_eeprom_read_byte(0x50, 0); // access the first address from the memory
while (b!=0)
{
Serial.print((char)b); //print content to serial port
addr++; //increase address
b = i2c_eeprom_read_byte(0x50, addr); //access an address from the memory
}
Serial.println(" ");
delay(2000);
}
Enkel ingelogde klanten die dit product gekocht hebben, mogen een beoordeling schrijven.
Verzending binnen Nederland
Dit product word bezorgd via PostNL briefpost in een bubbel envelop.- € 3.45 verzendkosten voor orders onder de € 25,-.
- € 2.95 verzendkosten voor orders tussen € 25 - 45,-.
- Orders boven de € 45,- worden
gratis verstuurd per PostNL briefpost.
Op werkdagen voor 16:30 uur besteld, zelfde dag verzonden!
Klik hier voor de kosten buiten Nederland.
Electronics4Fun (geverifieerde eigenaar) –
Deze memorymodule werkt goed en je kan er best veel op opslaan.
Electronics4Fun (geverifieerde eigenaar) –
Excuus, was vergeten ‘waardering’ aan te vinken. Een goed produkt verdiend een complete beoordeling, vind ik.