📚 إنشاء كائنات المكونات الإلكترونية
المفاهيم الأساسية
كائن (Object): كيان برمجي يمثل مكوناً إلكترونياً في البرنامج، يتم إنشاؤه وتهيئته قبل الاستخدام.
خريطة المفاهيم
```markmap
تمارين برمجة C++ لإنترنت الأشياء
المشروع: إنشاء قفل باب ذكي
المكونات المستخدمة
- لوحة أردوينو أونو R3 (Arduino Uno R3)
- لوحة مفاتيح (مقياس 4x4)
#### توصيل لوحة المفاتيح
##### خطوات التوصيل
###### الصف الأول: الطرف الرقمي 9
###### الصف الثاني: الطرف الرقمي 8
###### الصف الثالث: الطرف الرقمي 7
###### الصف الرابع: الطرف الرقمي 6
- توصيل أعمدة لوحة المفاتيح
###### العمود الأول: الطرف الرقمي 5
###### العمود الثاني: الطرف الرقمي 4
###### العمود الثالث: الطرف الرقمي 3
###### العمود الرابع: الطرف الرقمي 2
##### ملاحظة
- تغيير لون جميع أسلاك التوصيل إلى الأخضر (green)
- شاشة LCD مقاس 16x2 (I2C)
#### توصيل شاشة LCD
##### خطوات التوصيل
- توصيل الطرف GND (الأرضي) لشاشة LCD بطرف GND (الأرضي) الخاص بالأردوينو (سلك أسود)
- توصيل طرف Power (الطاقة) لشاشة LCD بالطرف 5V (فولت) بالأردوينو (سلك أحمر)
- توصيل طرف SDA لشاشة LCD بطرف SDA بالأردوينو (سلك أخضر)
- توصيل طرف SCL لشاشة LCD بطرف SCL بالأردوينو (سلك أصفر)
- محرك سيرفو مصغر (Micro Servo)
#### توصيل محرك السيرفو المصغر
##### خطوات التوصيل
- توصيل الطرف GND (الأرضي) للمحرك بطرف GND (الأرضي) بالأردوينو (سلك أسود)
- توصيل طرف Power (الطاقة) للمحرك بالطرف 5V (فولت) بالأردوينو (سلك أحمر)
- توصيل طرف Signal (الإشارة) للمحرك بالطرف الرقمي 11 بالأردوينو (سلك برتقالي)
البرمجة
#### تضمين المكتبات
##### مكتبات المشروع الحالي
- للوحة LCD: #include
- للوحة المفاتيح: #include
- للمحرك المؤازر: #include
#### إنشاء الكائنات
- كائن لشاشة LCD.
- كائن للمحرك المؤازر (Servo motor).
- كائن للوحة المفاتيح.
##### كائن محرك السيرفو المصغر
###### الأمر: Servo servo;
- `Servo`: نوع الكائن.
- `servo`: اسم الكائن الفعلي المستخدم.
- لا يحتاج إلى معاملات للتهيئة.
##### كائن شاشة LCD
###### الأمر: Adafruit_LiquidCrystal lcd(0);
- `Adafruit_LiquidCrystal`: نوع الكائن.
- `lcd`: اسم الكائن.
- `(0)`: معامل التهيئة (عنوان الأردوينو الابتدائي، 0 افتراضياً).
##### كائن لوحة المفاتيح
###### تهيئة الأبعاد
- الأمر: const byte numRows = 4;
- الأمر: const byte numCols = 4;
- `numRows`: عدد الصفوف (4).
- `numCols`: عدد الأعمدة (4).
##### ملاحظة
- قد يتطلب إنشاء الكائن تمرير وسائط إلى المُنشئ (Constructor) لتهيئتها.
```
نقاط مهمة
- إنشاء كائن محرك السيرفو (`Servo servo;`) لا يحتاج إلى معاملات للتهيئة.
- عند إنشاء كائن شاشة LCD، يجب تمرير عنوان الأردوينو الابتدائي (0 افتراضياً) كمعامل في المُنشئ.
- إنشاء كائن لوحة المفاتيح يتطلب أولاً تعريف ثوابت لتحديد عدد صفوفه (4) وأعمدته (4).