ad2



قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 26-02-2009, 02:10 PM المشاركة 1   
x4 مشروع التحكم في48ريلاي بالكايباد و LCD - سلسلة المشاريع مفتوحة المصدر Twitter FaceBook Google+



بسم الله الرحمن الرحيم
إخواني الكرام أحب أن أقدم لكم إن شاء الله أول مشروع من سلسلة المشاريع مفتوحة المصدر والتي سأقدمها لكم إن شاء الله عبر عدة مواضيع .. ولمن لا يعلم ماذا تعني المشاريع مفتوحة المصدر OPEN SOURCE ..
إنها المشاريع التي تحتوي على الكود ... (كود البرنامج) .

أسأل الله أن يوفقني في أن أقدم لكم عدد كبير من هذه المشاريع لكي يستفيد الجميع منها إن شاء الله .. وكم أتمنى أن يمتلئ هذا المنتدى المبارك بمثل هذه المشاريع التي تحتوي على الكود كاملا وبعض الشرح حوله ( إن أمكن) فأتمنى من الأعضاء والمشرفين المشاركة في تقديم مثل هذه المشاريع .. وربما في يوم من الأيام بعد أن تكثر هذه المشاريع يخصص لها قسم في هذا المنتدى .. الله أعلم ..

=============================================
التحكم في 48ريلاي بواسطة keypad و LCD وباستخدام 4514

هذا المشروع في الأصل طلب مني بواسطة الأخ الفاضل المهندس محمد (العابدي)
برنامج لتشغيل متحكم من نوع pic16f877A وذلك للتحكم بتشغيل 40 رلي مربوط على مخرجات البك بحيث يتم اختيار رقم الرلي المطلوب من خلال مفاتيح keybad واظهار الرقم المختار من خلال lcd وبعد ذلك يمكن عمل تصفير من خلال احد المفاتيح للقيام باختيار رقم رلي جديد
وإليكم إخواني الكرام رسمة الدائرة التي أرسلها لي أخي (العابدي)


وضعت لها تعديل بسيط في توصيل الكايباد . يمكنكم ملاحظته في ملف المحاكاه

وإليكم الكود الكامل (وإن شاء الله سيكون هناك شرح موجز عن هذا الكود)
علما أن هذا الكود بلغة مايكروسي
كود:
/* Project : this project is designed to control of 45 relays by typing the number of relay by using keypad then this number displayed on LCD and this relay which has this number will be ON if you push "=" button. and you can clear LCD to write another number so the another relay will be ON ,you can do this if you push"ON/c" button. hardware: I use in this project pic16f877a , LCD 2*16 , IC 4514,relays and keypad. you can use another hardware by some adjusting. Author : Ahmad Samir Fayed. Country : Egypt. Date :26/2/2009 copyright : all muslims and Arabs can use this code but without replacing my name to another when using the same code. (please don't waste my fatiguing) */ char m; char result=0; char number[]={'x',' ','9','8','7','x','6','5','4','x','3','2','1','x','x','0','x'}; char number2[]={'x',' ',9,8,7,'x',6,5,4,'x',3,2,1,'x','x',0,'x'}; char tens=0,ones=0; void on() { result=(tens*10)+ones; if(result<16){result.f4=0;result.f5=1;result.f6=1;} else if(result>=16&&result<=31){result=result-16;result.f4=1;result.f5=0;result.f6=1;} else if(result>=32&&result<=47){result=result-32;result.f4=1;result.f5=1;result.f6=0;} else if(result>47){Lcd_Cmd(Lcd_Clear);lcd_out_cp("error");delay_ms(1000);return;} portd=result; } void main() { trisd=0;portd=0xF0; Keypad_Init(&PORTC); lcd_init(&portb); lcd_cmd(LCD_CURSOR_OFF); lcd_out(1,1,"Enter the number"); lcd_out(2,1," of relay"); loop: //testing the first pushing down m=keypad_read(); if(m==0) {goto loop;} else if(m==14){goto loop;} else if(m==16){Lcd_Cmd(Lcd_Clear);portd=0xF0;goto loop;} else {Lcd_Cmd(Lcd_Clear);tens=number2[m];lcd_chr_cp(number[m]);delay_ms(500);} test2: //testing the second pushing down m=keypad_read(); if(m==0) {goto test2;} else if(m==14){ones=tens;tens=0;on();goto test3;} else if(m==16){Lcd_Cmd(Lcd_Clear);portd=0xF0;goto loop;} else {ones=number2[m];lcd_chr_cp(number[m]);delay_ms(500);} test3: //testing the third pushing down m=keypad_read(); if(m==0) {goto test3;} else if(m==14){on();goto test3;} else if(m==16){Lcd_Cmd(Lcd_Clear);portd=0xF0;goto loop;} else {goto test3;} }
ويمكنكم أحبتي في الله تحميل ملف المحاكاه وملف الهيكس والكود

من هذا الرابط

وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع


التعديل الأخير تم بواسطة : ahmad_s_f بتاريخ 26-02-2009 الساعة 03:05 PM
اعلانات

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 26-02-2009, 02:13 PM المشاركة 2   
افتراضي


كيف تستخدم الدائرة ؟؟
يتم كتابة رقم الريلاي المراد تشغيله باستخدام keypad ثم يتم الضغط على "=" حينها يعمل الريلاي صاحب الرقم الذي كتبناه . ولتغيير الريلاي الذي يعمل يتم الضغط على "ON/c" حينها لن يعمل أي ريلاي فنكتب رقم ريلاي آخر و الذي نريد تشغيله ثم بعد ذلك نضغط على "=" وهكذا كما نريد ..

إخواني الكرام ستجدون شرح الكود في هذا الرابط أرجو القراءة بعناية عدة مرات وأنا في إنتظار أي سؤال أو استفسار .

يمكنكم تحميل الملف من هنا

ملحوظة مهمة :: تم تغيير بعض التوصيلات في LCD والكايباد (انظر للصفحة رقم 2 في الملف الخاص بالشرح)

وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع
والسلام عليكم ورحمة الله وبركاته


التعديل الأخير تم بواسطة : ahmad_s_f بتاريخ 04-03-2009 الساعة 02:49 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

m_mansour2005
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2009
المشاركات: 80
نشاط [ m_mansour2005 ]
قوة السمعة:0
قديم 26-02-2009, 07:08 PM المشاركة 3   
افتراضي


شكرا استاذ احمدعلى هذا المجهود الكبير وبانتظار الشرح حيث ان هناك بعض الاشياء غير واضحة بالنسبة إليي كالأمر Keypad_Init(&PORTC);

- ألا من المفترض ان توجد دالة بالاسم keypad_read() أم انها دالة جاهزة أرجو التوضيح
.......................


geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,139
نشاط [ geniusse01 ]
قوة السمعة:88
قديم 26-02-2009, 08:01 PM المشاركة 4   
افتراضي


السلام عليكم

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

اخي زكي لقد قمت بتشغيل البرنامج في البداية ولكنه لم يعمل معي وعندما قرأت شروحاته تبين انه يلزمك ان تضغط على الرقم ومن ثم على اشارة المساواة = ليعطي الامر...ولكن السؤال المنطقي الذي طرحته انت وهو انه لا يوجد عملية اخراج على البورت فلم اعرف كيف يتم ذلك؟؟ننتظر من اخونا العزيز التوضيح ان شاء الله في اقرب فرصة..اما البرنامج فقد جربته على البروتوس واشتغل معي...

واخر دعوانا ان الحمدلله رب العالمين..وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم..


زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 3,065
نشاط [ زكي شاكر ]
قوة السمعة:165
قديم 26-02-2009, 08:55 PM المشاركة 5   
افتراضي


السلام عليكم
نعم .. البرنامج يشتغل على بروتوس :
نركب الرقم ثم نضغط على" ="
وقبل اختيار رقم جديد نضغط على on/c
شكرا على التوضيح وبارك الله في أخي احمد على هذا الموضوع النافع إن شاء الله..
تحياتي للجميع


التعديل الأخير تم بواسطة : زكي شاكر بتاريخ 12-03-2009 الساعة 11:47 AM

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,063
نشاط [ حيدر علاج حسن ]
قوة السمعة:377
قديم 26-02-2009, 09:46 PM المشاركة 6   
angry


عمل رائع جدا بارك الله فيك استاذ احمد .
ارجو توضيح آلية عمل المفاتيح عند شرح البرنامج

حيدر علاج حسن

العابدي
:: مهندس ::
تاريخ التسجيل: Feb 2007
المشاركات: 48
نشاط [ العابدي ]
قوة السمعة:0
قديم 27-02-2009, 11:04 AM المشاركة 7   
افتراضي


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


Eng/Warrior
:: مهندس ::
تاريخ التسجيل: Mar 2009
المشاركات: 6
نشاط [ Eng/Warrior ]
قوة السمعة:0
قديم 01-03-2009, 03:46 PM المشاركة 8   
افتراضي


أنا مبسوط اوي من الفكرة دي لانه شئ فعلا جميل ان تساعد !!!!

طلب بسيط انا عايز اعمل lcd كبيرة مكتوب عليها مثلا مرحبا بكم ... و بعض الكلمات الاخري ... تسطيع ان تري هذا في الشارع او علي المحلات ... أرجو المساعدة


شكرا جزيلا

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 12:30 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2020