Оглавление:

Инициализация настроек Arduino EEPROM: 5 шагов
Инициализация настроек Arduino EEPROM: 5 шагов

Видео: Инициализация настроек Arduino EEPROM: 5 шагов

Видео: Инициализация настроек Arduino EEPROM: 5 шагов
Видео: Уроки Arduino. Работа с EEPROM памятью 2024, Июль
Anonim
Image
Image
Что такое EEPROM?
Что такое EEPROM?

Всем привет, Каждый Arduino имеет небольшую встроенную память, называемую EEPROM. Вы можете использовать это для сохранения настроек вашего проекта, где выбранные значения будут сохраняться между циклами включения питания, и они будут там в следующий раз, когда вы включите Arduino. У меня есть классный трюк, который научит вас, как можно инициализировать набор значений по умолчанию при первом запуске, так что не торопитесь, чтобы узнать, как это сделать.

Шаг 1. Что такое EEPROM?

Что такое EEPROM?
Что такое EEPROM?

EEPROM - это крошечное хранилище памяти, значения которого сохраняются даже при отключении питания платы Arduino. Он действует как крошечный жесткий диск, поэтому вы можете сохранить свои параметры для следующего включения устройства. В зависимости от типа платы Arduino у вас будет разный объем памяти для каждой, например, Uno имеет 1024 байта, Mega - 4096 байтов, а LilyPad - 512 байтов.

Важно отметить, что все EEPROM имеют ограниченное количество циклов записи. Atmel указывает ожидаемый срок службы около 100 000 циклов записи / стирания для EEPROM на Arduino. Это может показаться большим количеством операций записи, но можно легко достичь этого предела, если вы читаете и записываете в цикле. Если местоположение было записано и стерто слишком много раз, оно может стать ненадежным. Он может не возвращать правильные данные или возвращать значение из соседнего бита.

Шаг 2. Импортируйте библиотеку

Импортировать библиотеку
Импортировать библиотеку
Импортировать библиотеку
Импортировать библиотеку
Импортировать библиотеку
Импортировать библиотеку

Чтобы использовать эту память, мы сначала включаем библиотеку, предоставленную Arduino. Библиотека предоставляет два метода: чтение и запись для соответствующих действий. Функция чтения принимает адрес, с которого мы хотим читать, а функция записи принимает и адрес, и значение, которое мы хотим записать.

В нашем примере цель состоит в том, чтобы иметь готовый массив настроек при каждом запуске Arduino, поэтому мы начинаем с определения массива, который мы будем использовать для хранения, и определения адресов для каждой из настроек, которые мы хотим сохранить. В микросхеме, где доступно 1024 байта, адреса будут находиться в диапазоне от 0 до 1023.

Шаг 3. Установите флаг инициализации

Установите флаг инициализации
Установите флаг инициализации

Уловка для первоначальной установки значений по умолчанию для настроек состоит в том, чтобы использовать один из адресов в качестве индикатора, были ли настройки инициализированы. Я использовал для этого последний адрес, так как он часто не используется ни для чего другого. Функция loadSettings сначала проверит это местоположение, если хранимое там значение является символом «T», а если нет, она перейдет к настройке путем установки, записывая начальные значения для каждого из них. После этого он установит значение места, в котором мы отслеживаем инициализированные настройки, на символ «T», и в следующий раз, когда мы включим Arduino, мы больше не будем инициализировать значения, а вместо этого прочитаем сохраненные данные в наш массив.

Шаг 4. Обновление настроек

Обновление настроек
Обновление настроек

Для обновления значений мы можем использовать функцию записи, как это было при инициализации, но лучший способ - использовать предоставленную функцию обновления. Эта функция сначала проверяет, совпадает ли значение, которое мы пытаемся сохранить, со значением, уже содержащимся в EEPROM, и если оно есть, оно не обновляется. Тем самым он пытается минимизировать количество операций записи, чтобы продлить срок службы EEPROM.

Шаг 5: Наслаждайтесь

Наслаждаться!
Наслаждаться!
Наслаждаться!
Наслаждаться!

Я надеюсь, что это руководство было для вас полезным и что вам удалось кое-чему научиться. Исходный код доступен на моей странице GitHub по ссылке ниже. Если у вас есть предложения, оставьте их в комментариях и не забудьте подписаться на мой канал YouTube, чтобы увидеть больше похожих видео.

Рекомендуемые: