| Ваш IP: 54.226.23.160 | Online(50) - гости: 20, боты: 28 | Загрузка сервера: 1.69 ::::::::::::

EEPROM — работа с энергонезависимой памятью (Arduino)

Arduino UNO и NANO содержат 1024 байт EEPROM – энергонезависимой памяти, в которой можно хранить данные, которые будут доступны после отключения питания.

В Arduino IDE по умолчанию уже имеется библиотека EEPROM которая позволяет проводить операции с энергонезависимой памятью.

Память EEPROM обладает гарантированным жизненным циклом 100 000 операций записи/стирания. Время затраченное на одну операцию записи в EEPROM составляет примерно 3,3 мс.

Чтение EEPROM

EEPROM.read(address)

raed (byte) — содержимое ячейки памяти, address — порядковый номер ячейки памяти.

Если ячейка памяти ни когда не перезаписывалась, то ее чтение вернет значение 255. Номер ячейки памяти начинается с 0 и заканчивается 1023 (int).

В следующем примере произведем поочередное чтение всех ячеек памяти:

#include <EEPROM.h>

int address;// начальный адрес памяти EEPROM
byte value; // значение EEPROM

void setup()
{
  Serial.begin(9600);
}
void loop()
{
  value = EEPROM.read(address); // считываем значение по текущему адресу EEPROM
  Serial.print(address);
  Serial.print(" = ");
  Serial.println(value);
  address++ ;
  if (address==1024){address=0;}
  delay(100);
}

 

Запись EEPROM

EEPROM.write(address, value)

Функция записывает один байт со значением value в EEPROM по адресу address.
address — адрес ячейки для записи (int), начинается с 0, value — значение записываемого байта (byte), от 0 до 255.

В следующем примере запишем значение 200 по адресу 0 и прочитаем ячейку памяти с адресом 0:

#include <EEPROM.h>

byte value; // значение EEPROM

void setup()
{
  Serial.begin(9600);
  EEPROM.write(0,200);// запишем значение 200 в ячейку памяти под номером 0
}
void loop()
{
  value = EEPROM.read(0); // считываем значение по текущему адресу EEPROM
  Serial.print(0);
  Serial.print(" = ");
  Serial.println(value);
  
  delay(1000);
}

Обновление EEPROM

EEPROM.update(address, value)

Функции update() аналогична write() и является предпочтительной в использовании, так как значение записывается только тогда, когда оно отличается от уже записанного. Данная функция позволяет продлить жизнь EEPROM.

Обновим значение ячейки под номером 0:

#include <EEPROM.h>

byte value; // значение EEPROM

void setup()
{
  Serial.begin(9600);
  EEPROM.update(0,100);// обновим содержимое ячейки памяти под номером 0
}
void loop()
{
  value = EEPROM.read(0); // считываем значение по текущему адресу EEPROM
  Serial.print(0);
  Serial.print(" = ");
  Serial.println(value);
  
  delay(1000);
}

Добавить комментарий

Случайные статьи

  • Микро-сигнализация

    Схема микро-сигнализации устанавливается в маленькую коробочку. Небольшой магнит расположен близко к геркону. При разделении магнита и геркона срабатывает сигнализация. Микро-сигнализацию можно использовать для охраны двери, окна, сумки и других вещей. При срабатывании сигнализации динамик издает громкий звуковой сигнал. Схема сигнализации представляет собой генератор, питается уст-во от батарей 3В (2*1,5В). Примечания: …Подробнее...
  • Параметры отечественных биполярных транзисторов

  • Эксплуатация и ремонт компактных люминесцентных ламп

    Сокращения: КЛЛ — компактная люминесцентная лампа ТЛЛ — трубчатая люминесцентная лампа ЛН — лампа накаливания Принцип действия КЛЛ заключается в подаче на 2-а электрода покрытых барием или окисью бария, напряжения, в результате чего происходит возбуждение(ионизация) паров смеси аргона и ртути. В результате ионизации возникает низкотемпературная плазма внутри лампы. Пары ртути …Подробнее...
  • Узел настройки УКВ-ЧМ приемника

    Узел настройки УКВ_ЧМ приемника представляет собой синтезатор напряжения для электронной настройки УКВ_ЧМ приемника и как дополнительное уст-во — электронную линейную шкалу напряжения для контроля напряжения подаваемого на варикапы приемника. Напряжение настройки приемника устанавливается при помощи полевого транзистора VT1, в его затворной цепи включен С1, при нажатии S1 или S2 С1 …Подробнее...
  • Простой приемник на К140УД1А

    Для начинающих радиолюбителей предлагаю собрать схему простого приемника принимающего одну станцию в диапазоне средних волн. ОУ обладает высоким коэффициентом усиления (от 600 до 4500). В данной схема ОУ выполняет сразу несколько функций: усилителя радиосигнала, детектора и усилителя звуковой частоты. Колебательный контур L1 настроенный на одну станцию, выделенные на нем колебания …Подробнее...