جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-23 12:53
في هذه المقالة سنقوم بفحص EEPROM الداخلي في لوحات Arduino الخاصة بنا. ما هو EEPROM الذي قد يقوله البعض منكم؟ EEPROM هي ذاكرة للقراءة فقط قابلة للبرمجة كهربائيًا.
إنه شكل من أشكال الذاكرة غير المتطايرة التي يمكنها تذكر الأشياء عند إيقاف تشغيل الطاقة ، أو بعد إعادة ضبط Arduino. يكمن جمال هذا النوع من الذاكرة في أنه يمكننا تخزين البيانات التي تم إنشاؤها داخل رسم تخطيطي على أساس دائم.
لماذا تستخدم EEPROM الداخلي؟ بالنسبة للحالات التي تحتاج فيها البيانات الخاصة بموقف ما إلى منزل أكثر ديمومة. على سبيل المثال ، تخزين الرقم التسلسلي الفريد وتاريخ التصنيع لمشروع تجاري قائم على Arduino - يمكن لوظيفة الرسم أن تعرض الرقم التسلسلي على شاشة LCD ، أو يمكن قراءة البيانات عن طريق تحميل "مخطط الخدمة". أو قد تحتاج إلى حساب أحداث معينة وعدم السماح للمستخدم بإعادة تعيينها - مثل عداد المسافات أو عداد دورة التشغيل.
الخطوة 1: ما نوع البيانات التي يمكن تخزينها؟
أي شيء يمكن تمثيله على هيئة بايت من البيانات. يتكون بايت واحد من البيانات من ثمانية بتات من البيانات. يمكن أن يكون البت إما قيد التشغيل (القيمة 1) أو إيقاف التشغيل (القيمة 0) ، وهو مثالي لتمثيل الأرقام في شكل ثنائي. بمعنى آخر ، يمكن أن يستخدم الرقم الثنائي فقط الأصفار والآحاد لتمثيل قيمة. وبالتالي ، يُعرف النظام الثنائي أيضًا باسم "الأساس -2" ، حيث يمكنه استخدام رقمين فقط.
كيف يمكن للعدد الثنائي باستخدام رقمين فقط أن يمثل عددًا أكبر؟ يستخدم الكثير من الآحاد والأصفار. لنفحص رقمًا ثنائيًا ، لنقل 10101010. نظرًا لأن هذا رقم أساس 2 ، فإن كل رقم يمثل 2 أس x ، بدءًا من x = 0 وما بعده.
الخطوة 2:
انظر كيف يمكن أن يمثل كل رقم من الرقم الثنائي رقم أساس 10. لذا فإن الرقم الثنائي أعلاه يمثل 85 في الأساس 10 - القيمة 85 هي مجموع قيم الأساس 10. مثال آخر - 11111111 في النظام الثنائي يساوي 255 في الأساس 10.
الخطوه 3:
الآن كل رقم في هذا الرقم الثنائي يستخدم "بت" واحد من الذاكرة ، وثمانية بتات تشكل بايتًا. نظرًا للقيود الداخلية للميكروكونترولر في لوحات Arduino الخاصة بنا ، يمكننا فقط تخزين أرقام 8 بت (بايت واحد) في EEPROM.
هذا يحد من أن تقع القيمة العشرية للرقم بين صفر و 255. الأمر متروك لك بعد ذلك لتقرر كيف يمكن تمثيل بياناتك بهذا النطاق الرقمي. لا تدع هذا يزعجك - فالأرقام المرتبة بالطريقة الصحيحة يمكن أن تمثل أي شيء تقريبًا! هناك قيد واحد يجب مراعاته - عدد المرات التي يمكننا فيها القراءة أو الكتابة إلى EEPROM. وفقًا للشركة المصنعة Atmel ، فإن EEPROM جيد لـ 100000 دورة قراءة / كتابة (انظر ورقة البيانات).
الخطوة الرابعة:
الآن نحن نعرف البتات والبايتات الخاصة بنا ، كم عدد البايتات التي يمكن تخزينها في متحكم 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 خارجي.
في هذه المرحلة ، نفهم الآن نوع البيانات ومقدار ما يمكن تخزينه في EEPROM من Arduino. حان الوقت الآن لوضع هذا موضع التنفيذ. كما تمت مناقشته سابقًا ، هناك مساحة محدودة لبياناتنا. في الأمثلة التالية ، سنستخدم لوحة Arduino نموذجية مع ATmega328 بسعة 1024 بايت من تخزين EEPROM.
الخطوة الخامسة:
لاستخدام EEPROM ، يلزم وجود مكتبة ، لذا استخدم المكتبة التالية في رسوماتك:
# تضمين "EEPROM.h"
الباقي بسيط جدا لتخزين جزء من البيانات ، نستخدم الوظيفة التالية:
EEPROM.write (أ ، ب) ؛
المعلمة a هي الموضع في EEPROM لتخزين العدد الصحيح (0 ~ 255) من البيانات ب. في هذا المثال ، لدينا 1024 بايت من مساحة تخزين الذاكرة ، وبالتالي فإن قيمة a تتراوح بين 0 و 1023. لاسترداد جزء من البيانات بنفس البساطة ، استخدم:
ض = EEPROM.read (أ) ،
حيث z هو عدد صحيح لتخزين البيانات من موقع EEPROM أ. الآن لنرى مثالا.
الخطوة السادسة:
سيقوم هذا الرسم التخطيطي بإنشاء أرقام عشوائية بين 0 و 255 ، وتخزينها في EEPROM ، ثم استردادها وعرضها على الشاشة التسلسلية. المتغير EEsize هو الحد الأعلى لحجم EEPROM الخاص بك ، لذلك (على سبيل المثال) سيكون 1024 لـ Arduino Uno أو 4096 لـ Mega.
// مظاهرة اردوينو الداخلية EEPROM
#يشمل
كثافة العمليات 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)؛ Serial.print ("موضع EEPROM:") ؛ Serial.print (أ) ؛ Serial.print ("يحتوي") ؛ Serial.println (zz) ؛ تأخير (25) ؛ }}
سيظهر الإخراج من الشاشة التسلسلية ، كما هو موضح في الصورة.
إذن فهناك طريقة أخرى مفيدة لتخزين البيانات مع أنظمة Arduino الخاصة بنا. على الرغم من أنه ليس البرنامج التعليمي الأكثر إثارة ، إلا أنه مفيد بالتأكيد.
هذا المنشور يقدمه لك pmdway.com - كل شيء للصانعين وعشاق الإلكترونيات ، مع التوصيل المجاني في جميع أنحاء العالم.
موصى به:
إعادة تدوير الأقراص المدمجة في سيارات السباق: 8 خطوات (بالصور)
إعادة تدوير الأقراص المضغوطة في سيارات السباق: مرحباً بالجميع. هذه هي سيارة سباق السيارات الخاصة بنا ، إنها مجانية تمامًا وتلقائية إذا كنت أحد الوالدين ، فستكون مناسبة جدًا للعب مع أطفالك مما يجعلها بسيطة جدًا ، وستكون ممتعة للغاية ، وسأرشدك ، دعنا نجعلها! أنت بحاجة إلى قرص مضغوط
دروس بلوتوث ESP32 - كيفية استخدام تقنية Bluetooth المدمجة في ESP32: 5 خطوات
دروس بلوتوث ESP32 | كيفية استخدام تقنية Bluetooth المدمجة في ESP32: مرحبًا يا رفاق ، نظرًا لأن لوحة ESP32 تأتي مع WiFi & amp ؛ البلوتوث على حد سواء ولكن بالنسبة لمشاريعنا في الغالب ، فإننا عادة ما نستخدم شبكة Wifi فقط ، ولا نستخدم البلوتوث ، لذا سأوضح في هذه التعليمات مدى سهولة استخدام Bluetooth من ESP32 & amp؛ لمشاريعك الأساسية
كيفية استخدام وحدة دائرة الضوء الفلورسنت المدمجة المحترقة: 6 خطوات
كيفية استخدام وحدة دائرة الضوء الفلوريسنت المضغوط المحترق: ملاحظة واحتياطات: تحتوي المصابيح الفلورية المتضامة على الزئبق وهو مادة خطرة ، لذلك يجب التعامل معها وفقًا لذلك. دائرة CFL من 18-24 واط
اصنع نجوم Shuriken الخاصة بك من الورق والأقراص المدمجة والخشب والمعدن الفائق الحدة: 5 خطوات
اصنع نجومك من Shuriken Throwing من الورق والأقراص المدمجة والخشب والمعدن الفائق الشارب: ذات يوم كنت أشاهد فيلمًا من أفلام uber-cheesy kung-fu. مدبب ، رمي الأشياء؟ الأمر الذي قادني إلى البحث في Google عن كيفية صنع نجومي الخاصة. ما ظهر هو صفحة عن كيفية تبسيط
تفكيك اللمبة الفلورية المدمجة: 7 خطوات (بالصور)
تفكيك اللمبة الفلورية المدمجة: تزداد شعبية المصابيح الفلورية المدمجة (CFLs) كطريقة لتوفير بعض الطاقة. في النهاية ، يحترقون. يبدو أن البعض يحترق بسرعة مزعجة: - (حتى لو لم تحترق ، أصبحت المصابيح الفلورية المتضامة رخيصة جدًا ، خاصة إذا كنت