
AT24C256 EEPROM 存儲模組 / 記憶體模組 Arduino 擴充儲存記憶體專用
- 貨號
- 75637611(A4-4)
- 分類
- 用戶介面輸入輸出
- 庫存
- 有庫存(0)
商品說明 產品特點與規格 板載8P晶片座,安裝AT24C256晶片; 排針供電,板載電源指示燈; 板載I2C通訊所需的上拉電阻; 所有管腳均引出並標注,地址輸入和寫保護管腳直接可以跳線設置; PCB板子尺寸:36.5(mm)x12(mm) 容量:256K I2C接口 發貨清單 AT24C256 存儲模組 x 1塊 原廠技術文件 http://playground.arduino.cc/Code/I2CEEPROM Arduino 範例 /* * Use the I2C bus with EEPROM 24LC64 * Sketch: eeprom.pde * * Author: hkhijhe * Date: 01/10/2010 * * */ #include <Wire.h> //I2C library void i2c_eeprom_write_byte( int deviceaddress, unsigned int eeaddress, byte data ) { int rdata = data; Wire.beginTransmission(deviceaddress); Wire.send((int)(eeaddress >> 8)); // MSB Wire.send((int)(eeaddress & 0xFF)); // LSB Wire.send(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.send((int)(eeaddresspage >> 8)); // MSB Wire.send((int)(eeaddresspage & 0xFF)); // LSB byte c; for ( c = 0; c < length; c++) Wire.send(data[c]); Wire.endTransmission(); } byte i2c_eeprom_read_byte( int deviceaddress, unsigned int eeaddress ) { byte rdata = 0xFF; Wire.beginTransmission(deviceaddress); Wire.send((int)(eeaddress >> 8)); // MSB Wire.send((int)(eeaddress & 0xFF)); // LSB Wire.endTransmission(); Wire.requestFrom(deviceaddress,1); if (Wire.available()) rdata = Wire.receive(); 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.send((int)(eeaddress >> 8)); // MSB Wire.send((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.receive(); } void setup() { char somedata[] = "this is data from the 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); }




