§ Внешний вид и конфигурация
Если WP (Write Protect) соединен с GND — операции записи разрешены, иначе запрещена запись, а чтение разрешено в любом случае.Расшифровка адреса 24LСXXX (0 = GND, 1 = VCC)
A2 A1 A0 BIN HEX 0 0 0 | 1010000 | 0x50 0 0 1 | 1010001 | 0x51 0 1 0 | 1010010 | 0x52 0 1 1 | 1010011 | 0x53 1 0 0 | 1010100 | 0x54 1 0 1 | 1010101 | 0x55 1 1 0 | 1010110 | 0x56 1 1 1 | 1010111 | 0x57
§ Топ-схема программирования
Для модуля требуется подключения 24LC.h.1#include "24LC.h" 2 3EEPROM24LC eeprom(0x50); 4 5byte data[10]{12,24,48,96,128,12,4,55,68,250}; 6 7void setup() { 8 9 Serial.begin(9600); 10 11 int i; 12 13 // Тестовая запись и чтение из памяти 14 for (i = 0; i < 10; i++) { eeprom.write(i, data[i]); } 15 for (i = 0; i < 10; i++) { Serial.print(i); Serial.print(" "); Serial.println(eeprom.read(i)); } 16} 17 18void loop() { }
§ Модуль
Копиригхты (Ол Правый Резервед)// Alexander Liman (liman324@yandex.ru) rcl-radio.ru // I2C EEPROM 24LC256 32 kb // I2C EEPROM 24LC128 16 kb
1#ifndef EEPROM24LC_H 2#define EEPROM24LC_H 3 4#include <Arduino.h> 5 6class EEPROM24LC 7{ 8 public: 9 10 EEPROM24LC(byte); 11 void write(uint16_t addr, uint8_t data); 12 byte read(uint16_t addr); 13 14 private: 15 16 int ADDR; 17}; 18#endifРеализация класса
1#include <24LC.h> 2#include <Wire.h> 3 4EEPROM24LC::EEPROM24LC(uint8_t addr){ 5 6 ADDR = addr; 7 Wire.begin(); 8}; 9 10void EEPROM24LC::write(uint16_t addr, uint8_t data) { 11 12 Wire.beginTransmission(ADDR); 13 Wire.write(addr >> 8); 14 Wire.write(addr & 0xFF); 15 Wire.write(data); 16 Wire.endTransmission(); 17 delay(5); 18} 19 20uint8_t EEPROM24LC::read(uint16_t addr) { 21 22 Wire.beginTransmission(ADDR); 23 Wire.write(addr >> 8); 24 Wire.write(addr & 0xFF); 25 Wire.endTransmission(); 26 27 Wire.beginTransmission(ADDR); 28 Wire.requestFrom(ADDR, 1); 29 uint8_t value = Wire.read(); 30 delay(1); 31 32 return value; 33}