| Ваш IP: 54.91.203.233 | Online(22) - гости: 15, боты: 7 | Загрузка сервера: 1.97 ::::::::::::

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);
}

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

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

  • УМЗЧ 12ВТ на MOSFET транзисторах

    УМЗЧ 12ВТ на MOSFET транзисторах

    На рисунке показана схема простого но высококачественного усилителя выходной каскад которого выполнен на MOSFET транзисторах  2SK135 и  2SJ50. Усилитель напряжения выполнен на ОУ NE5534. NE5534 — высокопроизводительный операционный усилитель, сочетающий превосходные характеристики постоянного и переменного тока. Обладает очень низким уровень шума, имеет высокую производительность, высокое единичное усиление, низкий уровень искажений и высокий …Подробнее...
  • Частотомер 1МГц на PIC16F628A

    Частотомер 1МГц на PIC16F628A

    На рисунке показана схема простого частотомера, который состоит из микроконтроллера PIC16F628A и трех семисегментных индикаторов. Частотомер способен отображать частоту в кГц от 1 до 999. Время счета 4 мс, время повторения счета 1 секунда. Все транзисторы в схеме BC337 или их аналог. Ток потребления схемы 45мА при напряжении 5В. Все резисторы подключенные …Подробнее...
  • Параметры, типовой режим и цоколевки электровакуумных приборов (преобразовательные лампы и электронно-лучевые индикаторы настройки)

    Литература РА1998_08Подробнее...
  • Усилитель для наушников

    Усилитель для наушников

    На рисунке показана простая, но высококачественная схема усилителя для наушников.  Выходная мощность усилителя 0,5 Вт на нагрузке 32 Ом. Усилитель обладает очень низким КНИ, ток потребления схемы не превышает 100 мА. Выходные транзисторы должны быть установлены на небольшие теплоотводы. Источник — http://www.redcircuits.com/Page185.htmПодробнее...
  • Усилитель мощности 50 Вт (K1058 + J162)

    Усилитель мощности 50 Вт (K1058 + J162)

    50W Усилитель мощности с выходным каскадом на полевых транзисторах K1058 + J162 достаточно прост. В усилителе используется двух полярное питания +/-35В на 2А. Полевые транзисторы K1058 и J162 должны быть установлены на радиаторе.     Характеристики усилителя мощности:   Выходная мощность на частоте 1 кГц 50Вт на 8 Ом нагрузке и 88Вт …Подробнее...