সুচিপত্র:

আপনার Arduino এর অন্তর্নির্মিত EEPROM: 6 টি ধাপ
আপনার Arduino এর অন্তর্নির্মিত EEPROM: 6 টি ধাপ

ভিডিও: আপনার Arduino এর অন্তর্নির্মিত EEPROM: 6 টি ধাপ

ভিডিও: আপনার Arduino এর অন্তর্নির্মিত EEPROM: 6 টি ধাপ
ভিডিও: Arduino Tutorial#35 । What is EEPROM? How To Use EEPROM In Arduino? বাংলায় আরডুইনো 2024, নভেম্বর
Anonim
আপনার Arduino এর অন্তর্নির্মিত EEPROM
আপনার Arduino এর অন্তর্নির্মিত EEPROM

এই নিবন্ধে আমরা আমাদের Arduino বোর্ডের অভ্যন্তরীণ EEPROM পরীক্ষা করতে যাচ্ছি। আপনার মধ্যে কেউ কেউ ইইপ্রোম কী বলছেন? একটি EEPROM একটি ইলেক্ট্রিক্যালি ইরেজেবল প্রোগ্রামযোগ্য পঠনযোগ্য স্মৃতি।

এটি অ-উদ্বায়ী মেমরির একটি রূপ যা বিদ্যুৎ বন্ধ হয়ে যাওয়া, বা আরডুইনো রিসেট করার পরে জিনিসগুলি মনে রাখতে পারে। এই ধরনের মেমরির সৌন্দর্য হল যে আমরা একটি স্থায়ী ভিত্তিতে স্কেচের মধ্যে উৎপন্ন তথ্য সংরক্ষণ করতে পারি।

আপনি কেন অভ্যন্তরীণ EEPROM ব্যবহার করবেন? এমন পরিস্থিতির জন্য যেখানে একটি পরিস্থিতির জন্য অনন্য এমন ডেটার জন্য আরও স্থায়ী বাড়ির প্রয়োজন হয়। উদাহরণস্বরূপ, একটি বাণিজ্যিক Arduino- ভিত্তিক প্রকল্পের অনন্য সিরিয়াল নম্বর এবং উত্পাদন তারিখ সংরক্ষণ করা-স্কেচের একটি ফাংশন একটি LCD তে সিরিয়াল নম্বর প্রদর্শন করতে পারে, অথবা একটি 'পরিষেবা স্কেচ' আপলোড করে ডেটা পড়া যেতে পারে। অথবা আপনাকে কিছু ইভেন্ট গণনা করতে হবে এবং ব্যবহারকারীকে সেগুলি পুনরায় সেট করার অনুমতি দিতে হবে না-যেমন একটি ওডোমিটার বা অপারেশন সাইকেল-কাউন্টার।

ধাপ 1: কোন ধরণের ডাটা সংরক্ষণ করা যায়?

কোন ধরণের তথ্য সংরক্ষণ করা যায়?
কোন ধরণের তথ্য সংরক্ষণ করা যায়?

যেকোনো কিছু যা ডেটার বাইট হিসাবে উপস্থাপন করা যায়। এক বাইট ডেটা আট বিট ডেটা দিয়ে গঠিত। একটি বিট হয় (মান 1) বা বন্ধ (মান 0), এবং বাইনারি আকারে সংখ্যা উপস্থাপনের জন্য নিখুঁত। অন্য কথায়, একটি বাইনারি সংখ্যা শুধুমাত্র একটি মান উপস্থাপন করতে শূন্য এবং বেশী ব্যবহার করতে পারে। এইভাবে বাইনারি "বেস -২" নামেও পরিচিত, কারণ এটি শুধুমাত্র দুটি সংখ্যা ব্যবহার করতে পারে।

কিভাবে শুধুমাত্র দুটি সংখ্যা ব্যবহার করে একটি বাইনারি সংখ্যা একটি বড় সংখ্যা উপস্থাপন করতে পারে? এটি প্রচুর এবং শূন্য ব্যবহার করে। আসুন একটি বাইনারি সংখ্যা পরীক্ষা করি, বলুন 10101010। যেহেতু এটি একটি বেস -2 সংখ্যা, তাই প্রতিটি অঙ্কে x = 0 থেকে x এর শক্তিকে 2 প্রতিনিধিত্ব করে।

ধাপ ২:

ছবি
ছবি

দেখুন কিভাবে বাইনারি সংখ্যার প্রতিটি সংখ্যা একটি বেস -10 সংখ্যা উপস্থাপন করতে পারে। সুতরাং উপরের বাইনারি সংখ্যাটি বেস -10-তে 85 প্রতিনিধিত্ব করে-মান 85 হল বেস -10 মানের সমষ্টি। আরেকটি উদাহরণ - বাইনারিতে 11111111 বেস 10 এ 255 এর সমান।

ধাপ 3:

এখন সেই বাইনারি সংখ্যার প্রতিটি সংখ্যা একটি 'বিট' মেমরি ব্যবহার করে এবং আটটি বিট একটি বাইট তৈরি করে। আমাদের Arduino বোর্ডগুলিতে মাইক্রোকন্ট্রোলারগুলির অভ্যন্তরীণ সীমাবদ্ধতার কারণে, আমরা EEPROM এ শুধুমাত্র 8-বিট সংখ্যা (এক বাইট) সংরক্ষণ করতে পারি।

এটি সংখ্যার দশমিক মানকে শূন্য এবং ২৫৫ এর মধ্যে সীমাবদ্ধ করে রাখে। সেই সংখ্যা পরিসরের সাথে আপনার ডেটা কিভাবে উপস্থাপন করা যায় তা সিদ্ধান্ত নেওয়ার দায়িত্ব আপনার। এটি আপনাকে বন্ধ করতে দেবেন না - সঠিক পদ্ধতিতে সাজানো সংখ্যাগুলি প্রায় যেকোনো কিছুকেই প্রতিনিধিত্ব করতে পারে! এখানে একটি সীমাবদ্ধতা রয়েছে - আমরা EEPROM- এ কতবার পড়তে বা লিখতে পারি। নির্মাতা এটমেলের মতে, EEPROM 100, 000 পড়া/লেখার চক্রের জন্য ভাল (ডেটা শীট দেখুন)।

ধাপ 4:

এখন আমরা আমাদের বিট এবং এবং বাইট জানি, আমাদের Arduino এর মাইক্রোকন্ট্রোলারে কত বাইট সংরক্ষণ করা যেতে পারে? মাইক্রোকন্ট্রোলারের মডেলের উপর নির্ভর করে উত্তর পরিবর্তিত হয়। উদাহরণ স্বরূপ:

  • একটি Atmel ATmega328 সহ বোর্ড, যেমন Arduino Uno, Uno SMD, Nano, Lilypad, ইত্যাদি - 1024 বাইট (1 কিলোবাইট)
  • একটি Atmel ATmega1280 বা 2560 সহ বোর্ড, যেমন Arduino মেগা সিরিজ - 4096 বাইট (4 কিলোবাইট)
  • একটি Atmel ATmega168 সহ বোর্ড, যেমন মূল Arduino Lilypad, পুরাতন Nano, Diecimila ইত্যাদি - 512 বাইট।

আপনি যদি অনিশ্চিত হন তবে Arduino হার্ডওয়্যার সূচকটি দেখুন বা আপনার বোর্ড সরবরাহকারীকে জিজ্ঞাসা করুন। আপনার মাইক্রোকন্ট্রোলারের সাথে যা পাওয়া যায় তার চেয়ে বেশি EEPROM স্টোরেজ প্রয়োজন হলে, একটি বহিরাগত I2C EEPROM ব্যবহার করার কথা বিবেচনা করুন।

এই মুহুর্তে আমরা এখন বুঝতে পারছি আমাদের Arduino এর EEPROM এ কোন ধরণের ডেটা এবং কতটুকু সংরক্ষণ করা যায়। এখন এটি কার্যকর করার সময়। আগেই আলোচনা করা হয়েছে, আমাদের ডেটার জন্য সীমিত পরিমাণে স্থান রয়েছে। নিম্নলিখিত উদাহরণগুলিতে, আমরা ETPROM স্টোরেজের 1024 বাইট সহ ATmega328 সহ একটি সাধারণ Arduino বোর্ড ব্যবহার করব।

ধাপ 5:

EEPROM ব্যবহার করার জন্য, একটি লাইব্রেরি প্রয়োজন, তাই আপনার স্কেচে নিম্নলিখিত লাইব্রেরি ব্যবহার করুন:

#অন্তর্ভুক্ত "EEPROM.h"

বাকিটা খুবই সহজ। এক টুকরো ডেটা সংরক্ষণ করতে, আমরা নিম্নলিখিত ফাংশনটি ব্যবহার করি:

EEPROM.write (a, b);

প্যারামিটার a হল EEPROM এ অবস্থান যা ডাটা খ এর পূর্ণসংখ্যা (0 ~ 255) সংরক্ষণ করে। এই উদাহরণে, আমাদের 1024 বাইট মেমরি স্টোরেজ আছে, তাই a এর মান 0 থেকে 1023 এর মধ্যে। একটি ডেটা পুনরুদ্ধার করার জন্য সমানভাবে সহজ, ব্যবহার করুন:

z = EEPROM.read (a);

যেখানে z হল EEPROM অবস্থান a থেকে তথ্য সংরক্ষণের একটি পূর্ণসংখ্যা। এখন একটি উদাহরণ দেখতে।

ধাপ 6:

ছবি
ছবি

এই স্কেচ 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 ("এলোমেলো সংখ্যা লেখা …"); জন্য (int i = 0; i <EEsize; i ++) {zz = random (255); EEPROM.write (i, zz); } Serial.println (); জন্য (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); সিরিয়াল.প্রিন্ট ("EEPROM অবস্থান:"); সিরিয়াল.প্রিন্ট (ক); সিরিয়াল.প্রিন্ট ("রয়েছে"); Serial.println (zz); বিলম্ব (25); }}

সিরিয়াল মনিটর থেকে আউটপুট প্রদর্শিত হবে, যেমন ছবিতে দেখানো হয়েছে।

সুতরাং আপনার কাছে এটি আছে, আমাদের আরডুইনো সিস্টেমগুলির সাথে ডেটা সঞ্চয় করার আরেকটি কার্যকর উপায়। যদিও সবচেয়ে উত্তেজনাপূর্ণ টিউটোরিয়াল নয়, এটি অবশ্যই একটি দরকারী।

এই পোস্টটি আপনার জন্য নিয়ে এসেছে pmdway.com - নির্মাতা এবং ইলেকট্রনিক্স উত্সাহীদের জন্য সবকিছু, বিশ্বব্যাপী বিনামূল্যে বিতরণ সহ।

প্রস্তাবিত: