§ Внешний вид и конфигурация
Если 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.#include "24LC.h" EEPROM24LC eeprom(0x50); byte data[10]{12,24,48,96,128,12,4,55,68,250}; void setup() { Serial.begin(9600); int i; // Тестовая запись и чтение из памяти for (i = 0; i < 10; i++) { eeprom.write(i, data[i]); } for (i = 0; i < 10; i++) { Serial.print(i); Serial.print(" "); Serial.println(eeprom.read(i)); } } void loop() { }
§ Модуль
Копиригхты (Ол Правый Резервед)// Alexander Liman (liman324@yandex.ru) rcl-radio.ru // I2C EEPROM 24LC256 32 kb // I2C EEPROM 24LC128 16 kb
ifndef EEPROM24LC_H #define EEPROM24LC_H #include <Arduino.h> class EEPROM24LC { public: EEPROM24LC(byte); void write(uint16_t addr, uint8_t data); byte read(uint16_t addr); private: int ADDR; }; #endif#Реализация класса
#include <24LC.h> #include <Wire.h> EEPROM24LC::EEPROM24LC(uint8_t addr){ ADDR = addr; Wire.begin(); }; void EEPROM24LC::write(uint16_t addr, uint8_t data) { Wire.beginTransmission(ADDR); Wire.write(addr >> 8); Wire.write(addr & 0xFF); Wire.write(data); Wire.endTransmission(); delay(5); } uint8_t EEPROM24LC::read(uint16_t addr) { Wire.beginTransmission(ADDR); Wire.write(addr >> 8); Wire.write(addr & 0xFF); Wire.endTransmission(); Wire.beginTransmission(ADDR); Wire.requestFrom(ADDR, 1); uint8_t value = Wire.read(); delay(1); return value; }