Поговорим сегодня про EEPROM в ардуино. ЕEPROM – это энергонезависимая память в микроконтроллере ардуино. Это значит, что записанная информация в ячейки такой памяти, будет сохранена даже после выключения питания. После включения питания эта информация вновь можно читать и использовать в своих проектах.
Объем памяти EEPROM разниться от модели к модели arduino. Так же необходимо знать, что минимальный объем записываемой\считываемой информации составляет 1 байт.
Производитель гарантирует, что срок хранения информации хранимой в такой памяти составляет 100 лет, а количество циклов записи\перезаписи составляет 100000. Эти данные относятся к командам записи и перезеписи, что касается чтения, то такая операция не ограничена каким либо количеством.
Если рассматривать МК не только семейства ардуино, то необходимо знать, что многие микроконтроллеры вообще не содержать EEPROM. Внимательно читайте описание выбранного МК, что бы потом это не было сюрпризом.
Важной характеристикой EEPROM, является время записи и чтения. Так для памяти ардуино время записи составляет примерно 3.3 миллисекунды на 1 байт. Время чтения примерно 0.4 микросекунды. Как мы видим, время записи в разы больше чем чтение. Это необходимо учитывать при организации записи, следить что бы в течении всего времени записи напряжение питания не опускалось ниже 3.3В.
ВНИМАНИЕ! Если сохраняете настройки при выключении прибора, или аварийного выключения, необходимо включить в схему питания конденсатор, емкостью достаточной для записи данных. Время записи рассчитываем согласно времени записи одного байта.
Работа с EEPROM arduino
Работа с EEPROM в ардуино сводится к тому, что бы следить за адресацией записываемых данных. По простому, нам нужно знать по какому адресу записаны наши данные, что бы потом правильно их прочитать. Как говорилось выше минимальный объем записи 1 байт. Адресация начинается с 0. Например, у нас есть 3 переменные:
Byte P1 Int P2 Byte P3 ADR P1 будет равен 0 (адрес по которому происходит запись.чтение) ADR P2 будет равен 1 (ADR P1 + 1(size(P1))) ADR P3 будет равен 3 (ADR P2 + 2(size(P2)))
ВНИМАНИЕ! Для записи\чтения в EEPROM удобно использовать структуры! Так как под одной переменной можно объединить разные объемы данных. При записи и чтении структуры, распределение информации по адресам будет выполнено автоматически. Необходимо только знать полный размер, что бы сделать смещение для записи новой переменной.
Для удобной работы с памятью EEPROM в arduino, разработана библиотека eeprom. Скачать библиотеку и ознакомиться с примерами ее использования можно по ссылке на нашем сайте.
Загрузки
Где купить
- Плата Arduino NANO
- Плата Arduino UNO
- Плата Arduino MEGA