الجمعة، 24 أكتوبر، 2014

كيف تحمي الأردوينو من التلف بأبسط المكونات !!



كيف تحمي الأردوينو بأبسط المكونات  ؟!!





في هذا المشروع البسيط جمعت فيه بفضل الله خبرتي في الاردوينو فهو يضم المخارج التماثلية Analouge والرقمية Digital وكيفية استغلال الجهد المرجعي الداخلي للأردوينو واستخدام خاصية التعديل الإتساعي المعتمد علي عرض النبضة .

إذا كنت تريد أن تحمي دائرة الأردوينو من التلف عند توصيل المحركات والمرحلات Relays او اي جهاز يسحب تيار أعلي من (40mA) عليك بدائرة عزل الأردوينو عن طريق العازل الضوئي Opticopler .

يتكون العازل الضوئي من جانبين :

الجانب الأيسر : وهو عبارة عن ليد والجانب الأيمن : وهو عبارة عن ترانزستور ضوئي يتم تغذية قاعدته بإضاءة الليد

تستطيع أن تراه في الصورة 





هذا يوفر لك العزل الكامل بين الجانب الأيسر الذي نستطيع ان نسميه جانب الإشارةsignal side, والجانب الأيمن الذي نستطيع تسميته بدائرة الحمل circuit_load

هذه ليست للعزل فقط , ولكن الترانزستور الضوئي يتصرف كفيوز , نعم لا تعجب !! فعند حدوث _ short circuit_ في دائرة الحمل لا تقلق علي الحمل ولكن قد تودع ذلك الترانزستور الضوئي الذي لا يتعدي ثمنه المائة قرش :D

لقد استخدمت العازل الضوئي من نوع pc817 الموجود في الصورة , لعزل بوردة الاردوينو خاصتي عند توصيل الريلاي الذي ربما يعطي قوة دافعة كهربية عكسية خطيرة بالرُغم من وضع دايود بالتوازي معه منحازا انحيازا عكسيا .

إذا أردنا أيضا أن نحسب التيار الذي يسحبه ذلك الريلاي :

أولا : نقوم بحساب مقاومة ملف الريلاي وذلك بضبط الفولتميتر علي مقياس المقاومة ووضع طرفي القياس علي الملف نجد R-coil =130 ohm ولدينا جهد الاردوينو = 5v

إذا يكون التيار :

 I-coil = 5/130 =0.038 =38mA

هذا المرحل برغم ان الجهد المناسب لملفه هو 5V وهو ما يستطيع الاردوينو توفيره .

لكن هذا التيار قريب جدا من اقصي تيار يمكن سحبه من اي طرف من أطراف الاردوينو 40mA ولذا فلا داعي للمخاطرة :]

بما أننا بصدد التحدث عن المرحل Relay ذلك العنصر المتميز فهو يقوم بالعزل بين control circuit المتمثلة في طرفي تغذية ملف الريلاي والذي قد يكون 5,6,12,24 v)) او ربما 220 vac ودائرة الحمل التي تكون عبارة عن حمل مُحضر عليه طرف وينتظر الطرف الآخر الذي يتم قطعه عن طريق نقاط الريلاي com – N.O – N.C

كما نعلم جميعا ان ذلك العنصر الكهرومغناطيسي المجنون كما يُسميه البعض الذي يصدر تكتـَة أسمع لها دوي ٌ في قلبي :] فيه نقطة تتعلق بالتحكم وهي :

يمكنني عند توصيل الريلاي بعمل فصل للحمل وذلك بإستخدام طرفي com – NC اما عندما أريد توصيل الحمل استخدم com – NO .

أيضا نقاط تلامس الريلاي com – N.O – N.C لها قيمة لا يجب أن تتعداها وإلا فلن تحتمل أو يقل عمرها الإفتراضي

يجب مراعاة هذه النقطة .

انظر الشكل عند توصيل الريلاي وفصله صورة 2 :



لعله يدور في رأسك هذا السؤال الآن س: ما الحمل الذي أقوم بوضعه علي الريلاي ؟

ج : الحمل هو عبارة عن مروحة 12vdc تعمل إذا قلت درجة الحرارة عن درجة معينة .

يتم قياس درجة الحرارة عن طريق سنسور حراري اسمه LM35 هذا السنسور إذا نظرنا إلي النشرة الفنية  الخاصة به, يمكنك الاطلاع عليها من هنا :


نجد أن :

يتم تغذية هذا السنسور من 4Vإلى 20V ونحصل علي قراءة10mv إذا تم قياس واحد درجة سيليزيوس .

ونحصل علي قراءة -550mv إذا تم قياس -55 درجة سيليزيوس .

أيضا نحصل علي قراءة 1500mv اذا تم قياس 150 درجة سيليزيوس .

فهو يستطيع قياس (-55 : 150) درجة سيليزيوس . من (-550mv : 1500mv )

معادلة الجهد عند استخدام Analog to Digital Converter_ _ :

يتم تقسيم ال 5v الي 1024 ثم يتم ضرب الرقم في قيمة الجهد المقروء لنحصل علي الجهد المكافئ بالديجيتال

Voltage = sensorRead*5/1024))

لكن Lm35 يستطيع فقط توفير من (0Vإلى  1V)

وبإستخدام هذه الطريقة نكون قد فقدنا 80% من الدقة المتاحة لدينا .

ولذلك فإن الحل هو إستخدام خاصية الجهد المرجعي الداخلي لبوردة الأردوينو والذي يساوي 1.1v وبهذا نحصل علي اعلي دقة ممكنة .

ستتغير معادلة الجهد عند تغيير مقياس الجهد إلي 1.1v لتكون

(Voltage = sensorRead*1100/1024)

*/ تحويل الجهد الي مللي فولت وتغيير المقياس /*

بما ان مقياس الفولت المقاس تغير إذا فإن مقياس الحرارة تغير أيضا فهو الآن يستطيع قياس من (0 : 110) درجة س

تحت معيار (0:1100) فولت . ولن يستطيع قياس الحرارة السالبة لانه لن يتم تطبيق جهد سالب عليه .

إذا يتبقي لدينا أن نعرف معادلة درجة الحرارة :

إذا قسمنا 1100 /1024 فان الناتجي يكون تقريبا ( 0.001074V = 1.0742 mV)

إذا كل زيادة خطوة في القراءة الأنالوج تساوي هذا الناتج . وبما أن 10mv تكافئ 1 درجة سيليزيوس إذا

( 10 / 1.0742 = ~9.31) فتكون المعادلة :

tempC = sensorReading / 9.31)).

سنقوم بفرض افتراضين : فرض لدرجة الحرارة العادية , وفرض لدرجة الحرارة الحارة ,, وباستخدام if statement سنقوم باختبار ما اذا وصلت الحرارة الي القيمة ام لا وحين تكون درجة الحرارة عادية يضئ ليد مثلا لونه أخضر ونقوم باستخدام خاصية (PWM) في انارة الليد الأخضر شيئا فشيئا حتي يضئ الاضاءة الكاملة ثم يخفت شيئا فشيئا وإذا كانت حارة يضئ الليد الاحمرايضا بنفس الطريقة ، ويتم إعطاء إشارة إلي الترانزستور الضوئي وتغذية الليد الداخلي له لكن ليس مباشرة وانما باضافة مقاومة توالي معه نتعامل معه مثل اي ليد ليقوم بدوره بتغذية قاعدة الترانزستور بالضوء فتكتمل دائرة الريلاي ومن ثم تكتمل دائرة الحمل المتحكم فيه عن طريق الريلاي .

من مميزات هذه الدائرة انها قامت بعزل دائرة الحمل (المروحة 12vdc ) مرتين :

اولا : العزل الكهربي عن طريق الريلاي بين دائرة الكنترول –طرفي الملف- ودائرة الحمل المروحة بمصدر جهدها .

ثانيا : العزل الضوئي بين دائرة الريلاي وبين دائرة الأردوينو (دائرة الإشارة) إذ يمكننا العزل مرة واحدة باستخدام ترانزستور تُغذي قاعدته من الاردوينو او باستخدام الترانزستور الضوئي فقط بدون الريلاي.

خطوات عمل هذه الدائرة :

اولا : المكونات :
1)بطاقة أردوينو أونو uno

2)مرحل Relay
3)حساس الحرارة LM35
4)العازل الضوئي PC817
5)اسلاك توصيل Jumper
6)مقاومة 220 اوم 
7)الموحد Diode 1N4007 



ثانيا : قم بقياس درجة حرارة غرفتك عن تو صيل الاردوينو ب lm35 كما بالشكل :


ثم قم بكتابة هذا الكود :


ثم قم برفع هذا الكود وقم بالضغط علي serial monitor







بهذا تحصل علي درجة حرارة غرفتك وبناء عليها تقوم بتحديد مدي درجات الحرارة العادية و الحارة التي ستعمل مروحتك عندما يقرأها السنسور .


ثالثا: قم بتوصيل دائرتك كما بالشكل :


ثم قم بوضع المروحة كما رأينا في الصورة الموضحة في شرح المرحل والتي عوضنا عنها  بمحرك تيار مستمر عنها في برنامج المحاكاة البسيط الرائع _ circuit wizard _ وقمنا بوضع لمبة بيان لان عند أخذ_ snipshot_ المحرك يكون من وضع الثبات لن تظهر حركته . انظر صورة 2


المروحة وهي موصلة بطرفي الريلاي N.O – Com :

ثم رابعا : قُم برفع هذا الكود :




أريدك منك أن تسري فيك الإلكترونات من عقلك إلي قلبك قبل أن تسري من الطرف الموجب إلي السالب ^_^ دُمتم J

الكاتب : محمد سيد حميد السيد

الدولة : جمهورية مصر العربية 

الأحد، 12 أكتوبر، 2014

قارئ بطاقات تحديد الهوية باستخدام امواج الراديو RFID

 RFID MFRC522



تعد تقنية تحديد الهوية باستخدام امواج الراديو من التطبيقات الشائعة في الفترة الأخيرة , فتوجد بشكل واسع في انظمة الحماية Security system و في انظمة الدخول و الحفظ في قواعد البيانات Data logger .



في مقال سابق في المدونة تحدثنا عن قارئ ID12 العامل على تردد 125كيلو هيرتز , و اليوم سنتحدث عن نوع آخر و هو MFRC522 من انتاج شركة فيليبس philips




لمحة سريعه عن ال rfid :
تقسم ترددات تقنية تحديد الهوية إلى :


(Low frequency (LF و تكون ذات تردد منخفض ما بين 30-300 كيلو هيرتز و القيمة الأكثر شيوعاً هي 125كيلو هيرتز .
يستخدم بشكل واسع في انظمة الحماية 

(High Frequency(HF : و تكون قيمة الترددات ما بين 3 - 30 ميغاعيرتز , و القيمة الأكثر شيوعاً هي 13.56ميغاهيرتز , و مداها الفعّال ما بين 1 سم - 100 سم .

تستخدم على نطاق واسع في مجال البطاقات الذكية , و في مجال بطاقات سحب الأموال الالكترونية .

UHF : و هي ذات ترددات عالية و تكنولجيا متطورة ما بين ترددات 300 ميغاهيرتز - 3000ميغاهيرتز , و القيم الأكثر شيوعاً تقع بين 860 -960 ميغاهيرتز و ذات مدى يصل لغاية 12متر 

النوع الذي سنستخدمه اليوم من ضمن فئة HF و مداه يصل لغاية 5 سم .




يعتمد في الأساس على الدارة المتكاملة MFRC522 و يمكن الأطلاع على النشرة الفنية من هنا .

يستخدم البروتوكول SPI لنقل البيانات و تبادلها مع المتحكمات.

القطع المستخدمة في هذه التجربة :


1) بطاقة اردوينو أونو .
2)قارئ RFID MFRC522
3) كروت Tags 13.56MHz
4)اسلاك توصيل female-male
5) لوحة توصيل Breadboard
6)مقاومتان 100 اوم 
7) باعث ضوئي LED عدد 2 

التوصيل :



البرنامج :

في البداية يجب علينا تحميل مكتبة ال rfid من خلال الرابط هنا و وضعها في مسار المكتبات في الأردوينو .

سنقوم الآن بقراءة كرتين مختلفين , اذا كان الكرت الصحيح هو الموجود "المشار له بالأسم " :


byte First_card_ID[4]={0xDD,0xA1,0x82,0x07};

 سيضيء النظام باللون الأزرق , عكس ذلك سيضيء اللون الأحمر .
واذا تم فتح نافذة السيريال سنلاحظ ظهور رقم البطاقة و ما اذا تم قبولها ام لا .






و الفيديو يوضح العملية بالكامل .



الاثنين، 1 سبتمبر، 2014

دارة تنظيم الجهد "خافض - رافع " S7V8A

دارة تنظيم الجهد "خافض - رافع "
Step"UP-Down" Voltage Regulator S7V8A




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

تختلف طرق تغذية المشاريع , ابتداءاً من 


بطاريات 

مصادر قدرة Power Supply

طاقة بديله "خلايا شمسية , رياح "

نقف هنا أمام مشكلة كبيرة تواجهنا , لنقل مثلاً انا نستعمل لوحة أردوينو أونو و نريد تغذيتها من مصدر تغذية تقل فولتيته عن 5 فولت "بطارية ليثيوم , بطاريات عادية AA,AAA " في هذه الحالة طبيعي ان لا تعمل الأردوينو لانها لم تغذى بفولتية مناسبة 5 فولت او بفولتية اعلى من 7 فولت عبر منفذ التغذية DC  power Jack.

في حال استخدام الرقائق الألكترونية IC المختلفة لها فولتية يجب ان لا تتعداها , هناك طريقة شائعة في تنظيم الفولتية هي استخدام منظم الجهد

ما هي وظيفة منظم الجهد ؟

وظيفة المنظم هي ضبط الفولتية التي تغذى بها الدائرة الالكترونية عند فولتية ثابته .
تغذى هذه المنظمات من مصادر فولتية , تكون عادة اعلى من الفولتية المطلوبة للمخرج "مثلاً لو اردنا مصدر فولتية ثابتة على المخرج 5 فولت , نغذي المنظم بفولتية اعلى من 5 فولت " .

من أشهر هذه المنظمات عائلة 78xx و عائلة LMxxxx .

لكن المشكلة تكمن في انه لو كانت تغذية المنظم اقل من فولتية المخرج , هنا تكمن مشكلة و لن يعمل المنظم بشكل صحيح.

يكون الحل استخدام منظمات رافعه - خافضة , و يقصد بها انها تستطيع اعطاءك فولتية على المخرج ثابتة سواء غذيتها من مصدر فولتية  اقل من فولتية المخرج او غذيتها من مصدر فولتية  اكبر من فولتية المخرج .

سأتحدث عن الدائرة المنظمة S7V8A 



خصائص هذه الدارة المنظمة :
فولتية التغذية : من 2.7 - 11.8 فولت 
فولتية المخرج :من 2.5 - 8 فولت 
كفاءة في حدود 90% عندما تكون الفولتية على المدخل اكبر من المخرج و تيار بين 500ملي امبير - 2000 ملي امبير كحد اقصى .

التوصيل سهل للغاية , و يتكون هذا المنظم من :
Vin
Vout
Gnd
SHTD و هذا ان تم توصيله مباشرة مع ال Vin يدخل في وضع توفير الطاقة , لن نوصله في هذه التجربة لعدم حاجتنا لهذا الوضع .

كل ما ستحتاجه في هذه التجربة هو :

1)دارة تنظيم الجهد "خافض - رافع S7V8A
2)اسلاك توصيل 
3)لوحة تعليمية BreadBoard
4)مصدر جهد "انا استخدمت Power supply "
5)فولتميتر 

التوصيل : يوصل Vin مع مصدر الجهد , من ثم نأخذ سلك من المخرج Vout للحمل المطلوب تشغيله "في هذه التجربة استخدمت فولتميتر لقياس الفولتية الخارجة".

يمكن تغيير فولتية المخرج عبر تحريك المقاومة المتغيرة اللتي في الصورة بواسطة مفك صغير .



هذه الدارة تريحنا جداً في حالة اردنا تشغيل حمل بفولتية عالية باستخدام بطارية منخفضة الفولتية .

و هذه المنحنيات توضح كفاءة المنظم باختلاف الفولتية , و التيار الذي نستطيع الحصول عليه .





فولتية المدخل Vin

مقدار فولتية المخرج Vout=5V



صورة للدائرة مع التوصيل 


استخدام مفك صغير لضبط فولتية المخرج 

في النهاية يجب التنبيه إلى وجوب توصيل المدخل السالب الخاص بالمدخل Vin  و المدخل السالب الخاص بالمخرج Vout معاً حتى تعمل الدارة بشكل صحيح 

الاثنين، 25 أغسطس، 2014

الشاشة الرسومية الملونة TFT LCD 1.8 Inch

TFT LCD 1.8 inch ST7735 Controller



تعتبر هذه الشاشه من فئة شاشات العرض الصغيره الملونه .


شاشه 1.8TFT Display يوجد اشكال كثيره منها متوفره كغطاء  Arduino shield و كلوحات سهله التوصيل مع الاردوينو breakout boards . سنستخدم في هذا المقال شاشه العرض  1.8 inch TFT color display بابعاد 128*160بكسل ومزوده  (micro SD )لتخزين الصور والملفات .



تحتوي هذه الشاشة على 160 صف و 128 عمود (128*160 ) بكسل على عكس شاشه Nokia 6110

اسم المتحكم المستخدم في الشاشه ST7735R يمكنه عرض 18بت لون كامله اي 262,144لون , المتحكم ST7735 هو رقاقه تحكم ب262K لون .نوع الرسم TFT-LCD .هذه الرقاقه قادره على الربط مع متحكم خارجي مباشره يتصل عن طريق البروتوكول SPI




 بورد الشاشه يحتوي على منظم للفولتيه لذلك يمكننا استخدام 3.3فولت او 5 فولت لتزويد الشاشه بالطاقه.وايضا تحتوي على حافظه SD card حتى نتمكن من تحميل صور ملونه بسهوله.
تتم برمجتها عبر برتوكول SPI نظرا لما تحتاجه هذه الشاشه من سرعه عاليه لنقل البيانات من المتحكم (الاردوينو ) وبين متحكم الشاشه ST7735R


3) ستقسم مقالات هذه الشاشة إلى  3 أجزاء :

1)التحكم فيها بواسطة مكتبة ادافروت Adafruit و أوامرها البسيطة .

سنستخدم لبرمجه هذه الشاشه مكتبه Adafruit_GFX حيث توفر مجموعه من اقترانات الجمل والرسومات لكل من شاشات الكرستال السائلهLCDوشاشات الOLED وهذا يسمح لنا من برمجه هذه الشاشات عن طريق الاردوينو بسهوله وتحسين ادائها
تعمل هذه المكتبه جنبا الى جنب مع مكتبه مخصصه لنوع الشاشه المستخدمه .لذلك سنستخدم بلاضافه لهذه المكتبه مكتبه Adafruit_ST7735.

2) كيفية تحميل الصور على هذه الشاشة و ضبطها .

3) برمجتها بواسطة مكتبة اردوينو الرسمية .

قبل البداية سنقوم بتحميل مكتبة Adafruit الخاصة بهذه الشاشة من هنا 

و تحميل  مكتبة gfx من هنا 


التوصيل :




شرح اوامر المكتبه :

1) لبدأ العمل مع هذه الشاشه نعمل على تهيئتها بواسطه الامر 

TFT_name.initR(INITR_BLACKTAB);

2) لضبط اللون المستخدم بالكتابه نستخدم الامر 
TFT_name.setTextColor(ST7735_COLOR);

3) لضبط حجم الخط المستخدم نستخدم الامر 
TFT_name.setTextSize(n);

حيث ان n رقم بين 1 -4 كلما زاد الرقم n زاد حجم الخط 


4)لرسم نقطه على الشاشه نستعمل الامر 
TFT_name.drawPixel(x1,y1,ST7735_COLOR);
حيث x1,y1 هي احداثيات النقطه.




وهذا المثال يوضح طريقه رسم نقطه على الشاشه






5) لرسم خط مستقيم نستخدم الامر 
TFT_name.drawLine(x1,y1,x2,y2,ST7735_COLOR);
x1,y1 احداثيات النقطه الاولى 
x2,y2 احداثيات النقطه الثانيه 
ST7735_COLOR  لون الخط المستقيم
بالاضافه لوجود اوامر خاصه لرسم الخط وهي :
رسم خط مستقيم افقيا 
TFT_name.drawFastHLine(x1,y1,L,ST7735_COLOR);

حيث X1,Y1 نقطه بدايه هذا الخط
L طول الخط 


ولرسم خط مستقيم عاموديا 
TFT_name.drawFastVLine(x1,y1,L,ST7735_COLOR);

حيث X1,Y1 نقطه بدايه هذا الخط
L طول الخط





وهذا البرنامج مثال لرسم الخطوط المختلفه على الشاشه 






6) لرسم مستطيل فارغ نستخدم الامر 
  TFT_name.drawRoundRect(X1,Y1,X2,Y2,5,ST7735_COLOR);
X1,Y1 نقطه بدايه المستطيل 
X2,Y2 نقطه نهايه المستطيل 
ST7735_COLOR لون اطار المستطيل

7)لرسم مستطيل ممتلئ بلون  نستخدم الامر 
  TFT_name.fillRoundRect(X1,Y1,X2,Y2,5,ST7735_COLOR);
X1,Y1 نقطه بدايه المستطيل 
X2,Y2 نقطه نهايه المستطيل
ST7735_COLOR لون الذي سيملئ بها المستطيل 




وهذا المثال يوضح طريقه رسم مستطيل فارغ وممتلئ 






8) لرسم مثلث نستخدم الامر 
 TFT_name.drawTriangle(X1,Y1,X2,Y2,X3,Y3,ST7735_COLOR);
 X1,Y1,X2,Y2,X3,Y3 حيث هذه الاحداثيات رؤوس المثلث  ST7735_COLOR لون اطار المثلث
9) لرسم مثلث ممتلئ بلون نستخدم الامر 
 TFT_name.fillTriangle(X1,Y1,X2,Y2,X3,Y3,ST7735_COLOR);
 X1,Y1,X2,Y2,X3,Y3 حيث هذه الاحداثيات رؤوس المثلث  ST7735_COLOR لون الممتلئ به المثلث 







هذا هو الجزء الأول من المقال و في الجزء الثاني سنتحدث عن كيفية تحميل صورة على هذه الشاشة باستخدام SD Card



الجمعة، 15 أغسطس، 2014

تحكم بالوحة المفاتيح بواسطة الأردوينو


                      Arduino Keyboard PS2






في هذا التدوينة سنقوم بتوصيل كيبورد الكمبيوتر بالاردوينو بمعزل عن أي اجهزة اخرى، حيث سنحصل على عدد كبير من ازرار الادخال باستخدام مدخلين فقط من الاردوينو سواءاً الUno اوالMega او غيرها.

المتطلبات السابقة :

- معرفة بمبادئ برمجة الاردوينو
-معرفة وظيفة ال Interrupt pins  في الاردوينو (مداخل المقاطعة).

القطع و الادوات:
1- PS2 Keyboard (كيبورد بمدخل ال PS2)
2- اردوينو Uno (يمكن استخدام Mega او Nano الخ.).
3- اسلاك توصيل نوع "Male-Female".
4- قطاعة اسلاك.
5- لابتوب للبرمجة 
6- اذا لم تستطع الحصول على PS2 Keyboard يمكنك شراء USB to PS2 converter  و هي قطعة تحول مدخل الUSB  الى PS2 ثم توصيلها مع الكيبورد للمباشرة بالعمل 




USB to PS2 converter


نبدأ الآن بشرح آلية عمل لوحة المفاتيح :



هذه صورة عمودية لذكرمدخل ال PS2  و هو يتكون من 6 مخارج اربعة منها فقط الفعالة و اثنين مهملين.
نبدأ  بالمدخلين رقم (4) و (3)، وكما نرى في الصورة هما خطي تغذية الطاقة حيث سيتم توصيل هذه المداخل على ال 5فولت و ال GND في الارديونو حيث (4) ---< 5 فولت و (3) ---< Gnd

ثم لدينا ال Clock  على مخرج رقم (5) ووظيفة هذا المخرج هي تنبيه الجهاز ببدأ استقبال اشارة الكيبورد،  بحيث يتحول من High  الى Low لبدأ استقبال اشارة من ال Data 
اما ال Data فهي المخرج الاساسي الذي يُخرج كل Askii لحرف مشفر بالنظام الثنائي (01).
اما كل من 2 و 6 فهما غير مستخدمين في لوحة المفاتيح.

الخطوات:
1- نبدأ بازالة المحيط المعدني لمخرج الPS2 باستخدام القطاعة:



2- بعد ازالة المحيط المعدني، ارتأيت افضل طريقة للتوصيل هي بسحب اسلاك ذات شعرة واحدة حول كل Pin  و تثبيت الاسلاك بلاصق كما فعلت انا في الصورة ، لكن بالطبع يمكنك استخدام اسلاك Male –Female.





الآن ناتي للاردوينو، هناك مكتبة مخصصة للتعامل مع اتصال ال PS2 حيث يمكن من خلالها التعامل مع كل من لوحة المفاتيح او الماوس و يمكن تحميلها لاضافتها من هذا الرابط :

http://www.pjrc.com/teensy/arduino_libraries/PS2Keyboard.zip

و بعد تحميل المكتبة يمكنكم اضافتها عن طريق Sketch >> Import Library >> Add Library



بعد اضافة المكتبة اصبح الاردوينو جاهز للتوصيلات و البرمجة قبل البدأ بالخطوة الثالثة علينا معرفة ال interrupt pins  في نسخة الاردوينو الموجودة معك ففي الUno يوجد interrupt Pins  عدد 2 هما D2  و D3 ، و اذا كنت تستخدم اردوينو Mega فيمكنك استخدام 2  او 3 او 18 او 19 او 20 او 21.


- نبدأ في البرمجة بعد توصيل الاسلاك كلاتي 

Data >> D4
Clock >> D3
VCC >> 5V
Gnd >> Gnd




ستظهر الان القراءات و النتائج على قارئ السيريال عند الضغط على اي زر في الكيبورد 

الكاتب : زيد حيمور 
البلد : المملكة الأردنية الهاشمية 

السبت، 12 يوليو، 2014

غطاء الشاشة الكريستاليه LCD Keypad Shield

غطاء الشاشة الكريستاليه LCD Keypad Shield







تحدثنا في المدونة سابقاً عن الشاشات الكريستاليه و اهميتها في المشاريع المختلفة و برمجتها بواسطة الأردوينو , و من خلال تجربتي العمليه لاحظت أنه عند استعمال بعض الشاشة في المشاريع تقف توصيله الشاشة عقبة أمام ادخالها في اي مشروع سواءاً من ناحية المظهر و كثر أسلاك التوصيل التي تحتاجها و التي تتطلب عند البعض استخدام لوحة تعليمية BreadBoard" كما في مشاريع الروبوتات , او نظم الحماية او المنزل الذكي .





من أفضل الحلول التي يمكن نقوم بها هو استخدام غطاء خاص بهذه الشاشة من فريق DF Robot .

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

التركيب العام الخارجي للشاشة :


التوصيل لهذه الشاشة هو نفسه التوصيل المعتمد من قبل مكتبة الأردوينو مع استبدال مداخل التحكم ENABLE, RS  بدلاً من 11 و 12 في مكتبة اردوينو الرسمية إلى 8 ,9 "و هذا مفيد لو اردنا استخدام البروتوكول SPI , الأضافة في هذه الغطاء هو انه يمكنك التحكم بشدة أضاءة الشاشة عن طريق التحكم النبضي PWM من المنفذ D10 .





الكبسات push Button مربوطة معاً  مع المنفذ A0 و سنرى كيفية استعملها من خلال البرنامج .

يمكن الأطلاع على المخطط كاملاً من هنا

سنحتاج في هذه التجربة إلى :

1)بطاقة أردوينو . 
2)غطاء الشاشة الكريستالية LCD KeyPad Shield



تركيب الغطاء سهل "فقط ضعه فوق الأردوينو " ثم سننتقل للبرمجة .







البرنامج :

يعتمد قراءة الكبسات على مبدأ مقسم الجهد Voltage Divider حيث انه عند الضغط على كل كبسة سيعطينا قراءة مختلفة عن القراءة لكبسة أخرى .


هذا البرنامج يطبع جملة Hello World المشهورة على الشاشة بالإضافة للكبسة التي ستنقر عليها .







و هذا برنامج يتحكم بشدة سطوع الشاشة عبر النقر على الزرين up - down 



يمكن الأستفادة من هذا الغطاء لتوصيل حساسات عبر المنافذ A1-A5  .



هذا مثال لتوصيل الغطاء مع حساس الحرارة LM 35





البرنامج :



 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.