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

   

زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 2,945
نشاط [ زكي شاكر ]
قوة السمعة:
قديم 30-05-2009, 08:37 PM المشاركة 537   
win



السلام عليكم
جميل جدا أخي أحمد .. استعمال الادوات المتاحة ومنها استخدام الماكرو وادوات الشرط..
(للتذكير الماكرو = برنامج فرعي = Subroutine/ Routine )
بالعودة الى ملفك تلاحظ ان فلوكود يخرج لك رسالة معناها ان القسمة على 0 غير ممكنة..
فلوكود يراقب عمل البرنامج والعمليات التي تريد برمجتها..
انت اسندت المتغير L الى احد المفاتيح وبذلك فالقيمة التي يأخذها L اما ان تكون 0 عندما لايكون السويتش مغلقا او 1 عندما يكون مغلقا ..في الحالة الاولى L = 0 لذلك تخرج لك تلك الرسالة
نفس الامر بالنسبة للمتغير C مع السويتش الثاني ..
المشكل انك استخدمت المتغير لوظيفتين مختلفتين : جعلته متغير مرتبط برمجيا بالسويتش وفي نفس الوقت جعلته احد حدود عملية القسمة في مكان آخر ..
اظنني اعرف الى اين تريد ان تصل..لكن أرى ان ترجئ عملية ادخال القيم بسويتشات الى مرحلة قادمة ان شاء الله..
الان يمكن إلغاء المفاتيح والاكتفاء بإسناد القيم ل L او C مباشرة (يدويا) ثم اخضاع ذلك للشرط الذي يحقق المهمة..
من جهة اخرى اذا احببت اظهار الناتج على المنفذ "ب" يتعين حجز المنفذ كله وليس فقط احد اطرافه ..حتى تكون النتيجة الظاهرة كاملة ..ذلك ان المتغير متكون من 8bits و PORTB كذلك ..
اتمنى ان يكون في ما سبق ما هو مفيد للتقدم بمشروعك خطوة الى الامام ..
تحياتي وأرجو لك التوفيق

اعلانات

الصورة الرمزية احمد العراقي
احمد العراقي
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2006
المشاركات: 147
نشاط [ احمد العراقي ]
قوة السمعة:
قديم 31-05-2009, 04:54 PM المشاركة 538   
افتراضي


السلام عليكم
جميل جدا أخي أحمد .. استعمال الادوات المتاحة ومنها استخدام الماكرو وادوات الشرط..
(للتذكير الماكرو = برنامج فرعي = Subroutine/ Routine )
بالعودة الى ملفك تلاحظ ان فلوكود يخرج لك رسالة معناها ان القسمة على 0 غير ممكنة..
فلوكود يراقب عمل البرنامج والعمليات التي تريد برمجتها..
انت اسندت المتغير L الى احد المفاتيح وبذلك فالقيمة التي يأخذها L اما ان تكون 0 عندما لايكون السويتش مغلقا او 1 عندما يكون مغلقا ..في الحالة الاولى L = 0 لذلك تخرج لك تلك الرسالة
نفس الامر بالنسبة للمتغير C مع السويتش الثاني ..
المشكل انك استخدمت المتغير لوظيفتين مختلفتين : جعلته متغير مرتبط برمجيا بالسويتش وفي نفس الوقت جعلته احد حدود عملية القسمة في مكان آخر ..
اظنني اعرف الى اين تريد ان تصل..لكن أرى ان ترجئ عملية ادخال القيم بسويتشات الى مرحلة قادمة ان شاء الله..
الان يمكن إلغاء المفاتيح والاكتفاء بإسناد القيم ل L او C مباشرة (يدويا) ثم اخضاع ذلك للشرط الذي يحقق المهمة..
من جهة اخرى اذا احببت اظهار الناتج على المنفذ "ب" يتعين حجز المنفذ كله وليس فقط احد اطرافه ..حتى تكون النتيجة الظاهرة كاملة ..ذلك ان المتغير متكون من 8bits و PORTB كذلك ..
اتمنى ان يكون في ما سبق ما هو مفيد للتقدم بمشروعك خطوة الى الامام ..
تحياتي وأرجو لك التوفيق

السلام عليكم

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

بالنسبة لوضع المفتاح A0 لكي اختار نوع الفحص L أو C

اما المفتاح الثاني وضع لكي لاتكون قيمة f = صفر لان العملية الحسابية غير ممكنة وهو مؤقت لان يكون مكانه اشارة التردد الحقيقي بعد اكمال الدائرة الحقيقة


فارجوا الاطلاع على المرفق مع المشروع وهذا هو

أريد أن أضع بعض الملاحظات حتى يكون التصحيح نافع ومجدي بنفس الوقت

1- وضعت المفتاح A0 لكي اختار نوع الفحص L أو C

2 – وضعت المفتاح الثاني لكي اخبر المايكرو كنترول أن هناك تردد داخل لان الدائرة لم تكتمل وعند التنفيذ يكون بدلاً منه هو التردد الحقيقي

3-هذة القوانين التي استخدمتها للعمليات الحسابية


1000000
ــــــــــــــــــــــــــــــ= L(micro.H
C ×F ×4


1000000
ــــــــــــــــــــــــــــــــــــــــــــــ= (C(pf)
L × F × 4


وقد استخدمت في حالة قياس L أن تكون C= 1000 بيكو فاراد وفي حالة قياس C أن يكون L = 82 مايكرو هنري

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

أرجو من الله لك التوفيق ودوام الصحة واعتذر منك كثيراً لان اشعر قد أثقلت عليك كثيراً

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

زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 2,945
نشاط [ زكي شاكر ]
قوة السمعة:
قديم 31-05-2009, 05:44 PM المشاركة 539   
win


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


اظن ان الحل يتمثل في تخصيص متغير آخر للمفتاح او للطرف الذي ستدخل منه التردد f
ومتغير اخر تضع فيه نتيجة قياس التردد (قياس عدد النبضات خلال 1 ثانية) يمكن ان تسميه F اذا شئت ..




التعديل الأخير تم بواسطة : زكي شاكر بتاريخ 01-06-2009 الساعة 01:00 PM

الصورة الرمزية احمد العراقي
احمد العراقي
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2006
المشاركات: 147
نشاط [ احمد العراقي ]
قوة السمعة:
قديم 31-05-2009, 06:07 PM المشاركة 540   
افتراضي


السلام عليكم


مشكور يا استاذ زكي لقد عمل البرنامج بصورة جيد بعد ان تم التعديل حسب ما تقدم من توجهاتكم

مشكور جدا جدا هل هناك اي توصيات للخطوة القادمة يا استاذ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟


الصورة الرمزية محمود العراقى
محمود العراقى
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2009
المشاركات: 180
نشاط [ محمود العراقى ]
قوة السمعة:
قديم 31-05-2009, 06:35 PM المشاركة 541   
افتراضي


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


زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 2,945
نشاط [ زكي شاكر ]
قوة السمعة:
قديم 31-05-2009, 06:56 PM المشاركة 542   
win


السلام عليكم


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


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


الصورة الرمزية احمد العراقي
احمد العراقي
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2006
المشاركات: 147
نشاط [ احمد العراقي ]
قوة السمعة:
قديم 31-05-2009, 07:18 PM المشاركة 543   
افتراضي


[QUOTE=زكي شاكر;280135]لا شكر على واجب اخي والحمد لله الذي هداك الى الحل ..




نعم ..
ترسل لي الملف المعدل ..

مشكور يا استاذ زكي

الملف المعدل هنا


التعديل الأخير تم بواسطة : احمد العراقي بتاريخ 31-05-2009 الساعة 07:38 PM

زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 2,945
نشاط [ زكي شاكر ]
قوة السمعة:
قديم 01-06-2009, 01:02 PM المشاركة 544   
win


السلام عليكم
أظن أن أصل الموضوع هنا..
http://www.qariya.com/vb/showthread.php?t=9533

وعلى كل ..سواء منه او من غيره وإذا انطلقنا من الدائرة التالية :



http://ironbark.bendigo.latrobe.edu.au/~rice/lc/lcdiagram.gif
الموجودة في الموقع التالي :
http://ironbark.bendigo.latrobe.edu.au/~rice/lc/
والذي وجدت رابطا له في المشاركة التالية:
http://www.qariya.com/vb/showpost.php?p=265304&postcount=123
فان الدائرة تنطبق على وصفك الأول للمشروع..
بالنسبة للعرض اسمح لي بهذا الاقتراح :
متابعة لمنهجية التدرج ارى ان تقسم المشروع الى مرحلتين :
1- تحتفظ بطريقة العرض LCD بهذا تركز على تنفيذ ما تبقى من Lcmeter وهو طريقة قياس التردد ..
2- تغير طريقة العرض الى 7segments
طريقة قياس التردد :
تدخل التردد من أي طرف شاغر و تستخدم مقاطعة timer0 ..لبداية لحظة عد النبضات خلال ثانية واحدة ..
طريقة العرض 7segments:
تخصص المنفذ ب للعرض بالتتابع.
- 4 اطراف الاولى من المنفذ توصلها بديكودر 7447
- 4 اطراف الباقية توصل كل واحد منها بالقطب المشترك لاحدى العارضات .. بحسب عدد العارضات المستعملة في المشروع ..
المرحلة السابقة كانت أساسية بالنسبة لمشروعك وفيها حققت 50% منه ..ما تبقى ليس مشكلة ما هو إلا تطبيق لما سبق من مواضيع في الدورة خاصة وانك ضابط للخلفيات الرياضية اللازمة..
وعندك كل ما يلزم لتكملة مشروعك
في روابط دورة فلوكود وفي المناقشات والتطبيقات التي أرفقها الأخوة الأعزاء الذين ساهموا مشكورين بحوارهم وأسئلتهم الذكية في إغناء هذا الموضوع وإثرائه ..



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