كيفية تخزين البيانات في Arduino

جدول المحتويات:

كيفية تخزين البيانات في Arduino
كيفية تخزين البيانات في Arduino

فيديو: كيفية تخزين البيانات في Arduino

فيديو: كيفية تخزين البيانات في Arduino
فيديو: اردوينو متقدم- تخزين البيانات في الذاكرة + Fuse Bytes 2024, ديسمبر
Anonim

تحتوي لوحات Arduino على عدة أنواع من الذاكرة. أولاً ، هي ذاكرة الوصول العشوائي الثابتة (ذاكرة الوصول العشوائي) ، والتي تُستخدم لتخزين المتغيرات أثناء تنفيذ البرنامج. ثانيًا ، ذاكرة الفلاش هي التي تخزن الرسومات التي كتبتها. وثالثًا ، إنها ذاكرة EEPROM يمكن استخدامها لتخزين المعلومات بشكل دائم. النوع الأول من الذاكرة متقلب ، فهو يفقد جميع المعلومات بعد إعادة تشغيل Arduino. يقوم النوعان الثانيان من الذاكرة بتخزين المعلومات حتى يتم استبدالها بواحد جديد ، حتى بعد إيقاف تشغيل الطاقة. النوع الأخير من الذاكرة - EEPROM - يسمح لكتابة البيانات وتخزينها وقراءتها حسب الحاجة. سننظر في هذه الذاكرة الآن.

تخزين البيانات في EEPROM Arduino
تخزين البيانات في EEPROM Arduino

ضروري

  • - اردوينو
  • - الحاسوب.

تعليمات

الخطوة 1

يرمز EEPROM إلى ذاكرة القراءة فقط القابلة للمسح الكهربائي والقابلة للبرمجة ، أي ذاكرة للقراءة فقط قابلة للمسح كهربائيًا. يمكن تخزين البيانات الموجودة في هذه الذاكرة لعشرات السنين بعد انقطاع التيار الكهربائي. عدد دورات إعادة الكتابة في حدود عدة ملايين من المرات.

حجم ذاكرة EEPROM في Arduino محدود نوعًا ما: بالنسبة للوحات القائمة على متحكم ATmega328 (على سبيل المثال ، Arduino UNO و Nano) ، يبلغ حجم الذاكرة 1 كيلوبايت ، للوحات ATmega168 و ATmega8 - 512 بايت ، لـ ATmega2560 و ATmega1280 - 4 كيلو بايت.

الخطوة 2

للعمل مع EEPROM لـ Arduino ، تمت كتابة مكتبة خاصة ، والتي يتم تضمينها في Arduino IDE افتراضيًا. تحتوي المكتبة على الميزات التالية.

قراءة (العنوان) - يقرأ 1 بايت من EEPROM ؛ العنوان - العنوان الذي تُقرأ منه البيانات (خلية تبدأ من 0) ؛

الكتابة (العنوان ، القيمة) - يكتب قيمة القيمة (1 بايت ، الرقم من 0 إلى 255) في الذاكرة على عنوان العنوان ؛

تحديث (العنوان ، القيمة) - يحل محل القيمة في العنوان إذا كان محتواها القديم يختلف عن المحتوى الجديد ؛

الحصول على (العنوان ، البيانات) - يقرأ البيانات من النوع المحدد من الذاكرة في العنوان ؛

وضع (العنوان ، البيانات) - يكتب البيانات من النوع المحدد إلى الذاكرة على العنوان ؛

EEPROM [عنوان] - يسمح لك باستخدام معرف "EEPROM" كمصفوفة لكتابة البيانات إلى الذاكرة والقراءة منها.

لاستخدام المكتبة في المخطط ، نقوم بتضمينها مع التوجيه #include EEPROM.h.

الخطوه 3

لنكتب عددين صحيحين إلى EEPROM ثم نقرأهما من EEPROM ونخرجهما إلى المنفذ التسلسلي.

لا توجد مشاكل مع الأرقام من 0 إلى 255 ، فهي تشغل بايت واحد فقط من الذاكرة وتتم كتابتها إلى الموقع المطلوب باستخدام وظيفة EEPROM.write ().

إذا كان الرقم أكبر من 255 ، فعندئذٍ باستخدام عامل التشغيل highByte () و lowByte () ، يجب تقسيمه بالبايت ويجب كتابة كل بايت في خليته الخاصة. الحد الأقصى في هذه الحالة هو 65536 (أو 2 ^ 16).

انظر ، تعرض شاشة المنفذ التسلسلي في الخلية 0 رقمًا أقل من 255. في الخليتين 1 و 2 ، يتم تخزين رقم كبير 789. في هذه الحالة ، تخزن الخلية 1 عامل التجاوز 3 ، وتخزن الخلية 2 الرقم المفقود 21 (أي 789 = 3 * 256 + 21). لإعادة تجميع عدد كبير ، معربًا إلى بايت ، توجد الكلمة () function: int val = word (hi ، low) ، حيث hi و low هي قيم البايت المرتفع والمنخفض.

في جميع الخلايا الأخرى التي لم نكتبها مطلقًا ، يتم تخزين الأرقام 255.

كتابة الأعداد الصحيحة في EEPROM Arduino
كتابة الأعداد الصحيحة في EEPROM Arduino

الخطوة 4

لكتابة أرقام وسلاسل الفاصلة العائمة ، استخدم طريقة EEPROM.put () ، وللقراءة ، استخدم EEPROM.get ().

في إجراء الإعداد () ، نكتب أولاً رقم الفاصلة العائمة f. ثم نتحرك حسب عدد خلايا الذاكرة التي يشغلها نوع الطفو ، ونكتب سلسلة أحرف بسعة 20 خلية.

في إجراء loop () ، سنقرأ جميع خلايا الذاكرة ونحاول فك تشفيرها أولاً كنوع "float" ، ثم كنوع "char" ، وإخراج النتيجة إلى المنفذ التسلسلي.

يمكنك أن ترى أن القيمة الموجودة في الخلايا من 0 إلى 3 قد تم تعريفها بشكل صحيح كرقم فاصلة عائمة ، وتبدأ من الرابع - كسلسلة.

تشير القيم الناتجة ovf (overflow) و nan (وليس رقمًا) إلى أنه لا يمكن تحويل الرقم بشكل صحيح إلى رقم فاصلة عائمة. إذا كنت تعرف بالضبط نوع البيانات التي تحتلها خلايا الذاكرة ، فلن تواجه أي مشاكل.

كتابة أرقام وسلاسل الفاصلة العائمة في EEPROM Arduino
كتابة أرقام وسلاسل الفاصلة العائمة في EEPROM Arduino

الخطوة الخامسة

من الميزات الملائمة للغاية الإشارة إلى خلايا الذاكرة كعناصر من مجموعة EEPROM. في هذا المخطط ، في إجراء الإعداد () ، سنكتب البيانات أولاً في أول 4 بايت ، وفي إجراء الحلقة () ، سنقرأ كل دقيقة البيانات من جميع الخلايا ونخرجها إلى المنفذ التسلسلي.

موصى به: