📚 توصيل الدوائر الإلكترونية وبرمجة الأردوينو
المفاهيم الأساسية
* توصيل LED (الدايود المشع للضوء): توصيل الكاثود (المهبط) بـ GND (الطرف الأرضي) للوحة الأردوينو، وتوصيل الأنود (المصعد) بالطرف الرقمي 11.
خريطة المفاهيم
```markmap
الانتقال من البرمجة باللبنات المرئية إلى C++
بيئة تينكركاد
محاكاة برمجة الأردوينو بالنمذجة
لا تتطلب أردوينو فعلي
الإعلان عن المتغيرات والعمليات في تينكركاد
استخدام مجموعة أوامر المتغيرات (Variables)
استخدام مجموعة أوامر الحساب (Math)
أمثلة على اللبنات البرمجية
إعلان متغير باسم x
تعيين قيمة للمتغير
مقارنة العمليات بين تينكركاد و C++
تغيير قيمة متغير بقيمة محددة
#### لبنة تينكركاد: change x by 5
#### C++: x += 5;
تنفيذ عملية رياضية بين متغيرين
#### لبنة تينكركاد: set x to x - y
#### C++: x = x - y;
تعيين متغير ثالث Z لناتج عملية رياضية
#### لبنة تينكركاد: set z to x / y
#### C++: z = x / y;
إجراء مقارنة رياضية بين متغيرين
#### لبنة تينكركاد: x < y
#### C++: x < y
إجراء مقارنة منطقية بين متغيرين
#### لبنة تينكركاد: x != y
#### C++: x != y
إجراء عملية منطقية بين عبارتين
#### لبنة تينكركاد: x != y && x < y
#### C++: x != y && x < y
العبارات الشرطية والتكرارات ورسائل الإخراج
مجموعات الأوامر المستخدمة
#### Output
#### Input
#### Notation
#### Control
#### Math
#### Variables
أمثلة مقارنة
#### طباعة رسالة على الشاشة التسلسلية
##### لبنة تينكركاد: print to serial monitor hello world with newline
##### C++: Serial.println("hello world");
#### الانتظار 5 ثواني
##### لبنة تينكركاد: wait 5 secs
##### C++: delay(5000);
#### العبارة الشرطية (if)
##### لبنة تينكركاد: if x < 10 then change y by 5
##### C++: if (x < 10) { y += 5; }
#### العبارة الشرطية (if/else)
##### لبنة تينكركاد: if x >= 10 and x < 20 then change y by 10 else change y by 20
##### C++: if (x >= 10 && x < 20) { y += 10; } else { y += 20; }
التكرارات (Loops)
#### تكرار for
##### لبنة تينكركاد: repeat 5 times change y by 1
##### C++: for (counter = 0; counter < 5; ++counter) { y += 1; }
#### تكرار while
##### لبنة تينكركاد: repeat while x <= 10 change x by 1
##### C++: while (x <= 10) { x += 1; }
مدخلات ومخرجات أطراف أردوينو
#### مجموعات الأوامر المستخدمة: Output, Control, Input, Math, Notation, Variables
#### قراءة قيمة طرف رقمي
##### لبنة تينكركاد: set x to read digital pin 4
##### C++: pinMode(4, INPUT); x = digitalRead(4);
أمثلة على الانتقال من لبنات تينكركاد إلى لغة C++
أمثلة على أوامر الأطراف
#### ضبط قيمة الطرف الرقمي 4 على HIGH
#### الحصول على قيمة الطرف التناظري A3 وتخزينه في المتغير y
#### إعداد قيمة الطرف 10 من القيمة التناظرية 15 باستخدام عرض النبضة (PWM)
مثال على الدايودات المشعة الضوء الوامضة (Blinking LEDs Example)
#### المكونات المطلوبة
##### لوحة أردوينو أونو R3
##### 1 دايود مشع للضوء (LED)
#### الهدف من المشروع
##### إنشاء برنامج بسيط يحتوي على تكرارين يجعلان دايود مشع للضوء يومض 5 مرات و 10 مرات بشدة مختلفة
#### توصيل الدوائر الضوئي
##### توصيل كاثود LED بـ GND
##### توصيل أنود LED بالطرف الرقمي 11
#### برمجة الأردوينو
##### السلوك: يومض LED 5 مرات في الثانية، ثم 10 مرات بفارق 200 ملي ثانية بين كل منها.
##### الكود في C++:
###### void setup(): pinMode(11, OUTPUT);
###### void loop(): تكراران (for) لتنفيذ وميض 5 مرات (تأخير 1000 ملي ثانية) ثم 10 مرات (تأخير 200 ملي ثانية).
#### لبنات تيكر كاد
##### الكود المكافئ باستخدام اللبنات المرئية.
```
نقاط مهمة
* يتم توصيل LED بالأردوينو عن طريق ربط طرفه السالب (الكاثود) بـ GND وطرفه الموجب (الأنود) بأحد الأطراف الرقمية (مثل 11).
* الوظيفة `pinMode(11, OUTPUT)` في `setup()` تُعد الطرف 11 كمخرج.
* الوظيفة `digitalWrite(11, HIGH/LOW)` تُشغل أو تُطفئ LED.
* الوظيفة `delay()` تُوقف التنفيذ لفترة محددة بالملي ثانية.
* يستخدم التكرار `for` لتكرار وميض LED عدداً محدداً من المرات.