Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/EEPROMWrite

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

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

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


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

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

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

  • Плата Arduino;

Цепь

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

Arduino bb.png

Код

  1. /*
  2.  
  3. Запись данных на EEPROM
  4.  
  5. Записывает на EEPROM значения, считанные с 0-ого входного аналогового контакта.
  6. Эти значения останутся на EEPROM, когда плата будет выключена,
  7. а затем могут быть извлечены оттуда при помощи другого скетча.
  8.  
  9. */
  10.  
  11. #include <EEPROM.h>
  12.  
  13. // Задаем переменную, в которой указываем самый первый байт EEPROM,
  14. // т.е. тот байт, с которого мы начнем запись:
  15. int addr = 0;
  16.  
  17. void setup()
  18. {
  19. }
  20.  
  21. void loop()
  22. {
  23.   // Делим результат, полученный от аналогового контакта, на четыре,
  24.   // потому что диапазон аналоговых значений составляет от 0 до 1023,
  25.   // а байт EEPROM может хранить значение только от 0 до 255.
  26.   int val = analogRead(0) / 4;
  27.  
  28.   // Записываем значение в соответствующий байт EEPROM.
  29.   // Все записанные значения останутся там, когда плата будет выключена:
  30.   EEPROM.write(addr, val);
  31.  
  32.   // Перемещаемся к следующему байту.
  33.   // EEPROM содержит 512 байтов (с 0 по 511), поэтому,
  34.   // добравшись до 512-ой позиции, возвращаемся к 0-ой:
  35.   addr = addr + 1;
  36.   if (addr == 512)
  37.     addr = 0;
  38.  
  39.   delay(100);
  40. }

См.также

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

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

  1. Arduino - EEPROM Write