Реклама
Да ли сте знали да Ардуино може да чува податке када су искључени? Није скица сачувана у флеш меморији. Говорим о промјењивим подацима у ЕЕПРОМ-у. Придружите ми се док вам покажем како да читате и пишете њему и шта он може да уради за ваше пројекте.
Ако сте нови у Ардуино-у, погледајте наш водич за почетнике Почетак рада с Ардуином: Водич за почетникеАрдуино је платформа за прототирање електронике отвореног кода која се заснива на флексибилном хардверу и софтверу који се лако користи. Намењен је уметницима, дизајнерима, хобистима, и свима који су заинтересовани за стварање интерактивних објеката или окружења. Опширније .
Шта је ЕЕПРОМ?
ЕЕПРОМ је скраћеница електрично брисљива меморија за читање само за читање. То је врста нехлапљиве меморије. Не брините ако не разумете шта било шта од тога значи. Једноставно чува податке чак и уз искључену струју (за разлику од тога РАМ Брзи и прљави водич за РАМ: Шта треба да знатеРАМ је битна компонента сваког рачунара, али може бити збуњујућа. Рашчлањујемо га на једноставан начин за разумевање. Опширније
, којој је за задржавање било каквих података потребна струја).ЕЕПРОМ је уграђен у безброј процесора, као што је поље програмабилних врата (ФПГА) који се користи у Матрик Цреатор Матрик Цреатор за Распберри Пи прегледМатрик Цреатор је швајцарски војни нож за ваш Пи, са 15 сензора, пакетом комуникационих протокола, прстеном од РГБ ЛЕД-ова, низом микрофона и још много тога! Опширније Пи ХАТ. Сви Ардуиноси имају на располагању ЕЕПРОМ, али капацитет варира од модела. Обавезно погледајте наше водич за куповину Водич за куповину Ардуино-а: Коју плочу треба да добијете?Постоји толико много врста Ардуино плоча вани, да би вам било опроштено што сте збуњени. Које бисте требали купити за свој пројекат? Помозите нам с овим водичем за куповину Ардуино-а! Опширније за више детаља о свакој табли.
Како то функционише?
ЕЕПРОМ се електрично брише и програмира помоћу Тунелирање Фовлер-Нордхеим. Не морате знати техничке детаље да бисте их могли користити. Основна претпоставка је да се електрична енергија користи за промену бинарних података (шта је бинарно Шта је бинарно? [Објашњена технологија]С обзиром на то да је бинарни систем тако апсолутно важан за постојање рачунара, чини се чудним да се никада раније нисмо бавили том темом - па бих данас помислио да ћу дати кратак преглед шта је бинарни ... Опширније ). Може се читати, брисати и поново писати електронским путем.
Срећом Ардуино Лангуаге олакшава промену података, а све док није потребна диплома рачунарских наука.
Очекивано трајање живота
Иако је ЕЕПРОМ у Ардуинуу лако користити, он има ограничен живот. ЕЕПРОМ је предвиђен за руковање 100 000 циклуса читања / брисања. То значи да можете 100.000 пута уписати и избрисати податке пре него што ЕЕПРОМ постане нестабилан. У стварности, Атмел (произвођачи Ардуино „чипа“) полуводичи могу да обрађују већи или мањи број циклуса, зависно од толеранција сваког процесора.
Једном када се локација напише и избрише превише пута, она може почети да постаје непоуздана. Можда неће вратити исправне податке или вратити вредност из суседног бита.
Ово може звучати као пуно писања, али може се лако достићи ова граница ако се чита и пише програмско (у а петља, на пример). Читање података не деградира силицијум, само писање ради. Можете читати податке са ЕЕПРОМ-а колико год желите без страха!
Важно је имати на уму да се ово ограничење односи на сваку меморијску локацију. Ваш Ардуино може имати 1.000 или више меморијских локација доступних у ЕЕПРОМ-у, тако да ако превише пута пишете на једну локацију, то утиче само на ту локацију, а не на било коју другу. Касније ћу расправљати изравнавање хабања, што може смањити хабање ЕЕПРОМ-а равномерном дистрибуцијом података - нешто слично ССД дискови Како процијенити преостали животни вијек вашег ССД-аСви ССД дискови имају ограничен животни век због циклуса писања (иако је овај век дуже него што можда мислите). Ево како можете проценити колико сте близу крају. Опширније искористи.
За шта је корисно?
ЕЕПРОМ је невероватно користан за ваше Ардуино пројекте. Будући да памти податке чак и када се искључи струја, можете сачувати стање Ардуино. Можда бисте могли да направите ласер туррет Пев Пев! Како изградити ласерску куполу с ардуиномДа ли ти је досадно? Могло би се изградити и ласерска купола. Опширније која се сећа свог положаја или колико је преостало „стрељиво“. Можеш ти то користити контролишите своје уређаје Контролни уређаји компаније Ардуино: почетак кућне аутоматизацијеПрошли пут сам вам показао неколико начина да свој Ардуино пројекат говорите под контролом преко СириПроки-а, ОС Кс-а уграђени предмети који се могу говорити и неки скрипт аутоматизма, или чак и наменски хардвер за препознавање гласа чип. Ја ... Опширније , и забележите колико се пута ваш апарат активирао.
ЕЕПРОМ је најприкладнији за ствари попут подешавања или високих резултата. Ако желите да редовно пишете сложене податке, размислите етхернет штит Дајте свом пројекту Ардуино властити мини-веб сервер, са Етхернет штитомПре неко време, показао сам вам како да подесите систем за контролу интернета за ваш Ардуино - али морао је да буде повезан са рачунаром преко УСБ-а да би одржао интернет везу ... Опширније (са уграђеним СД утором) или а Распберри Пи Распберри Пи: Незванични водичБез обзира да ли сте тренутни власник Пи-а који жели да сазна више или потенцијални власник овог уређаја величине картице, ово није водич који желите да пропустите. Опширније .
Читају и пишу
Сад кад је теорија одмалена, погледајмо како читати и уписивати неке податке! Прво укључите библиотеку (ово долази са Ардуино ИДЕ):
#инцлуде
Сада напишите неке податке:
ЕЕПРОМ.врите (0, 12);
Овде пише број 12 до локације ЕЕПРОМ 0. Свако писање траје 3,3 милисекунде (Госпођа, 1000 мс = 1 секунда). Примјетите како не можете писати писма (цхар), дозвољени су само бројеви од нула до 255. Због тога је ЕЕПРОМ идеалан за подешавања или високе резултате, али није толико добар за имена или речи играча. Текст је могуће похранити овом методом (свако слово абецеде можете пресликати на број), али требате имати више меморијских локација - по једну локацију за свако слово.
Ево како читате те податке:
ЕЕПРОМ.реад (0);
Нула је адреса о којој сте раније писали. Ако претходно нисте писали на адресу, вратиће максималну вредност (255).
На располагању су неке мало корисније методе. Реците да желите да похраните децимално место или низ:
ЕЕПРОМ.пут (2, "12.67");
Ово записује податке на више локација - нешто што би било лако написати сами, али ипак корисно. И даље ћете морати да пратите на колико локација је ово написано, да случајно не преписујете своје податке! Морате да користите добити метода за поновно прикупљање ових података:
флоат ф = 0,00ф; ЕЕПРОМ.гет (2, ф);
Вриједност гет се похрањује у флоат ф променљива. Примјетите како се то иницијализира 0.00ф као вредност. Тхе ф даје компајлеру да зна да можда желите да похраните велики број у ову променљиву, па поставља неке додатне конфигурације током компилације.
Тхе ЕЕПРОМ документација на Веб локација Ардуино има пуно више примера.
Ношење изравнавање
Изравнавање хабања је техника која се користи да се смањи трошење и продужи век ЕЕПРОМ-а. Ако радите само на малом пројекту, можда нећете морати да се бринете због тога.
Најједноставнија ствар коју можете учинити да сачувате живот ЕЕПРОМ-а јесте да ограничите своје записе на одређено место. То можете учинити тако што ћете прво прочитати адресу, а ако је вредност коју желите написати већ је присутна, нема потребе да је поново пишете (запамтите, читање података не наноси штету). Ево како бисте то урадили:
инт сафеВрите (инт подаци, адреса) {иф (ЕЕПРОМ.реад (адреса)! = подаци) {ЕЕПРОМ.врите (адреса, подаци); } }
То је прилично једноставан битни код, али ради само за целе бројеве! Уместо да измислите точак, користите функцију уграђену у Ардуино ЕЕПРОМ библиотеку:
Ажурирање ЕЕПРОМ-а (адреса, вал);
Ова метода има потпуно исти потпис као и писати метода, иако може драстично смањити број потребних писања!
Ако требате написати пуно података и забринути сте због трошења силицијума, можете пратити колико пишете, мада то користи више података. Ево грубе примене у псеудоцоде:
вар адреса = 0. вар вритеЦоунт = 0 ако (вритеЦоунт> 75,000) вритеЦоунт = 0 адреса + = 1 ЕЕПРОМ.врите (адреса, подаци)
Требат ћете да похраните адресу и аццоунтЦоунт у ЕЕПРОМ (а треба да се вритеЦоунт подели на локације адреса). Већину времена овај ниво заштите неће бити потребан. Ардуинови су такође толико јефтини, па ће вам бити лакше купити резервну копију!
Сада бисте требали знати довољно да бисте направили неке феноменалне пројекте. Јавите нам ако направите нешто цоол! Можете ли препознати све уређаје на сликама? Оставите нам коментар испод!
Јое је дипломирани професор информатике са Универзитета у Линцолну у Великој Британији. Он је професионални програмер софтвера, а када не лети дроновима или пише музику, често га могу наћи како снимају фотографије или снимају видео записе.