Съдържание:

Инициализация на настройките на Arduino EEPROM: 5 стъпки
Инициализация на настройките на Arduino EEPROM: 5 стъпки

Видео: Инициализация на настройките на Arduino EEPROM: 5 стъпки

Видео: Инициализация на настройките на Arduino EEPROM: 5 стъпки
Видео: Контроллер автоматического пуска-останова с часами реального времени DS3231 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“и следващия път, когато включим Arduino, вече няма да инициализираме стойностите, а вместо това ще прочетем запазените данни в нашия масив.

Стъпка 4: Актуализиране на настройките

Актуализиране на настройките
Актуализиране на настройките

За актуализиране на стойностите можем или да използваме функцията за запис, както я имахме при инициализацията, но по -добрият начин е да използваме предоставената функция за актуализация. Това, което прави тази функция, е, че първо проверява дали стойността, която се опитваме да запазим, е същата, която вече е в EEPROM и ако е, тогава не се актуализира. По този начин той се опитва да сведе до минимум броя операции на запис, за да удължи живота на EEPROM.

Стъпка 5: Насладете се

Наслади се!
Наслади се!
Наслади се!
Наслади се!

Надявам се, че този Instructable е бил полезен за вас и че сте успели да научите нещо. Изходният код е достъпен на моята страница на GitHub и връзката е по -долу. Ако имате някакви предложения, моля, оставете ги в коментарите и не забравяйте да се абонирате за моя канал в YouTube за още подобни видеоклипове.

Препоръчано: