![Сіздің Arduino кіріктірілген EEPROM: 6 қадам Сіздің Arduino кіріктірілген EEPROM: 6 қадам](https://i.howwhatproduce.com/images/003/image-6441-23-j.webp)
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51
![Сіздің Arduino кіріктірілген EEPROM Сіздің Arduino кіріктірілген EEPROM](https://i.howwhatproduce.com/images/003/image-6441-24-j.webp)
Бұл мақалада біз Arduino тақталарындағы ішкі EEPROM -ды қарастырамыз. Сіздердің кейбіреулеріңіз EEPROM деген не? EEPROM-бұл электрмен өшіруге болатын бағдарламаланатын оқуға арналған жады.
Бұл энергияны өшіргенде немесе Arduino қалпына келтірілгеннен кейін есте сақтай алатын тұрақты емес жадтың бір түрі. Мұндай жадтың ерекшелігі - біз эскизде жасалған деректерді тұрақты түрде сақтай аламыз.
Неліктен ішкі EEPROM қолданасыз? Жағдайға тән деректерге тұрақты үй қажет болған жағдайларда. Мысалы, Arduino-ға негізделген коммерциялық жобаның бірегей сериялық нөмірі мен өндіріс күнін сақтау-эскиздің функциясы сериялық нөмірді СКД-де көрсете алады немесе деректерді «қызмет нобайын» жүктеу арқылы оқуға болады. Немесе белгілі бір оқиғаларды санап, пайдаланушыға оларды қалпына келтіруге рұқсат бермеу қажет болуы мүмкін-мысалы, одометр немесе жұмыс циклінің есептегіші.
1 -қадам: Деректердің қандай түрін сақтауға болады?
![Деректердің қандай түрін сақтауға болады? Деректердің қандай түрін сақтауға болады?](https://i.howwhatproduce.com/images/003/image-6441-25-j.webp)
Деректердің байттары ретінде ұсынылуы мүмкін кез келген нәрсе. Бір байт мәліметтер сегіз бит мәліметтерден тұрады. Бит қосулы (мән 1) немесе өшірулі (мән 0) болуы мүмкін және сандарды екілік түрде көрсету үшін өте қолайлы. Басқаша айтқанда, екілік сан мәнді білдіру үшін тек нөл мен бірді ғана қолдана алады. Сонымен, екілік «базалық-2 ″ деп те аталады, себебі ол тек екі цифрды қолдана алады.
Екілік сан тек екі цифрды қолдану арқылы үлкен санды қалай көрсете алады? Ол үшін нөлдер мен нөлдер көп қолданылады. Екілік санды қарастырайық, айталық 10101010. Бұл базалық-2 сан болғандықтан, әрбір цифр x-тен 0-ге дейін 2-ге тең.
2 -қадам:
![Кескін Кескін](https://i.howwhatproduce.com/images/003/image-6441-26-j.webp)
Екілік санның әрбір цифры қалай 10-санды көрсете алатынын қараңыз. Сонымен, жоғарыдағы екілік сан 10-да 85-ті білдіреді-85 мәні-10 мәндерінің қосындысы. Тағы бір мысал - екілік жүйеде 11111111 10 базасында 255 -ке тең.
3 -қадам:
Енді екілік санның әрбір цифрында бір «бит» жады пайдаланылады, ал сегіз бит байтты құрайды. Біздің Arduino тақталарындағы микроконтроллерлердің ішкі шектеулеріне байланысты біз EEPROM-де тек 8 биттік сандарды (бір байтты) сақтай аламыз.
Бұл санның ондық мәнін нөлден 255 -ке дейін шектейді. Деректерді сол сандар диапазонында қалай көрсету керектігін өзіңіз шешесіз. Бұған жол бермеңіз - дұрыс орналастырылған сандар кез келген нәрсені білдіруі мүмкін! Назар аударуға болатын бір шектеу бар - біз EEPROM -ге қанша рет оқи аламыз және жаза аламыз. Атмель өндірушісінің айтуынша, EEPROM 100 000 оқу/жазу циклі үшін жақсы (деректер парағын қараңыз).
4 -қадам:
Енді біз биттер мен байттарды білеміз, біздің Arduino микроконтроллерінде қанша байтты сақтауға болады? Жауап микроконтроллер моделіне байланысты өзгереді. Мысалға:
- Atmel ATmega328 бар тақталар, мысалы Arduino Uno, Uno SMD, Nano, Lilypad және т.б. - 1024 байт (1 килобайт)
- Atmel ATmega1280 немесе 2560 бар тақталар, мысалы Arduino Mega сериясы - 4096 байт (4 килобайт)
- Atmel ATmega168 бар тақталар, мысалы, түпнұсқа Arduino Lilypad, ескі Нано, Диецимила және т.б. - 512 байт.
Егер сіз сенімді болмасаңыз, Arduino аппараттық құралдарының индексін қараңыз немесе тақта жеткізушісінен сұраңыз. Егер сізге микроконтроллерге қарағанда EEPROM жады қажет болса, сыртқы I2C EEPROM қолдануды қарастырыңыз.
Осы сәтте біз Arduino EEPROM -да қандай деректер мен қанша көлемде сақтауға болатынын түсінеміз. Енді осыны іске қосатын кез келді. Жоғарыда айтылғандай, біздің деректер үшін бос орын бар. Келесі мысалдарда 1024 байт EEPROM жады бар ATmega328 бар әдеттегі Arduino тақтасын қолданамыз.
5 -қадам:
EEPROM пайдалану үшін кітапхана қажет, сондықтан эскиздерде келесі кітапхананы пайдаланыңыз:
#«EEPROM.h» қосыңыз
Қалғаны өте қарапайым. Деректерді сақтау үшін келесі функцияны қолданамыз:
EEPROM.write (a, b);
A параметрі - b мәліметтерінің бүтін санын (0 ~ 255) сақтау үшін EEPROM ішіндегі орны. Бұл мысалда бізде 1024 байт жады бар, сондықтан а мәні 0 -ден 1023 -ке дейін болады. Деректерді алу үшін бірдей қарапайым:
z = EEPROM.read (a);
Мұндағы z - EEPROM позициясының деректерін сақтайтын бүтін сан а. Енді мысалды көру үшін.
6 -қадам:
![Кескін Кескін](https://i.howwhatproduce.com/images/003/image-6441-27-j.webp)
Бұл эскиз 0 мен 255 аралығындағы кездейсоқ сандарды жасайды, оларды EEPROM -да сақтайды, содан кейін шығарып алып, сериялық мониторда көрсетеді. EEsize айнымалысы сіздің EEPROM өлшемінің жоғарғы шегі болып табылады, сондықтан (мысалы) Arduino Uno үшін бұл 1024 немесе мега үшін 4096 болады.
// Arduino ішкі EEPROM демонстрациясы
#қосу
int zz; int EEsize = 1024; // өлшемі тақтаның EEPROM байтында
жарамсыз орнату ()
{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println («Кездейсоқ сандарды жазу …»); for (int i = 0; i <EEsize; i ++) {zz = кездейсоқ (255); EEPROM.write (i, zz); } Serial.println (); for (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print («EEPROM позициясы:»); Serial.print (a); Serial.print («құрамында»); Serial.println (zz); кешіктіру (25); }}
Сериялық монитордан шығыс суретте көрсетілгендей пайда болады.
Біздің Arduino жүйесінде деректерді сақтаудың тағы бір пайдалы әдісі бар. Бұл ең қызықты нұсқаулық болмаса да, бұл пайдалы.
Бұл хабарламаны pmdway.com сізге жеткізді - бұл өндірушілер мен электроникаға әуесқойлар үшін, бүкіл әлем бойынша ақысыз жеткізу.
Ұсынылған:
Nest Hello - Ұлыбританияның кіріктірілген трансформаторы бар есік қоңырауы (220-240В айнымалы ток - 16В айнымалы ток): 7 қадам (суреттермен)
![Nest Hello - Ұлыбританияның кіріктірілген трансформаторы бар есік қоңырауы (220-240В айнымалы ток - 16В айнымалы ток): 7 қадам (суреттермен) Nest Hello - Ұлыбританияның кіріктірілген трансформаторы бар есік қоңырауы (220-240В айнымалы ток - 16В айнымалы ток): 7 қадам (суреттермен)](https://i.howwhatproduce.com/images/001/image-339-j.webp)
Nest Hello - Ұлыбритания интеграцияланған трансформаторы бар есік қоңырауы (220-240В айнымалы ток - 16В): Мен үйде Nest Hello есік қоңырауын, 16V -24V айнымалы токта жұмыс істейтін гизмо орнатқым келді (ЕСКЕРТУ: бағдарламалық қамтамасыз етуді жаңарту 2019 жылы Еуропаны өзгертті) 12V-24V айнымалы токқа дейінгі диапазон). Ұлыбританияда кіріктірілген трансформаторлары бар стандартты есік қоңырауы
Кіріктірілген шкаф: 4 қадам
![Кіріктірілген шкаф: 4 қадам Кіріктірілген шкаф: 4 қадам](https://i.howwhatproduce.com/images/002/image-3452-4-j.webp)
Кіріктірілген шкаф: Бақытты аурада заттарды іште ұстау - бұл үлкен толқудың шашуы сияқты. 'Lock of Lock' атауы - бұл менің күнделікті мақалаларымның бір бөлігі, ол табиғатына байланысты барлық жерде кездеседі, бірақ ол не істейді? Қарапайым
Arduino негізіндегі кіріктірілген платформаны қолданатын автоматты теміржол өткелі: 9 қадам
![Arduino негізіндегі кіріктірілген платформаны қолданатын автоматты теміржол өткелі: 9 қадам Arduino негізіндегі кіріктірілген платформаны қолданатын автоматты теміржол өткелі: 9 қадам](https://i.howwhatproduce.com/images/002/image-5389-30-j.webp)
Arduino негізіндегі кіріктірілген платформаны қолданатын автоматты теміржол өткелі: Рождествоға бір апта қалды! Барлығы мерекелермен және сыйлықтармен айналысады, бұл, айтпақшы, айналамыздағы шексіз мүмкіндіктерге қол жеткізуді қиындатады. Классикалық сыйлықпен жүріп, DIY -ге әсер етсеңіз
Evive- Arduino кіріктірілген платформасын қолдана отырып, ұпай санауға арналған ақылды баскетбол аркада ойыны: 13 қадам
![Evive- Arduino кіріктірілген платформасын қолдана отырып, ұпай санауға арналған ақылды баскетбол аркада ойыны: 13 қадам Evive- Arduino кіріктірілген платформасын қолдана отырып, ұпай санауға арналған ақылды баскетбол аркада ойыны: 13 қадам](https://i.howwhatproduce.com/images/003/image-8033-17-j.webp)
Evive- Arduino кіріктірілген платформасын қолдана отырып, ұпай санауға арналған ақылды баскетбол аркадты ойыны: Барлық ойындардың ішіндегі ең қызықтысы- аркадалық ойындар. Сонымен, біз неге оны үйде жасамасқа деп ойладық! Міне, біз осы уақытқа дейін ойнаған ең қызықты DIY ойыны - DIY аркада баскетбол ойыны! Бұл ғана емес
Evive- Arduino негізіндегі кіріктірілген плаформды қолданатын үстел үстіндегі пинбол: 18 қадам (суреттермен)
![Evive- Arduino негізіндегі кіріктірілген плаформды қолданатын үстел үстіндегі пинбол: 18 қадам (суреттермен) Evive- Arduino негізіндегі кіріктірілген плаформды қолданатын үстел үстіндегі пинбол: 18 қадам (суреттермен)](https://i.howwhatproduce.com/images/004/image-9066-11-j.webp)
Evive- Arduino негізіндегі кіріктірілген плаформды қолданатын үстел үстіндегі пинбол машинасы: Тағы бір демалыс, тағы бір қызықты ойын! Бұл жолы бұл бәрінің сүйікті аркада ойыны - Pinball! Бұл жоба сізге өзіңіздің Pinball машинаңызды үйде қалай оңай жасауға болатынын көрсетеді. Сізге тек эввейстің компоненттері қажет