هنالك نماذجٌ مختلفةٌ لهذه الواحدة تختلف من شركة لأخرى، ولكنّهم جميعاً يعملون بالطّريقة نفسها، باستخدام بروتوكول الاتصال SPI.
الشكل (1): شكل ال SD card
هذه الواحدة متوافقةٌ مع كروت الذاكرة الميكرويّة micro SD، ولكن يوجد وحداتٌ أخرى تعمل مع كروت الذاكرة العادية.
الشكل (2): شكل ال SD card
كيفية توصيل الواحدة مع الأردوينو:
SD card module | Wiring to Arduino Uno | Wiring to Arduino Mega |
VCC | 3.3V or 5V
(تحقّق من الداتا شيت الخاصّ بها) |
3.3V or 5V
(تحقّق من الداتا شيت الخاصّة بها) |
CS | 4 | 53 |
MOSI | 11 | 51 |
CLK | 13 | 52 |
MISO | 12 | 50 |
GND | GND | GND |
ملاحظة:
تختلف أطراف ال spi من لوحة أردوينو الى أخرى، في حال استخدمْتَ لوحة أردوينو أخرى فعليك أن تتحقَّقَ من التوثيق الخاصّ بها عبر الرابط:
https://www.arduino.cc/en/Reference/SPI
تحضير بطاقة الـ SD (كرت الذّاكرة):
تُعَدّ تهيئة البطاقة كـ 16FAT أو 32FAT الخطوة الأولى عند استخدام بطاقة SD مع الأردوينو، ويتمّ هذا باتّباع الخطوات أدناه:
- لتهيئة بطاقة الـ SD نقوم : أولاً بإدخالها في جهاز الحاسوب، ومن ثمّ ننقر بالزّرّ اليمينيّ على بطاقة SD، ثمّ نختار “تهيئة” كما يظهر في الشكل.
الشكل (3): خطوات تهيئة بطاقة الـ SD
2- تظهر نافذةٌ جديدةٌ، نختار 32FAT، ومن ثمّ ننقر على “ابدأ” لبدء عملية التّهيئة واتّباع التعليمات التي تظهر على الشاشة.
الشكل (4): خطوات تهيئة بطاقة الـ SD
اختبار واحدة الـ SD card:
نُدخِل بطاقة الـ SD المُهيَّئَة في الواحدة، ومن ثمّ نَصِلُ الواحدة إلى الأردوينو كما يظهر في مخطّط الدّارة أدناه.
الشكل (5):توصيل بطاقة الـ SD مع الأردوينو
ملاحظة:
قد تكون الأرجل بترتيبٍ مختلفٍ حسب الشّركة المصنِّعة.
لنتأكّد من أنّ كلّ شيء موصول بالشّكل الصّحيح، وأنّ بطاقة الـ SD تعمل بشكلٍ صحيحٍ، نفتح واجهة برنامج Arduino IDE ونقوم بما يلي:
File } Examples } SD } Card Info
ثم نحمّل الكود عل لوحة الأردوينو الخاصّة بك، نتأكّد من صحّة اللوحة ومنفذ COM المُختار، ومن ثُمّ نفتح المراقب التسلسليّ حيث يكون معدَّل الباود 9600، ثم يجب أن تظهر على الشاشة معلومات بطاقتك الـ SD.
إذا كان كلّ شيءٍ يعمل بشكلٍ صحيحٍ، فسنرى رسالةً مماثلةً على واجهة العرض التسلسلية .
الشكل (6): رسالة في واجهة العرض التسلسلية
القراءة والكتابة في بطاقة الـ SD:
تحوي مكتبة الـ SD توابع للكتابة والقراءة من بطاقة الـ SD.
أولاً: علينا تضمين مكتبات الـ SD وSPI.
<include <SPI.h#
<include <SD.h#
ثانيا: تهيئة الواحدة عبر اختيار الرّجْل CS، في مثالنا الطّرف 4.
(SD.begin(4
ثالثا: فتح ملفٍّ جديدٍ في بطاقة ال SD، علينا إنشاء كائنٍ يمثّل الملفّ الهدف الذي سنكتب عليه أو نقرأ منه، على سبيل المثال:
(dataFile = SD.open(“data.txt”, FILE_WRITE
البارامتر الأوّل هو اسم الملفّ ” data.txt”، والبارامتر الثاني ” FILE_WRITE” لتحديد المهمة قراءةً أو كتابة.
يُنشئ هذا السطر البرمجيّ ملفاً اسمه data.txt على بطاقتك ال SD، وإذا كان موجوداً حقّاً هذا الملفّ، فإنّ الأردوينو سيفتح الملفّ بدلاً من إنشاء واحدٍ آخر.
رابعاً: كتابة البيانات في الملفّ المفتوح حاليّاً، نستخدم:
(dataFile.write(data
حيث datafile هو الكائن الذي أُنشِئ مُسبقاً، والبيانات هي ما تريد أن يُكتَب في الملفّ.
يمكنك أيضاً استخدام التابعين () print أو () println لطباعة البيانات في الملفّ.
(dataFile.print(data
dataFile.println(data) // followed by a new line
خامساً: قراءة البيانات المحفوظة في الملفّ:
()dataFile.read
سادسا: يمكننا الكتابة ضمن الملفّ لمرّةٍ واحدةٍ فقط، لذا عليك أن تُغلِق الملفّ قبل الانتقال إلى واحدٍ آخرٍ، لإغلاق ملفّ data.txt الذي أنشأناه:
(“SD.close(“data.txt
بارامتر هذا التّابع هو الملفّ الذي تريد إغلاقه، في مثالنا data.txt.
يوجد مثالٌ جاهزٌ في مكتبة ال sd يوضّح آليّة الكتابة و القراءة و التّوابع المستخدمة يمكننا فتحه عبر الخطوات :
File} Examples } SD } ReadWrite.