আরডিনো বোর্ডগুলির বিভিন্ন ধরণের স্মৃতি রয়েছে। প্রথমত, এটি স্ট্যাটিক র্যাম (এলোমেলো অ্যাক্সেস মেমরি), যা প্রোগ্রামের সঞ্চালনের সময় ভেরিয়েবলগুলি সঞ্চয় করতে ব্যবহৃত হয়। দ্বিতীয়ত, এটি ফ্ল্যাশ মেমরি যা আপনার লেখা স্কেচগুলি সংরক্ষণ করে। এবং তৃতীয়ত, এটি একটি EEPROM যা স্থায়ীভাবে তথ্য সঞ্চয় করতে ব্যবহৃত হতে পারে। প্রথম ধরণের স্মৃতিটি অস্থির, এটি আরডুইনোকে রিবুট করার পরে সমস্ত তথ্য হারাতে থাকে। পাওয়ারটি বন্ধ হয়ে যাওয়ার পরেও নতুন দুটি দিয়ে ওভাররাইট না করা পর্যন্ত দ্বিতীয় দুটি ধরণের মেমরি স্টোর তথ্য information শেষ প্রকারের মেমরি - EEPROM - ডেটা লেখার, সংরক্ষণ এবং প্রয়োজনীয় হিসাবে পড়ার অনুমতি দেয়। আমরা এখন এই স্মৃতি বিবেচনা করব।
প্রয়োজনীয়
- - আরডুইনো;
- - কম্পিউটার।
নির্দেশনা
ধাপ 1
EEPROM এর অর্থ ইলেকট্রিক্যাল ইরেজযোগ্য প্রোগ্রামেবল রিড-ওনলি মেমোরি, অর্থাৎ বৈদ্যুতিকভাবে ক্ষয়যোগ্য পঠনযোগ্য মেমরি। এই স্মৃতিতে থাকা ডেটা পাওয়ার বন্ধ হয়ে যাওয়ার পরে দশ বছর ধরে সংরক্ষণ করা যেতে পারে। পুনর্লিখনের চক্রের সংখ্যা কয়েক মিলিয়ন বারের ক্রম অনুসারে।
আরডুইনোতে EEPROM মেমরির পরিমাণ বরং সীমিত: এটিএমগা 328 মাইক্রোকন্ট্রোলারের উপর ভিত্তি করে বোর্ডগুলির জন্য (উদাহরণস্বরূপ, আরডুইনো ইউএনও এবং ন্যানো) মেমরির পরিমাণ 1 কেবি, এটিমেগা 168 এবং এটিমেগ 8 বোর্ডের জন্য - 512 বাইট, এটিমেগা 2560 এবং এটিমেগা 1280- এর জন্য 4 কেবি।
ধাপ ২
আরডুইনোর EEPROM এর সাথে কাজ করার জন্য একটি বিশেষ গ্রন্থাগার লেখা হয়েছে, যা ডিফল্টরূপে আরডুইনো আইডিইতে অন্তর্ভুক্ত রয়েছে। লাইব্রেরিতে নিম্নলিখিত বৈশিষ্ট্য রয়েছে।
পড়ুন (ঠিকানা) - EEPROM থেকে 1 বাইট পড়ে; ঠিকানা - যে ঠিকানা থেকে ডেটা পড়া হয় (ঠিকানাটি 0 থেকে শুরু করা হয়);
লিখুন (ঠিকানা, মান) - ঠিকানা ঠিকানায় মেমোরিতে মান মান (1 বাইট, 0 থেকে 255 পর্যন্ত সংখ্যা) লিখেছেন;
আপডেট (ঠিকানা, মান) - ঠিকানার পুরানো সামগ্রী যদি নতুনের থেকে আলাদা হয় তবে ঠিকানায় মানটি প্রতিস্থাপন করে;
get (ঠিকানা, ডেটা) - ঠিকানায় মেমরি থেকে নির্দিষ্ট ধরণের ডেটা পড়ে;
পুট (ঠিকানা, ডেটা) - নির্দিষ্ট ধরণের ডেটা লিখে ঠিকানায় মেমরিতে লিখে দেয়;
ইপ্রোম [ঠিকানা] - আপনাকে মেমরি থেকে ডেটা লিখতে এবং পড়তে অ্যারে হিসাবে "EEPROM" সনাক্তকারী ব্যবহার করতে দেয়।
স্কেচে লাইব্রেরিটি ব্যবহার করতে, আমরা এটি # অন্তর্ভুক্ত EEPROM.h নির্দেশিকা সহ অন্তর্ভুক্ত করি।
ধাপ 3
EEPROM এ দুটি পূর্ণসংখ্যা লিখি এবং তারপরে সেগুলি EEPROM থেকে পড়ি এবং সিরিয়াল বন্দরে আউটপুট করি।
0 থেকে 255 পর্যন্ত সংখ্যা নিয়ে কোনও সমস্যা নেই, তারা মেমরির মাত্র 1 বাইট দখল করে এবং EEPROM.writ () ফাংশনটি ব্যবহার করে পছন্দসই স্থানে লিখিত হয়।
যদি সংখ্যাটি 255 এর বেশি হয় তবে অপারেটরগুলি হাইবাইট () এবং লোবাইট () ব্যবহার করে এটি বাইট দ্বারা ভাগ করতে হবে এবং প্রতিটি বাইট অবশ্যই তার নিজের ঘরে লিখতে হবে। এই ক্ষেত্রে সর্বাধিক সংখ্যা 65536 (বা 2 ^ 16)।
দেখুন, সেল 0-এ সিরিয়াল পোর্ট মনিটরটি কেবল 255 এর চেয়ে কম সংখ্যক সংখ্যা প্রদর্শন করে 1 কোষ 1 এবং 2 এ, একটি বড় সংখ্যা 789 সংরক্ষণ করা হয় this এই ক্ষেত্রে, সেল 1 ওভারফ্লো ফ্যাক্টর 3 সংরক্ষণ করে এবং সেল 2 অনুপস্থিত 21 নম্বর সংরক্ষণ করে (অর্থাত্ 789 = 3 * 256 + 21)। একটি বৃহত সংখ্যককে পুনরায় সংশ্লেষ করতে, বাইটগুলিতে পার্স করা হয়েছে, সেখানে শব্দটি () ফাংশন রয়েছে: ইন্ট ভল = শব্দ (হাই, লো), যেখানে হাই এবং লো উচ্চ এবং নিম্ন বাইটগুলির মান।
অন্য কোনও কোষে যা আমরা কখনই লিখে রাখিনি, 255 নম্বর সঞ্চিত রয়েছে।
পদক্ষেপ 4
ভাসমান পয়েন্ট সংখ্যা এবং স্ট্রিং লিখতে, EEPROM.put () পদ্ধতিটি ব্যবহার করুন এবং পড়তে, EEPROM.get () ব্যবহার করুন।
সেটআপ () পদ্ধতিতে আমরা প্রথমে ভাসমান পয়েন্ট নম্বর লিখি। তারপরে আমরা ভাসমান ধরণের যে মেমরি কোষটি দখল করে তার সংখ্যা দ্বারা সরানো এবং 20 কোষের ক্ষমতা সহ একটি চর স্ট্রিং লিখি।
লুপ () পদ্ধতিতে আমরা সমস্ত মেমরি কোষগুলি পড়ব এবং সেগুলি প্রথমে "ফ্লোট" টাইপ হিসাবে ডিক্রিপ্ট করার চেষ্টা করব এবং তারপরে "চর" টাইপ হিসাবে এবং ফলাফলটি সিরিয়াল বন্দরে আউটপুট করব।
আপনি দেখতে পারেন যে 0 থেকে 3 এর মধ্যে ঘরগুলির মানটি একটি ভাসমান পয়েন্ট সংখ্যা হিসাবে সঠিকভাবে সংজ্ঞায়িত হয়েছিল এবং 4 র্থ থেকে শুরু করে - একটি স্ট্রিং হিসাবে।
ফলাফল মান ovf (ওভারফ্লো) এবং নান (একটি সংখ্যা নয়) নির্দেশ করে যে সংখ্যাটি ভাসমান পয়েন্ট সংখ্যায় সঠিকভাবে রূপান্তর করা যায় না। কোন মেমরি কোষগুলি কী ধরণের ডেটা দখল করে আছে তা আপনি যদি সঠিকভাবে জানেন তবে আপনার কোনও সমস্যা হবে না।
পদক্ষেপ 5
একটি খুব সুবিধাজনক বৈশিষ্ট্য হ'ল মেমরি কোষগুলিকে EEPROM অ্যারের উপাদান হিসাবে উল্লেখ করা। এই স্কেচে, সেটআপ () পদ্ধতিতে, আমরা প্রথমে প্রথম 4 বাইটে ডেটা লিখব এবং লুপ () পদ্ধতিতে প্রতি মিনিটে আমরা সমস্ত ঘর থেকে ডেটা পড়ব এবং সেগুলি সিরিয়াল বন্দরে আউটপুট করব।