Loading...

BTC Address to donate : [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]

zero cool عضو جديد
  • شكراً: 5
  • تم شكره 66 مرة في 13 مشاركة




السلام عليكم ورحمة الله وبركاته



إن شاء الله تكونوا في تمام الصحة والعافية إخواني

في هذا الدرس الثاني إخواني بإذن الله




حنقوم عمل نفس montage المشروع الأول كما في الصورة (يعني لن نحتاج لشرح جزء الهاردوير) ، لكن حنقوم

بإستعمال كود مختلف لنجعل المصباح يقوم بإضائة إشارة النجدة S.O.S المتفق عليها عالميا .

هذه الإشارة على شكل رموز مشفرة تحتوي على حروف وأرقام مع إستعمال أنماط مختلفة من ON و OFF

فحنقوم إذا بجعل المصباح مضيء وطافئ في أنماط محددة .

بالنسبة لشكل S.O.S هي عبارة عن :

3 إشارات ضوئية قصيرة تليها 3 إشارات ضوئية طويلة ، تليها 3 إشارات ضوئية قصيرة (3dits) .

لإضائة المصباح وإطفائه أي جعله مرة ON ومرة

OFF
على هذا النمط ليشير إلى S.O.S

حنستعمل الكود project2.ino موجود في المرفقات .


قم بإنشاء سكاتش جديد وإنسخ الكود ثم إضغط على verify لفحص الكود من الأخطاء ثم إرسله للكارد

أردينو . إذا كان كل شيء تمام حتشوف المصباح يشير إلى إشارة النجدة S.O.S

ثم ينتظر 5 ثواني ثم يعيد الكرة .

طيب نستطيع أيضا أن نركب باطرية إلى الأردينو(ذلك لأن الأردينو يوفر فقط 5 فولت عبر ) مع مصباح

يضيء ضوء ساطع ونضع المصباح داخل صندوق محمول و مضاد للماء .

ويمكن إستعمال ذلك للتنفيذ إشارة النجدة S.O.Sفي الحالات الطارئة

بإضائة قوية كالتي تستعمل في الجبال ، أو في القوارب ...إلخ.




شرح الكود




بالنسبة للقسم الأول من الكود كنا قد شفنا مثيله في المشروع السابق عندما قمنا بتعريف متغير ووضعنا المنفذ 10 ك (output)

في كود الوضيفة main loop لدينا نفس النوع من التعريفات لجعل المصباح مرة on ومرة off لمدة زمنية محددة .

ولكن الآن التعريفات موجودة في 3 بلوكات مفصولة عن بعض .

==> ناتج البلوك الأول هو إشارات ضوئية قصيرة

كود:
  
for (int x=0; x<3; x++) {
  digitalWrite(led, HIGH); 
  delay(400); 
  digitalWrite(led, LOW); 
  delay(100); 
}
نشوف أن المصباح يبقى on (أي مضيئ) لمدة 150 ms ثم يصبح off (أي طافئ) لمدة 100 ms

نشوف أيضا أن هذه التعريفات موضوعة بين مجموعة من الأقواس المعقوفة أي {} وذلك يعني أنها في 3 بلوكات منفصلة عن بعض

لكن عند تشغيل السكاتش أي الكود نلاحظ أن المصباح يعيد مجموعة الإشارات الضوئية في هذا البلوك 3 مرات لا مرة فقط .

وذلك لأننا إستعملنا الحلقة التكرارية for التي تجعل الكود الموجود في البلوك ينفذ 3 مرات .

نحتاج إلى 3 برامترات لإعطائها إلى حلقة التكرار forوهم كالآتي :

البداية ،الشرط ،قيمة التزايد

البداية هي أول بارامتر ينفذ وينفذ مرة واحدة فقط .

يتم فحص الشرط كل مرة من بداية for إلى نهايتها فإذا كان True أي صحيح , إذا يتم تنفيذ التعريفات التي في البلوك وتنفيذ بارامتر

الزيادة أيضا ثم يتم فحص الشرط مرة أخرى . عندما يصبح

الشرط Falseأي خاطئ يتم

مغادرة حلقة التكرار for .


فأولا يجب علينا تهييئ متغير كنقطة بداية لحلقة التكرار for.

في هذا المثال هيئنا المتغير x بالقيمة 0

كود:
 int x=0;
ثم وضعنا الشرط لتحديد كم من مرة يتم تنفيذ الكود داخل حلقة

التكرار for

كود:
x<3;
في هذا المثال سيتكرر الكود كلما كان x أصغر من 3 (3>x)

العلامة > هي علامة مقارنة . وتستعمل علامات المقارنة داخل الكود لعمل القرارات ولمقارنة قيمتين .

علامات المقارنة هي كالآتي :

== ( يساوي ل)

=! (لا يساوي ل)

< (أصغر من)

> (أكبر من)

<= (أصغر من أو يساوي ل)

>= (أكبر من أو يساوي ل)

في الكود تبعنا قمنا بمقارنة xمع القيمة 3 لنشوفها إذا كانت أصغر من 3 .

إذا كانت أصغر من 3 فيقوم الكود الذي في البلوك بتكرار التنفيذ مرة أخرى

ثم في الآخر لدينا x++

هذه إستعملناها لجعل قيمة x تزداد ب 1 .وهي إختصار ل

x = x + 1

ننوه هنا أنه لاداعي إلى إضافة العامة ;

طيب خلاصة الأمر .

حلقة for هيئت المتغير x

بالقيمة 0 ، ثم شغلت الكود الذي داخل البلوك أي بين {} ثم زادت من مقدار x

(في هذه الحالة زادت 1 إلى x )

وفي الآخير فحصت الشرط وهو x<3 فإذا كان صحيح تقوم بالتكرار .

طيب الآن بعد ماشفنا كيف تعمل الحلقة التكرارية نشوف أنه يوجد

في الكود 3 حلقات تكرارية.

لديا حلقة تكرر 3 مرات وتعرض لنا كل مرة 3 إشارات ضوئية قصيرة .

ثم لدينا حلقة تكرر 3 مرات وتعرض لنا كل مرة 3 إشارات ضوئية طويلة .

لديا حلقة تكرر 3 مرات وتعرض لنا كل مرة 3 إشارات ضوئية قصيرة مرة أخرى .

يجب التنويه على شيء وهو أن المتغير x يعتبر متغير محلي . (local)وهذا يعني أنه يراه إلا الكود الموجود

ضمنه داخل البلوك. إلا في حالة قمنا بتعريفه قبل الوضيفة ()setup

ففي هذة الحالة يعتبر متغير شامل (global) ويمكن أن يراه

كل كود السكريبت أو البرنامج .

ولدينا بعد كل حلقة تكرار أيضا delay لتوضيح الوقفة القصيرة

بين حروف SOS

آخيرا الكود ينتظر 5 ثواني قبل أن يعيد التنفيذ main loop من الأول مرة أخرى


لاتنسوني من صالح دعاؤكم

في أمان الله

8 أعضاء قالوا شكراً لـ zero cool على المشاركة المفيدة:
zero cool عضو جديد
  • شكراً: 5
  • تم شكره 66 مرة في 13 مشاركة

وداعا إخواني مافي شيء يشجع على المواصلة برموجتيلي شوية سكريبتات ، وكتبتو شوية شلات وثغارات وليتو تتكبروا على الأعباد ...

مازلتو في بداية الطريق وبالعقلية هذه قابلوني كان وصلتو للقمة... سلام

Sec4ever الحماية للأبد
  • شكراً: 3471
  • تم شكره 5312 مرة في 946 مشاركة

السلام عليكم و رحمة الله و بركاته

اخى ان ما تقدمه شىء جميل و له قيمة لكن هذا ليس معناه ان تسخر من الأعضاء .

و خاصة ان ما تقدمة خارج اهتمام اغلب اعضاء المنتدى الذىن اهتمامهم كل شىء له علاقة بتقنيات الويب و الأنترنيت.

يا اخى ضرورى تحترم نفسك و لا تسخر من حد مثل اننا لم نسخر منك .

اذا كان اهتمامك في مجال تقنبات الويب فلست مجبر على ان تقدم شرحات يكفى فقط ان تتابع المواضيع اذا لم تحب ان تشارك .

اذا كان اهتمامك غير ذلك و لم يعجبك المنتدى هذا فبامكانك ايجاد منتدى مهتم بالأشياء هذه مثل القرية الألكترونية.

انت لثانى مرة تخطىء.

توقيع
3 أعضاء قالوا شكراً لـ Sec4ever على المشاركة المفيدة:
Er1c عضو مميز
  • شكراً: 227
  • تم شكره 150 مرة في 42 مشاركة

درس رائع اخي الكريم اتمنى منك الاستمرار لا ادري من اؤتي بالقطع اللازمة

توقيع
Hacking will never die, because ultimately we all want happiness, and
hacking brings happiness
zero cool عضو جديد
  • شكراً: 5
  • تم شكره 66 مرة في 13 مشاركة

المشاركة الأصلية كتبت بواسطة sec4ever اقتباس :
السلام عليكم و رحمة الله و بركاته

اخى ان ما تقدمه شىء جميل و له قيمة لكن هذا ليس معناه ان تسخر من الأعضاء .

و خاصة ان ما تقدمة خارج اهتمام اغلب اعضاء المنتدى الذىن اهتمامهم كل شىء له علاقة بتقنيات الويب و الأنترنيت.

يا اخى ضرورى تحترم نفسك و لا تسخر من حد مثل اننا لم نسخر منك .

اذا كان اهتمامك في مجال تقنبات الويب فلست مجبر على ان تقدم شرحات يكفى فقط ان تتابع المواضيع اذا لم تحب ان تشارك .

اذا كان اهتمامك غير ذلك و لم يعجبك المنتدى هذا فبامكانك ايجاد منتدى مهتم بالأشياء هذه مثل القرية الألكترونية.

انت لثانى مرة تخطىء.

أخي الكريم أنا أقترحت زي الأعضاء إلي عملو دورات ووقع تجاهل موضوعي ...

على كل حال ماقصدت أسخر من حد فقط لاأحتمل التجاهل ..

وأعتذر على كل شيء والله يعطيك العافية على رحابة صدرك

وفي أمان الله

2 أعضاء قالوا شكراً لـ zero cool على المشاركة المفيدة:
zero cool عضو جديد
  • شكراً: 5
  • تم شكره 66 مرة في 13 مشاركة

المشاركة الأصلية كتبت بواسطة 0xFu اقتباس :
درس رائع اخي الكريم اتمنى منك الاستمرار لا ادري من اؤتي بالقطع اللازمة
أخي بالنسبة للكارد إسمها Arduino Uno

وهاي موجودة هون :

http://cgi.ebay.fr/Arduino-UNO-R3-St...#ht_654wt_1271




وبالنسبة للقطع الأخرى فهي متوفرة في جميع المتاجر تقريبا ...(potentiometre , led , capacitor , resistor , transistor , motor, piezo sounder ....etc )


أغلب المشاريع حشرحها على هذه الكارد ...

ولو أردت مثلا تشتري هذ الموديل (ethernet shield) يتم إضافته للكارد أردينو


http://shop.ebay.fr/i.html?_nkw=ardu...LH_TitleDesc=0

لكي تصبح تدعم إستقبال وإرسال البيانات عبر الأنترنات .


في أمان الله

الأعضاء الذين قالوا شكراً لـ zero cool على المشاركة المفيدة:
abdellatef
TeaM B
  • شكراً: 648
  • تم شكره 240 مرة في 69 مشاركة

ننتضر الدروس القادمة

توقيع
لا الاه الا الله محمد رسول الله