You are on page 1of 39

‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫ميحرلا نمحرلا هللا‬ ‫بسم‬


‫وأخٌرا ‪ ...‬لال االمام علً (علٌه السالم) «زكاة العلم بذله لمستحمه»‬
‫ً‬ ‫الحمد هلل أوالً‬

‫ومن هذا المنطلك بدأنا تألٌف هذا الكتاب الذي ٌحتوي فً صفحاته على معلومات واساسٌات ٌحتاجها كل شخص فً تطوٌر‬
‫نفسه فً االردوٌنو بشكل خاص واالنظمة المدمجة بشكل عام‬

‫حٌث ٌتطرق الى المفاهٌم النظرٌة فً اولى صفحاته والتً تحتوي على معلومات مهمة ٌجب معرفتها لبل الدخول الى‬
‫الجانب العملً وتصمٌم المشارٌع المختلفة ‪...‬‬

‫حٌث تطرلنا الى شرح مفهوم االردوٌنو والمتحكمات الدلٌمة واهمٌتها وكذلن ممٌزات االردوٌنو ومكوناته بشرح بسٌط‬
‫وملخص‬

‫وبعد ان تعرفنا على البٌئة والهٌكل العام لبرمجة االردوٌنو تكلمنا عن بعض االوامر البرمجٌة المهمة‬

‫حٌث ٌحتوي الكتاب على مجموعة تجارب ومشارٌع تم شرحها بطرٌمه مبسطة وحدٌثة من أجل اٌصال المعلومة للمتلمً‬

‫وألننا نؤمن بإن التعلم والخبرة تكون من خالل التطبٌك العملً ومواجهة االخطاء سوف ٌكون اعتمادنا على اٌصال المعلومة‬
‫من خالل التجارب العملٌة‬

‫املؤلفون‬
‫حسن كرمي صبيح‬
‫زهراء حسني عيل‬

‫‪1‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫‪ ‬ممدمة عن األردوٌنو وال ُمت َح ِكمات الدلٌمة‬

‫‪ ‬مكونات ال ‪ MICROCONTROLLERS‬االساسٌة‬

‫‪ ‬األردوٌنو و ممٌزاته‬

‫‪ ‬مكونات بطالة االردوٌنو‬

‫‪ ‬تحمٌل بٌئة برمجة االردوٌنو والتعرف علٌها‬

‫‪ ‬الهٌكل العام لكود البرمجة‬

‫‪ ‬المحاكً وكٌفٌة استخدامة‬

‫‪ ‬وظٌفة المماومة فً الدائرة الكهربائٌة‬

‫‪ ‬انواع البٌانات‬

‫‪ Project 1 ‬تشغٌل واطفاء ‪LED‬‬

‫‪ Project 2 ‬عمل تجربة اشارة المرور‬

‫‪ Project 3 ‬تشغٌل واطفاء ‪ led 13‬بواسطة ‪for‬‬

‫‪ ‬توضٌح الٌة عمل ‪ for‬بشكل عام‬

‫‪2‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫‪ Project 4 ‬تشغٌل واطفاء ‪ led‬بواسطة ‪push button‬‬

‫تشغٌل ‪ LED 3‬بالتتابع عن طرٌق ‪push putton‬‬ ‫‪Project 5 ‬‬

‫‪ ‬توضٌح الٌة عمل ‪ switch case‬بشكل عام‬

‫‪ ‬تعدٌل عرض الموجة ‪PWM‬‬

‫‪ Project 6 ‬التحكم بشدة االضاءة من خالل ‪putton‬‬

‫‪ ‬الحساسات ‪ ,‬انواعها‬

‫‪ ‬بعض االوامر البرمجٌة المتمدمة‬

‫‪ Project 7 ‬حساس درجة الحرارة‬

‫‪ Project 8 ‬المماومة الضوئٌة لتحسس شدة الضوء ‪LDR‬‬

‫‪3‬‬
Hassan karim & Zahraa Hussein ‫اردوينو بالعربي‬

4
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫ممدمه عن اردوٌنو وال ُمت َح ِكمات الدلٌمة‬

‫ما هو األردوٌنو ؟‬
‫‪: Arduino‬هً عبارة عن لوحة تطوٌر إلكترونٌة ‪ Board Development‬تتكون من دائرة إلكترونٌة مفتوحة‬ ‫األردوٌنو باإلنجلٌزٌة‬
‫المصدر مع متحكم دلٌك على لوحة واحدة ٌتم برمجتها عن طرٌك الكمبٌوتر وهً مصممة لجعل عملٌة استخدام اإللكترونٌات التفاعلٌة فً‬
‫مشارٌع متعددة التخصصات أكثر سهولة‪ .‬وٌستخدم اردوٌنو بصورة أساسٌه فً تصمٌم المشارٌع اإللكترونٌة التفاعلٌة أو المشارٌع التً‬
‫تستهدف بناء حساسات بٌئٌة مختلفة (مثل درجات الحرارة‪ ،‬الرٌاح‪ ،‬الضغط‪...‬الخ) وٌمكن توصٌل اردوٌنو ببرامج مختلفة على الحاسب‬
‫الشخصً‪ .‬وتعتمد االردوٌنو فً برمجتها على لغة البرمجة مفتوحه المصدر وتتمٌز األكواد البرمجٌة الخاصة بلغة اردوٌنو أنها تشبهه‬
‫لغة (‪ )C++‬وتعتبر من أسهل لغات البرمجة المستخدمة فً كتابة برامج المتحكمات الدلٌمة‬

‫ما هً المتحكمات الدقٌقة ؟‬

‫ال تخلو حٌاتنا الٌومٌة من استخدام التكنولوجٌا ووجود المتحكمات الدلٌمة فً‬
‫كل مكان حولنا أصبح أمرا ً البد منه ولكن ماهً هذه المتحكمات التً تتواجد‬
‫فً منازلنا وأماكن عملنا‪ ،‬سٌارتنا واألماكن العامة وحتى فً الفضاء؟!‬

‫المتحكمات الدقٌقة ‪ microcontrollers‬هً عبارة عن كمبٌوترات‬


‫صغٌرة لابلة للبرمجة لتؤدي مجموعة من المهام‪ ،‬الفرق األساسً بٌن‬
‫الكمبٌوترات والمتحكمات الدلٌمة هً المهام التً تؤدٌها‪ ،‬مثالً تستخدم‬
‫الكمبٌوترات لتشغٌل األفالم ومشاهدتها او لتصفح االنترنت او لراءة الكتب والمماالت … بٌنما تستخدم المتحكمات الدلٌمة فً المنتجات او‬
‫االجهزة التً ٌتم التحكم فٌها أوتوماتٌكٌا وتوجد الكثٌر من المنتجات واالجهزة التً تجعل استخدامنا لها ٌومٌا ً بدون ان ندرن ذلن مثل التلفزٌون‪،‬‬
‫الجواالت‪ ،‬أنظمة األمن‪ ،‬الكامٌرات‪ ،‬أجهزة ألعاب الفٌدٌو‪ ،‬الماٌكروٌف‪ ،‬الطابعات‪ ،‬السٌارة وٌمكن تفصٌل بعضها كاآلتً‪:‬‬

‫‪ o‬المكٌفات للتحكم بدرجة الحرارة أو مدة التشغٌل…‬

‫‪ o‬الغساالت للتحكم بسرعة واتجاه المحركات والمهام التً تموم بها (غسل‪ ،‬شطف‪ ،‬تنشٌف)‬

‫‪ o‬التحكم باإلضاءة حٌث ٌمكن او تعمل حٌن ٌتواجد شخص ما فً الغرفة او أن تعمل فً ولت محدد…‬

‫‪ o‬محطات الطمس كمراءة درجة الحرارة والرطوبة ومستوى أشعة الشمس وسرعة الرٌاح ومستوٌات الغازات… وٌمكن حفظها وعمل‬
‫إحصاءات او ممارنات بٌنها…‬

‫‪ o‬التحكم فً الروبوتات‪ :‬فمثال التحكم فً سرعته‪ ،‬مساره‪ ،‬حركة األذرع‪ ،‬لراءة المعلومات‬
‫(صوت أو فٌدٌو)‬

‫‪5‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫‪cpu -1‬‬

‫‪ -2‬ذاكرة ‪ ROM‬و ‪RAM‬‬

‫‪ -3‬وحدات االدخال واالخراج ‪I\O‬‬

‫‪ -4‬وحدة التحكم فً الزمن ‪Timer‬‬

‫‪ -5‬وحدة التخاطب مع االجهزة الخارجٌة‬

‫‪ -6‬وحدة التحوٌل الى النظام التماثلً او الرلمً‬

‫ماهو النظام الرلمً ؟؟؟؟‬

‫ببساطة النظام الرلمً هو عبارة عن نظام ثنائً (‪ ) 0\ 1‬ال ‪ٌ 0‬عنً ‪ volt 0‬وال ‪ٌ 1‬عنً ‪volt 5‬‬

‫ابسط مشروع ممكن نصنع بهذا النظام تشغٌل واطفاء ‪LED‬‬

‫ٌحتوي على الكثٌر من التفاصٌل سوف نتعرف علٌها الحما‬

‫ماهو النظام التماثلً ؟؟؟؟‬

‫الفرق بٌنه وبٌن النظام الرلمً انو بالتماثلً تختلف نوعٌة ولٌمة البٌانات او االشارة مثال عداد السرعة ‪ ,‬ممٌاس درجة الحرارة ‪ ,‬وغٌرها من‬
‫االدوات واالجهزة الً تستمبل اشارات متغٌرة ولٌس ثابته‬

‫مع ذلن نستطٌع تغٌٌر النظام من تماثلً الى رلمً ‪...‬‬

‫انخفاض السعر‬
‫سهولة االستخدام (ممارنة بغٌرة من الدوائر المبرمجة)‬
‫كثرة اإلضافات المتوافمة مع األردوٌنو و التً تموم بأعمال متنوعة‬
‫مولع اإلنترنت الخاص باألردوٌنو منظم ومفٌد جدا ً ‪arduino.cc‬‬
‫الشهرة الواسعة وآالف المستخدمٌن و الدروس و المشارٌع عبر العالم‬

‫‪6‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫‪1‬‬ ‫المنافذ ‪ports‬‬


‫‪ -1‬المنافذ الرلمٌة ‪digital pins‬‬

‫المنافذ الرلمٌة وعددها ‪ 14‬منفذ وهً مرلمه من (‪)13-0‬‬


‫وٌمكنن فً الكود تحدٌد عمل كل منفذ عندما تعمل المنافذ‬
‫كمخارج ٌمكنن حسب كتابة الكود اخراج ‪ 5v‬او ‪0v‬‬

‫العالمة ∿ تعنً أن هذ ا الطرف ٌصلح إلخراج لٌمة جهد‬


‫تماثلٌة‪ .‬وٌسمى أٌضا ‪PWM‬‬
‫المنفذٌن(‪ٌ )1,0‬سمٌان ‪ TX‬و ‪ RX‬وٌستخدمان للتواصل‬
‫مع الكمبٌوتر‬
‫المنفذ ‪ٌ GND‬عمل كأرضً للدائرة اإللكترونٌة ‪0v‬‬
‫المنفذ ‪ AREF‬نادر االستخدام ٌستخدم لضبط اعلى لٌمة‬
‫فً نماط الجهود للمداخل التماثلٌة (‪)5V – 0V‬‬
‫‪2‬‬
‫‪3‬‬

‫‪ -2‬منافذ الطالة ‪power pins‬‬

‫بعد تشغٌل األردوٌنو وتوصٌل الطالة المناسبة له ٌمكنن ان تستخدم هذه المجموعة لتمد دائرتن االلكترونٌة بالطالة المناسبة (‪ 5v‬او ‪)3.3v‬‬
‫الطرفٌن ‪ GND‬تسمى االرضً وجهدها ‪ 0V‬الحظ اٌضا ٌمكنن ان تمد األردوٌنو بالطالة عبر توصٌل جهد مناسب من (‪ )7V – 12V‬إلى‬
‫الطرف ‪ Vin‬كما ٌمكنن ان تعمل ‪ Reset‬إعادة التشغٌل األردوٌنو عبر استخدام المنفذ ‪(Reset‬لعمل هذا‪ :‬وصل المنفذ ‪ reset‬ب ‪)GND‬‬

‫‪ -3‬المداخل التماثلٌة ‪Analog inputs‬‬

‫عددها ‪ 6‬من (‪ )1A – 5A‬وٌمكنها لٌاس الجهد (تماثلٌا) وٌكون التعامل معها بتوصٌلها مع السلن المطلوب لٌاس الجهد عنده ثم التحكم بها فً‬
‫البرنامج ٌمكن استخدام هذه األطراف كمداخل رقمٌة أو مخارج رقمٌة ‪ .‬ستشرح الحقا‪.‬‬

‫‪7‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫للحصول على بٌئة البرمجة ‪ٌ Arduino IDE‬مكن تحمٌلها من المولع الرسمً‬


‫بعد تثبٌت برنامج ‪ ArduinoIDE‬من مولع المدرج اعاله‬

‫تعتبر الواجهة سهلة االستخدام وللٌلة الخٌارات انظر للصورة‬

‫سوف نشرح الخٌارات االساسٌة التً تمكنن من العمل على‬


‫البرنامج اما بمٌة الخٌارات المتطورة استكشفها بنفسن‬

‫‪8‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫ٌتم تمسٌم الكود منطمٌا الى لسمٌن كما موضح فً الصورة‬

‫‪Void loop‬و‪Void setup‬‬

‫فً هذا الجزء كل ما ٌكتب بٌن االلواس ٌتم تنفٌذه مره واحدة عند‬
‫تشغٌل الكود‬

‫واٌضا ٌمكننا فً هذا المسم من تحدٌد المدخالت و المخرجات‬

‫كما فً المثال‬

‫;) ‪pinMode( 13 , OUTPUT‬‬

‫;) ‪pinMode (13, OUTPUT‬‬

‫باالضافة الى الكثٌر من التفاصٌل سوف نتعلمها الحما‬

‫اما هذا الجزء وهو االهم الذي ٌحوي اغلب الكود المشغل للمشروع‬

‫وٌتم تكار تنفٌذه طوال فترة اتصاله بالطالة‬

‫سوف ندرج مجموعة من االوامر البرمجٌة االساسٌة التً سوف‬

‫نكتبها فً هذا المسم بكثرة‬

‫مجموعة اوامر برمجٌة‬


‫سوف نكتب لكم مجموعة اوامر برمجٌة مهم ان تعرفوها قبل البدء بالتطبٌق العملً‪:‬‬

‫هذه االوامر دائما تكتب فً قسم التكرار ‪LOOP‬‬

‫;) ‪digitalWrite( 31 , HIGH‬‬

‫هنا نكتب اسم او رلم المنفذ‬ ‫واالمر ‪ٌ HIGH‬عنً ‪ true‬او تشغٌل‬

‫فً هذا المثال استخدمنا ‪ 13‬كمخرجات‬ ‫وٌستخدما عادة العطاء امر تشغٌل ‪led‬‬

‫اي ٌعطٌنا ‪5V‬‬

‫‪9‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫;) ‪digitalRead( pin‬‬ ‫لراءة لٌمة لطب "‪ "pin‬معرف كدخل‬

‫;)‪analogRead(pin‬‬ ‫لراءة المٌم التماثلٌة على لطب الدخل ‪pin‬‬

‫التماثلً (‪ )A5 ~ A0‬فً لوحات ‪Arduino UNO‬‬

‫هنالن الكثٌر من االوامر البرمجٌة المهمة والتً سوف نستخدمها بأستمرار لكن ٌحتاج تطبٌمها عملٌا من اجل فهمها بصورة‬
‫صحٌحة سوف نبدأ بشرح مشارٌع تدرٌجٌة من اجل التعرف على المواضٌع التالٌة‪:‬‬

‫‪ -1‬التعرف على االدوات المستخدمة فً االردوٌنو‬


‫‪ -2‬التعرف على االوامر البرمجٌة وتطبٌمها بطرق مختلفة‬
‫‪ -3‬التعرف على الحساسات والكثٌر من المطع المهمة‬

‫هذه مجموعة صور لالدوات التً سوف نستخدمها فً المشارٌع والتجارب القادمه‬

‫‪10‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫موقع ‪TINKERCAD‬‬
‫بعد تسجٌل الدخول فً موقع ‪ TINKERCAD.COM‬اما باستخدام االٌمال و كلمة المرور التً استخدمناها فً انشاء حساب اوتودٌسك او‬
‫باستخدام مواقع خارجٌة كالفٌسبوك‪ ,‬نقوم بالضغط على ‪ Circuits‬من القائمة الٌسرى ثم نضغط على ‪ Create new Circuit‬كما هو‬
‫موضح بالصورة التالٌة‪:‬‬

‫فتظهر لنا بعد ذلن الواجهة التالٌة‪ .‬و إلٌكم دور بعض األزرار فً هذا التطبٌك‪:‬‬
‫من أجل البدأ فً عملٌة المحاكاة و تجرٌب المشروع الذي لمت بإنشاءه‪.‬‬ ‫‪-1‬‬
‫من أجل فتح مجموعة المكونات اإللكترونٌة‪.‬‬ ‫‪-2‬‬
‫من أجل فتح نافذة للتعدٌل على كود البرمجة الردوٌنو‪.‬‬ ‫‪-3‬‬
‫من أجل تدوٌر المكونات اإللكترونٌة‪.‬‬ ‫‪-4‬‬

‫‪11‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫سوف ٌكون الجانب العملً على لسمٌن المسم االول خاص باألساسٌات والمشارٌع البسٌطة اما المسم الثانً‬
‫سوف ٌكون فمط للمشارٌع المتمدمة‬
‫قبل البدء فً شرح المشارٌع ٌجب ان نشرح موضوع مهم جدا‬
‫فً جمٌع التجارب العملٌة سوف نستخدم المماومة والتً تعتبر جزء مهم فً الدائرة الكهربائً لذلن من المهم‬
‫معرفة عملها وكٌفٌة اختٌار النوع المناسب فً التجربة‬

‫وظٌفة المماومة فً الدائرة الكهربائٌة؟‬

‫تعتمد وظٌفتها على المكان الذي ستوضع فٌه فاذا ربطت مع حمل على‬

‫التوازي فان تاثٌرها سٌكون على المصدر هو سحب تٌار اكبر اما على‬

‫الحمل فلن توثر اذا كان المصدر ذو سعة عالٌة اما اذا كان المصدر محدود السعة فمد ٌودي الى انخفاض التٌار فً الحمل‬

‫اما ربطها على التوالً مع الحمل فان ذلن سٌخفض التٌار المادم من المصدر وٌودي الى انخفاض الجهد عبر الحمل‬

‫المربوطة معه هذا اك ادٌمٌا اما عملٌا فغالبا تستخدم المماومه للحد من لٌمة التٌار فمثال المماومة المستخدمة فً االرضً تبع‬

‫المحوالت هو لتخفٌض لٌمة تٌار الخط المتعادل كذلن توضع بعض االنواع من المماومات فً المحركات لتعمل كمتحسس‬

‫للتٌار العالً حٌث تحمً الملفات من زٌادة التار وفً الحمٌمة للمماومة تطبٌمات كثٌرة جدا‬

‫الخالصة\ المماومة تعمل على التملٌل من شدة التٌار وزٌادة فرق الجهد فً الدائره الكهربائٌة و بالتالً تحمٌها من التٌار‬

‫العالً‪.‬‬

‫‪12‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫الكائن‪ : STRING‬تنشئ الدالة )(‪ STRING‬نسخةً من الصنف ‪ STRING‬الذي ٌوفِّر الكثٌر من األدوات للتعامل مع السالسل النصٌة‬
‫وإجراء عملٌات علٌها‪.‬‬

‫‪ : ARRAY‬المصفوفة هً مجموعة من المتغٌرات والثوابت الموضوعة فً وعاء واحد والتً ٌمكن الوصول إلٌها والتعامل معها عبر رلم‬
‫فهرس ك ٍّل منها‪.‬‬

‫ٌصرح عنه بأنَّه من النوع ‪ BOOL‬إحدى المٌمتٌن المنطمٌَّتٌن التالٌتٌن‪ ،: TRUE‬أو ‪ FALSE‬عبر حجز باٌ ٍ‬
‫ت‬ ‫َّ‬ ‫‪ّ ِ : BOOL‬‬
‫ٌخزن المتغٌر الذي‬
‫واح ٍد من الذاكرة فمط‪.‬‬

‫عرف فً أردوٌنو‪.‬‬
‫‪ : BOOLEAN‬النوع ‪ BOOLEAN‬هو نوع غٌر لٌاسً‪ ،‬وهو اس ٌم بدٌل للنوع ‪ BOOL‬ال ُم َّ‬

‫‪ّ ِ ٌ : BYTE‬‬
‫ُخزن النوع ‪ BYTE‬عددًا عدٌم اإلشارة بحجم ‪ 8‬بت‪.‬‬

‫ِّ‬
‫وٌخزن فٌه لٌمة محرف محدَّد‪.‬‬ ‫‪ٌ : CHAR‬حجز النوع ‪ CHAR‬باٌتًا واحدًا من الذاكرة‬

‫‪ٌ : DOUBLE‬حجز النوع ‪ DOUBLE‬أربعة باٌتات من الذاكرة فمط فً لوحات أردوٌنو( ‪ UNO‬والتً تعتمد على متحكمات )‪ATMEGA‬‬
‫أو ثمانٌة باٌتات فً اللوحات ‪ DUE‬لتخزٌن عدد عشري فٌها‪.‬‬

‫‪ٌ : FLOAT‬حجز النوع ‪ FLOAT‬أربعة باٌتات من الذاكرة لتخزٌن عدد عشري فٌها‪.‬‬

‫‪ٌ : INT‬حجز النوع ‪ INT‬حج ًما ممداره ‪ 2‬باٌت من الذاكرة فً لوحات أردوٌنو( ‪ UNO‬وتلن التً تعتمد على متحكمات )‪ ATMEGA‬أو ‪4‬‬
‫باٌت فً لوحات أردوٌنو( ‪ DUE‬وتلن التً تعتمد على متحكمات )‪ SAMD‬لتخزٌن عدد صحٌح فٌه‪.‬‬

‫كبٌرا من الذاكرة ممداره ‪ 4‬باٌت ٌُستع َمل لتخزٌن األعداد التً تتسم بأنَّها طوٌلة‪.‬‬
‫‪ : LONG‬تحجز النوع ‪ LONG‬حج ًما ً‬

‫‪ٌ : SHORT‬حجز النوع ‪ SHORT‬فً جمٌع لوحات أردوٌنو (التً تعتمد على المتحكمات ‪ ATMEGA‬و )‪ ARM‬حج ًما من الذاكرة ممداره‬
‫‪ 2‬باٌت لتخزٌن عدد لصٌر فٌه‪.‬‬

‫‪ٌ : STRING‬مثِّل النوع ‪ STRING‬سلسلةً نصٌةً مؤلفةً من عدة محارف مرتبطة مع بعضها بعضًا‪ .‬تُستع َمل مصفوفة من المحارف لتخزٌن‬
‫هذا النوع من البٌانات واستدعائها والتعامل معها الحمًا‪.‬‬

‫‪ٌ : UNSIGNED CHAR‬حجز النوع ‪ UNSIGNED CHAR‬حج ًما من الذاكرة ممداره ‪ 1‬باٌت فمط‪.‬‬

‫‪ٌ : UNSIGNED INT‬حجز النوع ‪ UNSIGNED INT‬حج ًما من الذاكرة ممداره ‪ 2‬باٌت فً لوحات أردونٌو ‪ UNO‬واللوحات التً تعتمد‬
‫على متحكمات ‪ ATMEGA‬أو ‪ 4‬باٌت فً لوحات أردوٌنو ‪ DUE‬لتخزٌن عدد صحٌح عدٌم اإلشارة فٌها‪.‬‬

‫كبٌرا من الذاكرة ممداره ‪ 4‬باٌت ٌُستع َمل لتخزٌن األعداد عدٌمة‬


‫‪ٌ : UNSIGNED LONG‬حجز النوع ‪ UNSIGNED LONG‬حج ًما ً‬
‫اإلشارة التً تتسم بأنَّها طوٌلة‪.‬‬

‫ُعرفها المبرمج فً الشٌفرة لتُشٌر إلى أنَّه ال ٌُتولَّع أن تعٌد هذه الدالة بعد انتهاء‬
‫‪ : VOID‬تُستع َمل الكلمة المفتاحٌة ‪ VOID‬مع الدوال التً ٌ ِ ّ‬
‫تنفٌذها أٌَّة بٌانات إلى من استدعاها‪.‬‬

‫‪ : WORD‬ت ُ ِ ّ‬
‫خزن المتغٌرات التً من النوع ‪ WORD‬عددًا عدٌم اإلشارة بحجم ‪ 2‬باٌت‪.‬‬

‫‪13‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫‪Project 1‬‬
‫‪LED‬تشغٌل واطفاء‬

‫مالحظة ‪ :‬دائما المنفذ السالب ٌوصل بإحد منافذ ‪GND‬‬

‫لمعرفة المهفذ السالب أو الموجب في ال ‪ LED‬الصغيرة‬


‫يوجد طريقتين كما موضح في الصورة‬

‫المكونات‬

‫‪Led‬‬ ‫‪-1‬‬
‫مقاومة‬ ‫‪-2‬‬
‫اردويهو ‪UNO‬‬ ‫‪-3‬‬
‫‪Breadboard‬‬ ‫‪-4‬‬
‫اسلاك توصيل‬ ‫‪-5‬‬

‫‪14‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫بالنسبة لدالة ‪ setup‬هً دالة التهٌئة من خاللها ٌتم تهٌئة المنفذ‬


‫‪ .‬وٌتم تنفٌذها مرة واحدة فمط عندما ٌتم تشغٌل الكود على االردوٌنو‬
‫أول مرة‪ .‬دالة )‪ pinMode(13,OUTPUT‬تحمل‬
‫بداخلها متغٌرٌن االول ٌشٌر إلى رلم المنفذ (‪ )13‬واالخر ٌحدد نوعه‬
‫)‪(INPUT‬أو)‪(OUTPUT‬‬

‫األمر ‪ٌ digitalWrite‬عمل على اخراج اشارة كهربائٌة على‬


‫الطرف ‪ HIGH= 5v ( 13‬او ‪ ) LOW =0v‬وبما ان المخرج‬
‫‪ 13‬متصل ب ضوء فً األردوٌنو فسوف ترى هذا الضوء ٌعمل‬

‫األمر ‪ٌ delay‬عمل على تـخٌر زمنً لمدة ‪ 1‬ثانٌة‬


‫‪ 1000‬مٌللً ثانٌة = ‪ 1‬ثانٌة‬

‫وذلن اننا لو شغلنا الضوء و أطفأناه بدون تأخٌر فلن نالحظ الومٌض‬
‫بسبب سرعة األردوٌنو‬
‫سوف ٌستمر هكذا الكود طوال فترة اتصاله بالطالة وهو تشغٌل‬
‫واطفاء اللٌد كل ثانٌة‬

‫لتشغٌل التجربة او االطالع علٌها وتعدٌلها اضغط على الصورة المصغرة ادناه‬

‫‪15‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬
‫تجربة عمل اشارة المرور‬

‫‪Project 2‬‬
‫المكونات‬

‫‪ Led‬عدد ‪3‬‬ ‫‪-1‬‬


‫مقاومة عدد ‪3‬‬ ‫‪-2‬‬
‫اردويهو ‪UNO‬‬ ‫‪-3‬‬
‫‪Breadboard‬‬ ‫‪-4‬‬
‫‪ -5‬اسلاك توصيل‬

‫‪16‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫دالة اإلعداد ‪ ,‬تعمل مرة واحدة عند التشغٌل او اعادة‬


‫التشغٌل‬

‫تم تعرٌف ثالث منافذ مخرجات ‪ OUTPUT‬التً‬


‫سوف تعطٌنا اشارة كهربائٌة بمٌمة ‪5V‬‬

‫اما األوامر البرمجٌة المتبقٌة تتكرر طوال فترة اتصال‬


‫األردوٌنو بالطاقة‬
‫‪1‬‬
‫هنا كال االوامر متشابهة ومتكررة سوف نشرح الفكرة‬
‫االساسٌة من االوامر وما علٌك سوى تطبٌقها والتعدٌل‬

‫‪2‬‬ ‫علٌها من أجل الممارسة والتعلم من اخطائك‬

‫‪ -1‬هذا االمر من اجل تشغٌل ال ‪ led‬االحمر‬


‫والذي متصل بمنفذ ‪ 13‬ثم امر االنتظار ‪3‬‬
‫ثوانً لتنفٌذ االمر التالً‬
‫‪3‬‬ ‫‪ -2‬تشغٌل ال ‪ led‬االصفر والذي متصل بمنفذ ‪7‬‬
‫ثم امر االنتظار ثانٌة واحدة لتنفٌذ االمر التالً‬
‫‪ -3‬إطفاء المنفذ ‪ 13‬و ‪ 7‬اي ال ‪ led‬االحمر‬
‫واالصفر‬

‫‪4‬‬ ‫‪ -4‬تشغٌل ال ‪ led‬االخضر والذي متصل بمنفذ ‪2‬‬


‫ثم االنتظار ‪ 3‬ثوانً لٌنتمل الى المر التالً وهو‬
‫تشغٌل ال ‪ led‬االصفر ثم االنتظار ثانٌة‬
‫واحدة لالنتمال الى االمر التالً‬
‫‪5‬‬ ‫‪ -5‬إطفاء المنفذ ‪ 2‬اي ال ‪ led‬االخضر واالنتظار‬
‫لمدة نصف ثانٌة من اجل العودة لبداٌة الكود‬
‫لتنفٌذه من جدٌد اي الى النمطة رلم ‪ 1‬اعاله‬

‫لتشغٌل التجربة او االطالع علٌها وتعدٌلها اضغط على الصورة المصغرة ادناه‬

‫‪17‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬
‫تشغٌل وإطفاء ‪ led 13‬على التوالً‬
‫‪Project 3‬‬ ‫الفكرة من هذه التجربة توضٌح الٌة عمل التكرار بواسطة ‪for‬‬

‫لو كتبنا كود هذه التجربة كما فً التجربة السابقة لكتبنا ‪ 55‬سطر برمجً‬

‫لكن باستخدام هذه الطرٌمة كتبنا بعدد اسطر ال ٌتجاوز ال ‪10‬‬

‫المكونات‬

‫‪ Led‬عدد ‪13‬‬ ‫‪-1‬‬


‫مقاومة عدد ‪13‬‬ ‫‪-2‬‬
‫اردويهو ‪UNO‬‬ ‫‪-3‬‬
‫‪Breadboard‬‬ ‫‪-4‬‬
‫‪ -5‬اسلاك توصيل‬

‫‪18‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫هذا الجزء من البرنامج ٌنفذ مره واحده عند اتصاله بالطالة‬


‫حٌث تم تعرٌف متغٌر )‪ (I‬والذي لٌمته من (‪ 0‬الى ‪)13‬‬
‫وٌزداد بممدار ‪ 1‬وذلن من اجل تعرٌف ‪ 13‬متغٌر‬
‫كمخرجات‬

‫اما هذا الجزء ٌتم تكرار تنفٌذه باستمرار اتصاله بالطالة‬

‫حٌث كتبنا االمر االول وهو تشغٌل اللٌد ذو المنفذ ‪ A‬حٌث‬


‫‪ A‬هو متغٌر من ‪ 13 – 0‬وكما وضحنا اعاله الدالة ‪FOR‬‬
‫تموم بتكرار الكود وٌزداد رلم المنفذ فً كل مره حتى ٌتحمك‬
‫الشرط والذي هو ‪ A<=13‬عند تحمك الشرط ٌذهب الى‬
‫تنفٌذ االمر الذي ٌلٌه‬

‫لمشاهدة التجربة و تشغٌلها او التعدٌل علٌها اضغط على الصورة ادناه‬

‫‪19‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫الحلقة ‪ for‬من الممكن تشبٌهها بأنها عداد ٌنتهً عند وصول هذا العداد الى رقم معٌن‬

‫الصٌغة العامة ‪:‬‬

‫)‪for ( expr1 ; expr2 ; expr3‬‬


‫{‬
‫;‪statement1‬‬
‫;‪statement2‬‬
‫;‪statement3‬‬
‫}‬

‫حٌث ان ‪:‬‬
‫‪ : expr1‬هو القٌمة االبتدائٌة للتكرار‬
‫‪ : expr2‬وهو الشرط‬
‫‪ : expr3‬وهو الزٌادة بعد كل دورة‬

‫هذه الصورة توضح الٌة عملها ببساطة‬

‫‪20‬‬
Hassan karim & Zahraa Hussein ‫اردوينو بالعربي‬
PUSH BUTTON ‫ بواسطة‬LED ‫تشغٌل واطفاء‬

Project 4 ‫المكونات‬

1 ‫ عدد‬Led -1
1 ‫مقاومة عدد‬ -2
UNO ‫اردويهو‬ -3
Breadboard -4
‫ اسلاك توصيل‬-5

Push button -6

21
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫تم تعرٌف متغٌرٌن من نوع ‪ BYTE‬ألنه ٌخزن بحجم ‪ 8‬بت‬


‫‪1‬‬
‫المتغٌر االول من اجل تعرٌف زر التشغٌل والذي ٌكون ضمن‬
‫المدخالت اي ان المنفذ ‪ 7‬سوف ٌستمبل االشارة عند الضغط على‬
‫الزر اما المتغٌر الثانً وهو من المخرجات لتشغٌل ‪LED‬‬

‫‪2‬‬ ‫‪ -1‬فً هذا الجزء تم اختٌار منفذٌن المنفذ االول للمدخالت اي عند‬
‫الضغط على الزر تتولد اشارة تستلمها بطالة االردوٌنو عن‬
‫طرٌك المنفذ رلم ‪ٌ 7‬مكنن مشاهدة صورة الرابط اعاله‬
‫‪3‬‬
‫للفهم اكثر‬
‫‪ -2‬فً هذا الجز من الكود عرفنا متغٌر من نوع ‪BOOLEAN‬‬
‫والتً تحمل لٌمتٌن فمط اما ‪ TRUE‬اي ‪ 1‬وذلن عندما نضغط على الزر تتولد اشارة لٌمتها ‪ 5V‬اي تحمك الشرط‬
‫فً حال عدم الضغط على الزر اي ان لٌمة المتغٌر ‪ FALSE‬اي ‪ 0‬مما ٌعنً عدم تولد اي اشارة ٌعنً ‪0V‬‬
‫‪ -3‬كما ذكرنا فً النمطة السابمة عندما ٌتحمك الشرط ٌنفذ االمر الخاص بتشغٌل ال ‪ LED‬وعندما لم ٌتحمك اي عند عدم الضغط ٌنفذ الشرط‬
‫بعد ‪ ELSE‬اي اطفاء ال ‪LED‬‬

‫لمشاهدة التجربة و تشغٌلها او التعدٌل علٌها اضغط على الصورة ادناه‬

‫‪22‬‬
Hassan karim & Zahraa Hussein ‫اردوينو بالعربي‬

23
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬
‫تشغٌل ‪ LED 3‬بالتتابع عن طرٌق ‪PUSHPUTTON‬‬

‫‪Project 5‬‬ ‫الهدف من التجربة اعادة الممارسة للدالة ‪ IF‬وكذلك استخدام دالة جدٌدة وهً ‪SWITCH CASE‬‬

‫المكونات‬

‫‪ Led‬عدد ‪3‬‬ ‫‪-1‬‬


‫مقاومة عدد ‪3‬‬ ‫‪-2‬‬
‫اردويهو ‪UNO‬‬ ‫‪-3‬‬
‫‪Breadboard‬‬ ‫‪-4‬‬
‫‪ -5‬اسلاك توصيل‬

‫‪Push button -6‬‬

‫‪24‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫‪1‬‬

‫‪ -1‬فً هذا المسم عرفنا ‪ 5‬متغٌرات من نوع‬


‫‪ BYTE‬واالول كان للزر الخاص بالتشغٌل‬
‫‪2‬‬
‫فً المنفذ ‪ 4‬والثانً والثالث والرابع فً‬
‫المنافذ ‪ 5‬و ‪ 6‬و‪ 7‬لتشغٌل ال ‪LEDS‬‬
‫اما المتغٌر االخٌر ‪ COUNTER‬هو‬
‫عداد اي لٌمته متغٌرة كما سوف نشرحه فً‬
‫النمطة ‪ 3‬ادناه‬

‫‪3‬‬ ‫‪ -2‬هذا الجزء من البرنامج كما اتفمنا ٌتم تنفٌذه‬


‫مره واحدة ومن خالله ٌتم تعرٌف المدخالت‬
‫والمخرجات حٌث تم تعرٌف مجموعة ال‬
‫‪ LEDS‬مخرجات بٌنما تم تعرٌف ال‬
‫‪4‬‬ ‫‪ BUTTON‬كمدخالت فً المنفذ ‪4‬‬

‫‪ -3‬هنا الجزء المهم من الكود اما فً السطر‬


‫األول تم تعرٌف متغٌر ذو لٌمتٌن ‪ true‬او ‪ false‬هذا المتغٌر ٌمرأ لٌمة المنفذ رلم ‪ 4‬اي كما شرحنا فً التجارب السابمة اما ‪true‬‬
‫والتً تمثل الضغط على الزر او ‪ false‬وتعنً عدم الضغط‬

‫‪ -4‬فً حال ضغطنا على الزر ٌتحمك الشرط وٌتم تنفٌذ االمر الذي بعده وهو زٌادة لٌمة العداد ‪counter‬‬

‫كما موضح اعاله تم اعطاء لٌمة ‪ 0‬للعداد اي عندما نضغط على الزر ٌزداد العداد بمٌمة ‪1+‬‬

‫استخدمنا الدالة ‪ switch case‬والٌكم الٌة عملها‬


‫االمر )‪ٌ switch (counter‬عنً وبسهولة اختبر لٌمة ال ‪counter‬‬
‫‪ case1‬وتعنً اذا كانت لٌمة ال ‪ counter‬هً ‪ 1‬شغل ال ‪ led‬االصفر‬
‫عند الضغط مرة ثانٌة على الزر سوف ٌزداد العداد كما موضح فً هذه النمطة اعاله لتصبح لٌمة ال ‪ counter‬هً ‪ 2‬وٌتم تنفٌذ الحلة‬
‫الثانٌة اي ‪ case2‬وعند الضغط مرة ثالثة ٌزداد العداد وٌتحمك الشرط لتنفٌذ الحالة الثالثة ‪case3‬‬

‫مما ٌؤدي الى تشغٌل ال ‪ LED‬االول ثم الثانً ثم الثالث‬

‫لمشاهدة التجربة و تشغٌلها او التعدٌل علٌها اضغط هنا‬

‫‪25‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫إذا كانت لدٌن شجرة لرارات كبٌرة ‪ ,‬وكلها تعتمد علً لٌم مختلفة لنفس المتغٌر ‪ ,‬فإن صٌغة العبارة ‪ switch‬تكون أكثر مالءمة‪.‬‬

‫الكلمة الحاكمة ‪break‬‬

‫بعد كل اختٌار ‪ ,‬توضع الكلمة الحاكمة ‪break ,‬‬

‫وهً تدفع بالبرنامج للخروج من مجموعة الخٌارات‬

‫إلً خارجها ‪ ,‬أي إلً أول سطر بعد الموس الحلزونً‬

‫المحدد للكتلة الخاصة بها ‪ ,‬وهو فً برنامجنا هذا‬

‫نهاٌة البرنامج ‪ .‬فمعنً ذلن أنه بعد تنفٌذ الخٌار‬

‫المطلوب ٌنتهً عمل مجموعة الخٌارات ‪ ,‬وٌسٌر‬

‫البرنامج بعد ذلن فً طرٌمه ‪ .‬فإذا ما حدث ونسٌت‬

‫هذه الكلمة ‪ ,‬ستجد أنن بعد تنفٌذ خٌارن ‪ ,‬دخلت فً‬

‫الخٌار التالً تلمائٌا ‪ ,‬وٌسٌر البرنامج فً غٌر‬

‫الطرٌك الذي رسم له‪.‬‬

‫‪26‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫ٌحتوي االردوٌنو على اكثر من مخرج من الممكن استخدامها للحصول على موجات ‪ٌ PWM.‬ستخدم األمر ‪ analogWrite‬للحصول على‬
‫هذه الموجات على المخرج المحدد باألمر وبـ ‪ duty cycle‬المحددة فً األمر أٌضا ً‪.‬‬

‫ٌمكن تحدٌد ‪ duty cycle‬تتراوح بٌن ‪ 0‬و ‪ ,255‬حٌث تمثل المٌمة ‪ 255‬النسبة ‪ %100‬أي إن فولتٌة المخرج المحدد ستكون مساوٌة لفولتٌة‬
‫االردوٌنو فً حٌن تثمل المٌمة ‪ 0‬النسبة ‪ %0‬أي إن فولتٌة المخرج ستكون صفر فولت‪ .‬للحصول على فولتٌة تساوي نصف فولتٌة المصدر على‬
‫المخرج رلم ‪ 3‬نستخدم األمر‪analogWrite (3,127).‬‬

‫ٌُمكنن التحكم فً شدة إضاءة ‪ leds‬المضٌئة عن طرٌك تعدٌل لٌمة دورة العمل‪ .‬إذا كان لدٌنا دٌود مضًء ‪ٌ( RGB‬صدر األلوان‪ :‬أحمر‬
‫(‪ ،)red‬أخضر (‪ ،)green‬أزرق (‪ٌُ ))blue‬مكننا التحكم فً كمٌة كل لون من األلوان الثالثة ضمن مزٌج األلوان عن طرٌك إعتام كل منها‬
‫بدرجات متفاوتة‪ .‬حسب المواعد األساسٌة لمزج األلوان الرئٌسٌة‬

‫فً أغلب لوحات األردوٌنو تعمل هذه الدالة على المنافذ‬


‫‪ 3‬و ‪ 5‬و ‪ 6‬و ‪ 9‬و ‪ 10‬و ‪ .11‬أي التً تحمل عالمة‬
‫(~ )‬

‫الكثٌر من المشارٌع والتجارب التً سوف نستخدم فٌها خاصٌة تعدٌل عرض النبضة او الموجة‬

‫‪27‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫التحكم بشدة االضاءة من خالل ‪putton‬‬


‫‪Project 6‬‬
‫المكونات‬

‫‪ Led -1‬عدد ‪0‬‬


‫‪ -2‬مقاومة عدد ‪0‬‬
‫‪ -3‬اردوٌنو ‪UNO‬‬
‫‪Breadboard -4‬‬
‫اسالك توصٌل‬ ‫‪-5‬‬
‫‪Push button‬‬ ‫‪-6‬‬

‫‪28‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫‪1‬‬

‫‪ -1‬فً هذا المسم تم تعرٌف ‪ 4‬متغٌرات االول والثانً فً‬


‫‪2‬‬
‫المنفذٌن ‪ 6‬و ‪ 7‬كمخرجات لل ‪ button‬اما ال ‪ led‬من‬

‫اجل تشغٌل الضوء فً المنفذ ‪9‬‬

‫واخٌرا المتغٌر ‪ light‬ولبذي ٌأخذ لٌمة ‪ 25‬سوف ٌتم‬

‫شرح الفائدة منه‬

‫‪3‬‬ ‫‪ -2‬تم تعرٌف المخرجات وهما ال ‪ led‬وال االزرار التً‬

‫مهمتهما زٌادة وتملٌل شدة الضوء‬

‫‪ -3‬فً هذا المسم من الكود استخدمنا الشرط ‪ if‬اي ان فً‬


‫‪4‬‬
‫حال ضغطنا على الزر االول والذي رمزه ‪ b1‬سوف ٌتم‬

‫زٌادة لٌمة ال ‪ light‬بممدار ‪20‬‬

‫واذا ضغطنا على الزر ‪ b2‬سوف تمل لٌمة ال ‪ light‬بممدار ‪20‬‬

‫كما اتفمنا ان‬

‫ٌمكن تحدٌد ‪ duty cycle‬تتراوح بٌن ‪ 0‬و ‪ ,255‬حٌث تمثل القٌمة ‪ 255‬النسبة ‪ %100‬أي إن فولتٌة المخرج المحدد ستكون مساوٌة‬

‫لفولتٌة االردوٌنو فً حٌن تثمل القٌمة ‪ 0‬النسبة ‪ %0‬أي إن فولتٌة المخرج ستكون صفر فولت‪ .‬للحصول على فولتٌة تساوي نصف فولتٌة‬

‫المصدر على المخرج رقم ‪ 3‬نستخدم األمر‪ analogWrite (3,127).‬راجع صفحة ‪27‬‬

‫‪ -4‬االمر ) ‪ analogWrite ( led , hight‬لمراءة ممدار الزٌادة او النمصان ومن خاللها تنتج شدة او ضعف االضاءة فً ال ‪led‬‬

‫ثم ٌنتظر ثانٌة واحدة لتنفٌذ االمر التالً والتً ٌكون اما زٌادة او نمصان فً شدة االضاءة تبعا لضغطة الزر‬

‫لمشاهدة التجربة و تشغٌلها او التعدٌل علٌها اضغط هنا‬

‫‪29‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫انواع الحساسات والمطع‬

‫‪ -1‬الحساسات‬

‫حساس درجة الحرارة مثال ‪ٌ lm35‬مكننا التعرف على درجة حرارة الغرفة او لٌاس اي حرارة فً التجارب المختلفة‬

‫حساس الضوء او المماومة الضوئٌة وتسمى ‪ٌ LDR‬مكننا معرفة نسبة االضاءة من خالل هذا الحساس‬

‫حساس المسافة التراسونٌن ٌمكن تحسس بعد االجسام بالسنتٌمتر بواسطة ارسال‬

‫الموجات الفوق الصوتٌة لد ٌستخدم فً انظمة اإلنذار او فً روبوت تخطً‬

‫العمبات‬

‫باإلضافة الى الكثٌر من الحساسات سوف نتعرف علٌها الحما‬

‫‪30‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫الدالة ‪begin‬‬
‫تستخدم هذه الدالة لفتح منفذ االتصال‪ ،‬وهً تأخذ بٌن لوسٌها رلم ٌمثل رلم المنفذ حٌث ان لكل نوع من‬
‫االتصال له رلم خاص به‪ ،‬وهذه الدالة اجبارٌة إذا كنا نرٌد ان نعمل اتصال وٌجب ان تكتب فً المرحلة‬
‫الثانٌة أي فً داخل الدالة ‪ ، void setup‬مثال‪:‬‬
‫;)‪Serial.begin(9600‬‬
‫الرلم ‪ٌ 9600‬مثل منفذ االتصال بالحاسوب عبر ال ‪ serial monitor‬وٌستخدم نفس هذا المنفذ لالتصال‬
‫عبر البلوتوث ‪ HC-06‬اما لطعة البلوتوث ‪ HC-05‬رلم المنفذ لها هو‪38400 .‬‬

‫الدالة ‪PRINT‬‬

‫تستخدم هذه الدالة إلرسال لٌم الى الحاسب االلً ) او أي جهاز سٌستمبل البٌانات ( لعرضها على بٌئة‬

‫التطوٌر باستخدام ‪ SERIAL MONITOR‬او حسب نوع الجهاز المستلم‪ ،‬مثال‪:‬‬

‫;)‪SERIAL.PRINT(VOLTAGE‬‬

‫حٌث ان ‪ VOLTAGE‬هو متغٌر معرف مسبما ٌحمل لٌمة فولتٌة‪ ،‬وهنا سترسل لٌمة هذا المتغٌر لٌستمبلها‬

‫الجهاز االخر ( وإذا كانت عبر ال ‪ SERIAL MONITOR‬فان لٌمة المتغٌر ستعرض على الشاشة )‪.‬‬

‫الدالة ‪PRINTIN‬‬

‫تستخدم هذه الدال ة ألرسال لٌمة عبر منفذ االتصال للجهاز المتصل باالردوٌنو من خالل ال ‪ USB‬على بٌئة‬

‫التطوٌر ‪ SERIAL MONITOR‬او عبر البلوتوث‪ ،‬فرله عن الدالة السابمة هو ان هذا االمر ٌطبع فً سطر جدٌد‪،‬‬

‫مثال‪:‬‬

‫;) “‪SERIAL.PRINTIN(“ HELLO‬‬

‫‪31‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫الدالة ‪read‬‬

‫ٌستخدم هذا االمر الستالم لٌم من الجهاز االخر المتصل باالردوٌنو ) الحاسب االلً او غٌره ( الى‬
‫االردوٌنو عبر المنفذ المفتوح‪ ،‬مثال‪:‬‬
‫;)(‪int X = Serial.read‬‬

‫هنا سٌتم تخزٌن المٌمة المرسلة من الجهاز االخر ) الحاسوب او غٌره ( فً المتغٌر ‪ ، X‬الحظ ان المتغٌر‪x‬‬
‫هو من النوع ‪ int‬ألنه أي حرف او رلم ٌرسله الجهاز االخر سٌتم تحوٌله الى رلم ال ‪ ASCII‬الخاص به‪،‬‬
‫وسٌتم استمبال كل حرف على حدة أي حرف بعد حرف‪.‬‬

‫الدالة ‪readString‬‬

‫ٌستخدم هذا االمر الستالم لٌم من الجهاز االخر المتصل باالردوٌنو ) الحاسب االلً او غٌره ( الى‬
‫االردوٌنو عبر المنفذ‪ ،‬مثال‪:‬‬
‫;)( ‪String X = Serial. readString‬‬
‫هنا سٌتم تخزٌن المٌمة المرسلة من الحاسوب فً المتغٌر ‪ ، X‬الحظ ان المتغٌر ‪ x‬هو من النوع ‪ String‬ألنه‬
‫أي حرف او رلم ٌرسله الجهاز االخر سٌتم استمباله على شكل متغٌر نصً‪.‬‬

‫‪32‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫‪ Project 7‬حساس درجة الحرارة‬


‫‪Project 7‬‬
‫المكونات‬

‫‪ -1‬حساس حرارة ‪LM35‬‬


‫‪ -2‬اردوٌنو ‪UNO‬‬
‫‪Breadboard -3‬‬
‫اسالك توصٌل‬ ‫‪-4‬‬

‫شرح الربط‬

‫اوال‪ :‬اٌصال الطرف الموجب من جهة الٌسار كما موضح فً الصورة مع ‪ 5‬فولت لالردوٌنو‬

‫ثانٌا‪ :‬اٌصال الطرف السالف من جهة الٌمٌن كما موضح فً الصورة مع ‪ GND‬الخاص باالردوٌنو‬

‫ثالثا ‪ :‬اٌصال الرف الذي فً الوسط الخاص بإستمبال المراءة التماثلٌة من الحساس بالمنفذ ‪ A5‬او اي منفذ من المنافذ التماثلٌة من ‪ A0‬ال ‪A5‬‬

‫‪33‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫‪1‬‬
‫قبل البدء بشرح الكود انصحكم بالرجوع الى صفحة ‪ 31‬و ‪ 32‬من‬

‫اجل مراجعة عمل الدوال‬

‫‪2‬‬ ‫‪ -1‬الدالة ;)‪ SERIAL.BEGIN(9600‬تستخدم هذه الدالة لفتح‬

‫منفذ االتصال مع الحاسوب حٌث لكل اتصال رلم منفذ خاص به‬
‫‪3‬‬
‫الرلم ‪ٌ 9600‬مثل منفذ االتصال بالحاسوب عبر ال ‪serial‬‬

‫‪monitor‬‬

‫‪ -2‬تم تعرٌف متغٌر ٌمبل الفواصل العشرٌة من نوع ‪ double‬هذا‬


‫‪4‬‬
‫المتغٌر ٌمرأ المٌم التماثلٌة التً ٌرسلها الحساس الى بطالة‬

‫االردوٌنو‬

‫‪ٌ -3‬تم ضرب ناتج المراءة بهذا الرلم ‪ 0.48828125‬وذلن للتحوٌل من الفولتٌه الى درجة الحرارة حسب منحنً ربط الفولتٌة بدرجة الحرارة‬

‫اما االمر التالً ;)‪ Serial.println(temp‬لطباعة نتائج المراءة كما موضح فً الصندوق رلم ‪ 4‬ثم االنتظار ثانٌة واحده لطباعة المراءه‬

‫التالٌه‬

‫‪ -4‬هنا نتٌجة لراءة الحساس‬

‫لمشاهدة التجربة و تشغٌلها او التعدٌل علٌها اضغط هنا او على الصورة‬

‫‪34‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫المماومة الضوئٌة لتحسس شدة الضوء ‪LDR‬‬


‫‪Project 8‬‬
‫المكونات‬

‫‪ -1‬مقاومة ضوئٌة ‪LDR‬‬


‫‪ -2‬اردوٌنو ‪UNO‬‬
‫‪Breadboard -3‬‬
‫اسالك توصٌل‬ ‫‪-4‬‬

‫‪35‬‬
‫‪Hassan karim & Zahraa Hussein‬‬ ‫اردوينو بالعربي‬

‫‪1‬‬
‫قبل البدء بشرح الكود انصحكم بالرجوع الى صفحة ‪ 31‬و ‪ 32‬من اجل‬

‫مراجعة عمل الدوال‬

‫‪ -1‬الدالة ;)‪ SERIAL.BEGIN(9600‬تستخدم هذه الدالة لفتح‬


‫‪2‬‬
‫منفذ االتصال مع الحاسوب حٌث لكل اتصال رلم منفذ خاص به‬
‫‪3‬‬
‫‪4‬‬ ‫الرلم ‪ٌ 9600‬مثل منفذ االتصال بالحاسوب عبر ال ‪serial‬‬

‫‪monitor‬‬

‫‪ -2‬تم تعرٌف متغٌر من نوع ‪ integer‬هذا المتغٌر ٌمرأ المٌم‬

‫التماثلٌة التً ترسلها المماومة الضوئٌة الى بطالة األردوٌنو‬


‫‪5‬‬
‫‪ -3‬الدالة ‪ٌ Serial.printin‬مكننا من خالل هذه الدالة طباعة عبارة‬

‫او كلمة توضٌحٌة‬

‫كما نستخدمها لطباعة المراءات الخاصة بالحساس او المستشعر كما موضح فً رلم ‪5‬‬

‫‪ٌ -4‬نتظر فترة ‪ 1‬ثانٌة من اجل طباعة المراءة التالٌة‬

‫‪ Serial Monitor -5‬المرالب التسلسلً وهً النافذة التً من خاللها نتعرف على لراءة الحساس وحسب االمر الذي نعطٌه كما‬

‫فٌشرح نمطة ‪3‬‬

‫لمشاهدة التجربة و تشغٌلها او التعدٌل علٌها اضغط هنا او على الصورة‬

‫‪36‬‬
Hassan karim & Zahraa Hussein ‫اردوينو بالعربي‬

37
Hassan karim & Zahraa Hussein ‫اردوينو بالعربي‬

38

You might also like