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

   

emad hesen
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2006
المشاركات: 69
نشاط [ emad hesen ]
قوة السمعة:
قديم 24-06-2010, 10:13 AM المشاركة 41   
ha



استاذى العزيز winmad
اشكرك كثيرا على سرعةالاستجابة......
فعلا وجدت السبب فى عد ظهور السطر الاول فى عدم تثبيت اطراف الشاشة جيدا ولكن وجدت ان ان درجة الحرارة ثابتة بين درجتى 16 و 20 وانها لاتزيد مهما عرضت الترانزستور lm35 لدرجة حرارة الكاوية عدا ذلك كل شىء تمام
ارجو تفسير ذلك ولسيادتكم وافر الشكر والاحترام

اعلانات

geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,134
نشاط [ geniusse01 ]
قوة السمعة:
قديم 24-06-2010, 11:26 AM المشاركة 42   
افتراضي


السلام عليكم

جزاك الله كل خير وجعله في ميزان حسناتك يوم القيامة ...مشروع جميل جدا وشرح اكثر من رائع...

عندي ملاحظتين..

1/ بالنسبة لليدات التي تدل على عمل الريليهات لماذا قمنا بفصلها عن المخرج الاساسي الذي يصل الى الريليه وبالتالي استخدمنا مدخلين اضافيين نحن قد نحتاج اليهما...اليس من الافضل مثلا ان نصل الليد قبل الترانزستور (مع مقاومة الحماية وبالتالي نحصل على توفير للاطراف؟؟

2/بالنسبة لدرجة الحرارة التي نتحكم فيها اذا كان المطلوب هو المحافظة على درجة حرارة ثابتة مثل فرن او شي من هذا القبيل فهذا ممكن..ولكن في حال استخدام التحكم مثلا في درجة حرارة غرفة اعتقد ان يكون هناك مجال مثلا 5 درجات بين القيمة التي يعمل عندها السخان والمروحة لان الانسان لن يحس بدقة كبيرة بدرجة حرارة واحد فقط ..هذا مجرد رايي الشخصي...

وبالنهاية هذا مشروع اكثر من رائع وجزاك الله كل خير...

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

salm
:: موقوف ::
تاريخ التسجيل: Oct 2009
المشاركات: 2
نشاط [ salm ]
قوة السمعة:
قديم 30-07-2010, 12:31 PM المشاركة 43   
افتراضي


مشكوووووووووووووووووووووور بارك الله فيك


salm
:: موقوف ::
تاريخ التسجيل: Oct 2009
المشاركات: 2
نشاط [ salm ]
قوة السمعة:
قديم 30-07-2010, 12:32 PM المشاركة 44   
افتراضي


تابع ..
الجزء الثاني من المشروع الاول


- المبدل التشابهي الرقمي في المتحكم والتعليمات الخاصة في MicroC
إن المبدل التشابهي الرقمي في هذا المتحكم هو بطول 10 بت أي 210=1024 وبالتالي فان القيمة التي سيعطيها المبدل ستكون من ---1023) 0) من أجل مجال جهد الدخل من
( 0—Vcc ) .
تعطى العلاقة التي تحسب القيمة في مسجل المبدل ( قيمة التبديل ) بالشكل التالي :
ADC_val=(V_in×1024)/V_ref

ملاحظة: لا حاجة لضرب القيمة بـ1024 فهي مضروبة داخلياً في مكتبية (ADC) في لغة
البرمجة MicroC بالتالي يصبح
ADC_val=V_in/V_ref
حيث : V_in :الجهد على قطب المبدل المطبق خارجيا .
V_ref:الجهد المرجعي للمبدل ويساوي فولط
ADC_val : القيمة الموجودة في مسجل المبدل داخل المتحكم



وبالتالي يكون الجهد النهائي الذي نرغب الحصول عليه وهو:
V_in=ADC_val×V_ref
وفي مشروعنا أخذنا الجهد المرجعي من داخل المتحكم وبالتالي :
V_ref=5
ومنه : يجب أن نكتب في البرنامج :
V_in=ADC_val×5
التعليمات الخاصة للمبدل التشابهي الرقمي في برنامج MicroC
هناك مكتبية خاصة بالمبدل في برنامج MicroC تسمى (ADC) . يوضح الجدول التالي التعليمات المستخدمة لتشغيل المبدل في البرنامج :
;(Unsigned ADC_Read(unsigned short channel
بين القوسين يجب تحديد قطب المحول المستخدم
النتيجة ستخزن في متحول من نوع unsigned

الشاشة LCD باستخدام المتحكم والتعليمات الخاصة بها في MicroC
يعتبر وصل الشاشة وتشغيلها باستخدام المتحكم أمر سهل نوعا ما فيكفي أن نحدد ماهي الأقطاب الواجب وصلها مع المتحكم وتعريفه بذلك .
كما تعرفنا سابقا فهناك 16 قطب لهذه الشاشة سيتم وصل ستة أقطاب منها فقط للمتحكم والباقي سيتم وصلها كهربائيا مباشرة بدون المتحكم .
الاقطاب التي سيتم وصلها بدون المتحكم هي :
- القطب (1) VSS:قطب التغذية السالب ويطبق عليه جهد صفر فولط
- القطب (2) : VDDقطب التغذية الموجب ويطبق عليه خمسة فولط
- القطب (3) VEE قطب التباين نطبق عليه صفر فولط .
- القطب (5) RW قطب القراءة أو الكتابة : نطبق صفر لأننا سنقرأ فقط من الشاشة
- القطبين ( 16و15) K , A قطبي الليد الذي يضيء خلفية الشاشة يوصل 15 بالأرضي
وال16 بالخمسة فولط.
الاقطاب التي سيتم وصلها بالمتحكم هي :
- القطب (4) RS مسجل اختيار الدخل
- القطب (6) E قطب التمكين
- الأقطاب: D7 D6 D5 D4 أقطاب المعطيات للشاشة
جدول بالتعليمات الهامة المستخدمة في المشروع لتشغيل الشاشة في MicroC :
كما نعلم فهناك مكتبية خاصة بالشاشة في برنامج MicroC وهذا يسهل العمل والجدول التالي يوضح أهم التعليمات المستخدمة في المشروع :

[IMG][IMG]http://up.**********/files/7yzapu6lrqao9npmf9y7.jpg[/IMG][/IMG]

مخطط توصيل الدارة على برنامج بروتيوس :
[IMG][IMG]http://up.**********/files/fi8wf5olrfjs7rhi0x2c.jpg[/IMG][/IMG]

مخطط توصيل الدارة في برنامج ايجل schematic

[IMG][IMG]http://up.**********/files/ej3eq976f4o98noejnjx.jpg[/IMG][/IMG]

الكود بلغة ال C مع الشرح الكامل لكل سطر

[IMG]http://up.**********/files/1qskxc07t2x71irlcq0p.jpg[/IMG]
[IMG]http://up.**********/files/qt5tb59t51qlwkmppz0u.jpg[/IMG]

وأخيرا والاهم رابط تحميل المشروع كاملا في مجلد مضغوط يحتوي على :
- الكود بلغة السي ( ملفات برنامج MicroC )
- مخطط الدارة المطبوعة ببرنامج ايجل ( schematic and board )
- محاكاة الدارة ببرنامج بروتيوس
- الشرح الكامل في ملف pdf
الرابط هو :
http://www.zshare.net/download/769121694266e8f7/

في الجزء القادم سأقوم بشرح بعض تفاصيل الهاردوير من أجل نجاح الدارة الفعلية

أسأل الله أن أكون قد قدمت ولو جزء يسير مما قد يفيد أمتي
أرجو ممن راى الفائدة رأن لا ينساني من الدعاء

والحمد لله رب العالمين
مشكوووووووووووووووووووووور بارك الله فيك


maha hamdy
:: موقوف ::
تاريخ التسجيل: Jun 2010
المشاركات: 1
نشاط [ maha hamdy ]
قوة السمعة:
قديم 01-08-2010, 11:15 PM المشاركة 45   
ha


لو سمحت ممكن نفس المشروع بس بلغة ال basic محتجاه ضروري اوي


الصورة الرمزية mhmd.sh89
mhmd.sh89
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2009
الدولة: لبنان-ضاحية العزة والكرامة
المشاركات: 184
نشاط [ mhmd.sh89 ]
قوة السمعة:
قديم 04-08-2010, 01:57 AM المشاركة 46   
افتراضي


السلام عليكم

عندي سؤال هو انك قلت :ان Vin=ADC*Vref
ولكن عند كتابة المشروع لم تكتب هذا بل كتبت Vin =ADC*5/10 وأنت قلت أنها 10 ميلي ولكن اذا كانت ميلي يجب ان تكتب 0.01 او ال 5 تكتب 5000 ميللي

وثانياً انا اقترح بالنسبة لل button of inc and dec أن يكونوا بشكل interrupt لأن هذا سيمنح تلبية سريعة له ولن يأخر أبداً ، ماذا ترى اخي geniuss

أتمنى أن تكون إقتراحاتي مفيدة

سلام


الصورة الرمزية mustafa mohamed
mustafa mohamed
:: مهندس ::
تاريخ التسجيل: Sep 2009
الدولة: السودان
المشاركات: 15
نشاط [ mustafa mohamed ]
قوة السمعة:
قديم 26-08-2010, 11:10 PM المشاركة 47   
Thumbs up


جزاك الله خير وجعله في ميزان حسناتك والى الامام دائما
ارجو شرح تفصيلى لهذة الاوامر
temp_res = (temp_res *5)/10;
IntToStr(temp_res,temp);


mahmoudgamal
:: مهندس ::
تاريخ التسجيل: Aug 2010
المشاركات: 1
نشاط [ mahmoudgamal ]
قوة السمعة:
قديم 29-08-2010, 06:14 AM المشاركة 48   
افتراضي


موضوووع كويس جدا يا بشمهندس ... ربنا يكرمك
ولكن عندى ملاحظة بسيطة وهى
بالنسبة لـ ADC فهو 10Bits معنى ذلك ان دقته تكون Vref/2048
وحيث ان دالة ADC_read() ترجع المستوى ADC LEVEL فى 10bits بذلك عندما نريد ارجاع قيمة الفولت المقاس حاليا ثم نحوله الى درجة الحرارة المكافئة والتى هى 10mv/C نقوم بالضرب فى دقة الـADC ثم نحول الفولت المقاس الى درجة الحرارة بقسمته على 10mv

temp=(ADC_LEVEL*(5/2048)/.010)



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