
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48

Այս հոդվածում մենք պատրաստվում ենք ուսումնասիրել ներքին EEPROM- ը մեր Arduino տախտակներում: Ի՞նչ է EEPROM- ը ձեզանից ոմանք գուցե ասում են: EEPROM- ը էլեկտրականապես ջնջվող ծրագրավորվող միայն կարդալու հիշողություն է:
Դա անկայուն հիշողության մի ձև է, որը կարող է հիշել անջատված հոսանքի կամ Arduino- ի վերագործարկումից հետո: Այս տեսակի հիշողության գեղեցկությունն այն է, որ մենք կարող ենք ավելի էականորեն պահել էսքիզի շրջանակներում ստեղծված տվյալները:
Ինչու՞ օգտագործեք ներքին EEPROM- ը: Այն իրավիճակների համար, երբ տվյալներին հատուկ իրավիճակին անհրաժեշտ է ավելի մշտական տուն: Օրինակ ՝ Arduino- ի վրա հիմնված առևտրային ծրագրի եզակի սերիական համարը և արտադրության ամսաթիվը պահելը. Էսքիզի գործառույթը կարող է սերիական համարը ցուցադրել LCD- ով, կամ տվյալները կարդալ ՝ «ծառայության ուրվագիծ» վերբեռնելով: Կամ գուցե անհրաժեշտ լինի հաշվել որոշակի իրադարձություններ և թույլ չտալ օգտվողին վերականգնել դրանք, օրինակ ՝ հեռաչափ կամ աշխատանքային ցիկլերի հաշվիչ:
Քայլ 1: Տվյալների ո՞ր տեսակ կարող է պահվել:

Thingանկացած բան, որը կարող է ներկայացվել որպես տվյալների բայթ: Տվյալների մեկ բայթ կազմված է ութ բիթ տվյալներից: Բիթը կարող է լինել կամ (արժեք 1) կամ անջատված (արժեք 0), և կատարյալ են թվերը երկուական տեսքով ներկայացնելու համար: Այլ կերպ ասած, երկուական թիվը կարող է օգտագործել միայն զրո և մեկ արժեք ներկայացնելու համար: Այսպիսով, երկուականությունը հայտնի է նաև որպես «բազա -2», քանի որ այն կարող է օգտագործել միայն երկու թվանշան:
Ինչպե՞ս կարող է երկու թվանշանի օգտագործմամբ երկուական թիվը ներկայացնել ավելի մեծ թիվ: Այն օգտագործում է շատ մեկեր և զրոներ: Եկեք քննենք երկուական թիվ, ասենք 10101010. Քանի որ սա բազա -2 թիվ է, յուրաքանչյուր թվանշան ներկայացնում է 2-ը x հզորությանը ՝ x = 0-ից սկսած:
Քայլ 2:

Տեսեք, թե ինչպես է երկուական թվի յուրաքանչյուր թվանշան կարող ներկայացնել բազային -10 համարը: Այսպիսով, վերը նշված երկուական թիվը հիմքի 10-ի մեջ ներկայացնում է 85-ը: 85 արժեքը հիմք -10 արժեքների գումարն է: Մեկ այլ օրինակ `11111111 երկուական թվով հավասար է 255 -ի 10 -ի հիմքում:
Քայլ 3:
Այժմ այդ երկուական թվի յուրաքանչյուր թվանշան օգտագործում է մեկ «բիթ» հիշողություն, և ութ բիթը կազմում է բայթ: Մեր Arduino տախտակների միկրոկառավարիչների ներքին սահմանափակումների պատճառով մենք կարող ենք EEPROM- ում պահել միայն 8-բիթանոց համարներ (մեկ բայթ):
Սա սահմանափակում է համարի տասնորդական արժեքը զրոյից մինչև 255 -ի միջև ընկած ժամանակահատվածը: Այնուհետև ձեզնից է կախված, թե ինչպես կարող են ձեր տվյալները ներկայացված լինել այդ թվային տիրույթում: Թույլ մի տվեք, որ դա ձեզ վհատեցնի. Ճիշտ ձևով դասավորված թվերը կարող են գրեթե ամեն ինչ ներկայացնել: Կա մեկ սահմանափակում, որին պետք է ուշադրություն դարձնել. Քանի անգամ կարող ենք կարդալ կամ գրել EEPROM- ին: Ըստ արտադրող Atmel- ի, 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- ը, հին Nano- ն, Diecimila- ն և այլն `512 բայթ:
Եթե վստահ չեք, նայեք Arduino ապարատային ինդեքսին կամ հարցրեք ձեր տախտակի մատակարարին: Եթե Ձեզ անհրաժեշտ է ավելի շատ EEPROM պահեստ, քան այն, ինչ առկա է ձեր միկրոկառավարիչի միջոցով, հաշվի առեք արտաքին I2C EEPROM- ի օգտագործումը:
Այս պահին մենք այժմ հասկանում ենք, թե ինչպիսի տվյալներ և որքան կարող են պահվել մեր Arduino- ի EEPROM- ում: Հիմա ժամանակն է սա գործի դնել: Ինչպես արդեն նշվեց, մեր տվյալների համար կա սահմանափակ տարածք: Հետևյալ օրինակներում մենք կօգտագործենք տիպիկ Arduino տախտակ ATmega328- ով ՝ 1024 բայթ EEPROM պահեստով:
Քայլ 5:
EEPROM- ից օգտվելու համար անհրաժեշտ է գրադարան, այնպես որ ձեր ուրվագծերում օգտագործեք հետևյալ գրադարանը.
#ներառել «EEPROM.h»
Մնացածը շատ պարզ է: Տվյալների մի մասը պահելու համար մենք օգտագործում ենք հետևյալ գործառույթը.
EEPROM. գրել (a, b);
A պարամետրը EEPROM- ի դիրքն է ՝ պահպանելու տվյալների ամբողջ թիվը (0 ~ 255) b. Այս օրինակում մենք ունենք 1024 բայթ հիշողության պահպանում, ուստի a- ի արժեքը 0 -ից 1023 -ի միջև է: Տվյալների մի կտոր ստանալու համար նույնքան պարզ է ՝ օգտագործեք.
z = EEPROM.read (a);
Որտեղ z- ն ամբողջ թիվն է ՝ EEPROM դիրքի տվյալները պահելու համար a. Հիմա օրինակ տեսնելու համար:
Քայլ 6:

Այս ուրվագիծը կստեղծի 0 -ից 255 -ի միջև պատահական թվեր, կպահի դրանք EEPROM- ում, այնուհետև կվերցնի և կցուցադրի դրանք սերիական մոնիտորի վրա: EEsize փոփոխականը ձեր EEPROM չափի վերին սահմանն է, այնպես որ (օրինակ) Arduino Uno- ի համար դա կլինի 1024, կամ Mega- ի համար `4096:
// Arduino ներքին EEPROM ցուցադրում
#ներառում
int zz; int EEsize = 1024; // չափը ձեր բայթի EEPROM- ի բայթերով
դատարկ կարգավորում ()
{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println («Պատահական թվեր գրել …»); համար (int i = 0; i <EEsize; i ++) {zz = պատահական (255); EEPROM.write (i, zz); } Serial.println (); համար (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- ը `ամեն ինչ արտադրողների և էլեկտրոնիկայի սիրահարների համար` անվճար առաքում ամբողջ աշխարհով:
Խորհուրդ ենք տալիս:
Նկարի սեփականատեր ՝ ներկառուցված բարձրախոսով ՝ 7 քայլ (նկարներով)

Նկարի սեփականատեր ՝ ներկառուցված բարձրախոսով. Ահա հիանալի ծրագիր, որը պետք է ձեռնարկել հանգստյան օրերին, եթե ցանկանում եք ինքներդ ձեզ բարձրախոս դարձնել, որը կարող է պահել նկարներ/բացիկներ կամ նույնիսկ ձեր անելիքների ցուցակը: Կառուցման մասում մենք պատրաստվում ենք օգտագործել Raspberry Pi Zero W- ը ՝ որպես ծրագրի սիրտ, և
Երկաթուղային ավտոմատ հատման համակարգ ՝ օգտագործելով Arduino- ի վրա հիմնված ներկառուցված հարթակ. 9 քայլ

Երկաթուղու հատման ավտոմատ համակարգ ՝ օգտագործելով Arduino- ի վրա հիմնված ներկառուցված հարթակ. Սուրբ Christmasննդին մնաց ընդամենը մեկ շաբաթ: Բոլորը զբաղված են տոնակատարություններով և նվերներով, որոնք, ի դեպ, ավելի դժվար է դառնում մեր շուրջը գտնվող անվերջ հնարավորություններով: Ի՞նչ կասեք դասական նվերի մասին և ավելացրեք DIY հպում
Սեղանի սեղանի Pinball մեքենա ՝ օգտագործելով Evive- Arduino- ի վրա հիմնված ներկառուցված հարթակ ՝ 18 քայլ (նկարներով)

Սեղանի Pinball մեքենա ՝ օգտագործելով Evive- Arduino- ի վրա հիմնված ներկառուցված պլատֆորմ. Եվս մեկ հանգստյան օր, ևս մեկ հետաքրքիր խաղ: Եվ այս անգամ, դա ոչ այլ ոք է, քան բոլորի սիրած արկադային խաղը `Pinball! Այս նախագիծը ցույց կտա ձեզ, թե ինչպես կարելի է ձեր սեփական Pinball մեքենան հեշտությամբ պատրաստել տանը: Այն, ինչ ձեզ հարկավոր կլինի, բաղադրիչներն են ՝ արկածախնդրությունից
Arduino MEGA 2560 WiFi ներկառուցված - ESP8266: 10 քայլ

Arduino MEGA 2560 WiFi ներկառուցված - ESP8266. Այսօրվա տեքստում մենք քննարկում ենք Arduino- ն, որը ես համարում եմ չափազանց յուրահատուկ, քանի որ դրա տախտակում տեղադրված է ESP8266: Այն ESP12- ը միացված չէ տախտակին: Փոխարենը, այն ունի Espressif չիպ: Այսպիսով, տախտակի վրա դուք ունեք ներկառուցված
Սինդիկատային տվյալներ ձեր ներկառուցված սարքերից. 10 քայլ

Միացրեք ձեր ներկառուցված սարքերի տվյալները. Այս հրահանգը ցույց կտա ձեզ, թե ինչպես կարելի է տվյալների ջերմաստիճանը վերցնել USB ջերմաստիճանի անտառահատիչից և համացանցում դրանք համացանցում ՝ օգտագործելով syndicit.com: Երբ ձեր տվյալները պահվեն syndicit.com կայքում, կարող եք դրանք համացանցում կիսել որպես աղյուսակ, Google Earth- ի ուղիղ հոսք, RSS