Arduino:Примеры/EEPROMWrite

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Запись данных на EEPROM [1]

Микроконтроллер платы Arduino имеет 512 байт EEPROM – памяти, которая хранит информацию, когда Arduino находится в выключенном состоянии. Другими словами, это что-то наподобие маленького жесткого диска. Этот пример иллюстрирует, как при помощи функции EEPROM.write()записывать на EEPROM значения, считанные с 0-ого входного аналогового контакта. Эта информация останется на EEPROM, когда плата будет выключена, а впоследствии может быть извлечена оттуда при помощи другого скетча.

Необходимое оборудование

  • Плата Arduino;

Цепь

Для этого примера никакой цепи строить не нужно.

Код

/*

Запись данных на EEPROM

Записывает на EEPROM значения, считанные с 0-ого входного аналогового контакта.
Эти значения останутся на EEPROM, когда плата будет выключена, 
а затем могут быть извлечены оттуда при помощи другого скетча.

*/

#include <EEPROM.h>

// Задаем переменную, в которой указываем самый первый байт EEPROM,
// т.е. тот байт, с которого мы начнем запись:
int addr = 0;

void setup()
{
}

void loop()
{
  // Делим результат, полученный от аналогового контакта, на четыре,
  // потому что диапазон аналоговых значений составляет от 0 до 1023,
  // а байт EEPROM может хранить значение только от 0 до 255.
  int val = analogRead(0) / 4;
  
  // Записываем значение в соответствующий байт EEPROM.
  // Все записанные значения останутся там, когда плата будет выключена:
  EEPROM.write(addr, val);
  
  // Перемещаемся к следующему байту. 
  // EEPROM содержит 512 байтов (с 0 по 511), поэтому,
  // добравшись до 512-ой позиции, возвращаемся к 0-ой:
  addr = addr + 1;
  if (addr == 512)
    addr = 0;
  
  delay(100);
}

См.также

  • EEPROM.write()
  • analogRead()
  • if()
  • EEPROM Clear example
  • EEPROM Read example
  • EEPROM library reference

Внешние ссылки