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

   

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



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

اعلانات

HugE
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2009
المشاركات: 73
نشاط [ HugE ]
قوة السمعة:
قديم 18-05-2009, 06:06 PM المشاركة 18   
افتراضي


يعطيك الف الف عافيه وسوف اضع الفكره كامله هنا ان شاء الله

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

HugE
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2009
المشاركات: 73
نشاط [ HugE ]
قوة السمعة:
قديم 21-05-2009, 07:08 AM المشاركة 19   
افتراضي


هذه هي فكرة المشروع

الفكره هي عمل

soft starting of induction motor

وذلك عن طريق عمل تقطيع للموجه الجيبيه الداخله على الموتور

ويكون التقطيع عن طريق دائره معروفه تحتوي على 2 ثايرستور معكوسين في الاتجاه

لكن هذه التفاصيل غيره مهمه حاليا


يكون التردد للموجه 60 Hz

اذا يكون زمن السايكل الواحد هو 60/1

ويساوي 0.016667 ثانيه



اذا هذا الزمن يعادل 360 درجه




اذا وبعمل حساب بسيط نجد ان

time = 0.000046 * Degree

مثلا اذا كانت alfa او degree او firing angle <<< كلها نفس المسمى

تساوي 30 درجه

اذا هذه الدرجه تعادل 1.389 ملي سكند او 1389 مايكروسكند



والان كيف يتم تتبع هذه الموجه او هذا التايم

يكون ذلك عن طريق قطعه لا اتذكر اسمها حاليا

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



هذا البلس سوف نقوم بادخاله على المايكرو وعند قدوم هذا البلس اريد ان يبدا متغير بالعد الى قيمة الزمن الذي نريد (مثلا عند الدرجه 30) ومن ثم نقوم باخراج بلس اخر من المايكرو للثايرستور


وطبعا كما شاهدنا فان الازمنه التي نتعامل بها تكون بالمايكرو ثانيه لان الازمنه صغيره جدا


وفي الاخير نحن نتعامل مع 3 phase وبالتالي سوف يكون عندنا 3 اشارات

على كل phase نفس الكلام المذكور سابقا


وانا لا اريد سوف ان اضبط المتغيرات بان يكون كل عده تعادل واحد مايكرو او اقل زمن ممكن حتى لو كان 10 مايكرو سكند

وللتذكير فقط بان الثانيه والواحد تعادل 1000000 (مليون ) مايكرو سكند

اي ان المتغير لو كان يزاداد كل واحد مايكرو فسوف ننتظره الى ان يصل الى مليون وبعدها سوف نصفر العداد

يعني بان كل ثانيه سوف يتصفر العداد من جديد


هذه هي الفكره اخي زكي شاكر


وشكرا


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


السلام عليكم
على هذا الاساس اعتقد ان لا مشكل عندك في الدقة الكبيرة جدا ويمكنك في نظري استعمال التايمر0 مع تردد 20 ميغاهرتز وتحميله بعدد صغير .
هذا اذا كنت تريد الاستفادة من المقاطعة ..
لكن اصغر زمن تحصل عليه باستخدام زمن تنفيذ تعليمة وهو زمن اقل من 1 ميكرو مع كوارتز 20 ميغاهرتز..مثال :
عداد يعد الى 1000 ثم يصفر وبدون ادخال اي تعليمة Delay سيستغرق العد الزمن التالي مع فارق بسيط:
1000*زمن تنفيذ تعليمة العد .
في هذا التطبيق مثلا احتاج الاخ noornader زمن توقيت 8 ميكرو.
وبما ان المذبذب = 4 ميغاهرتز اي ان زمن تنفيذ تعليمة = 1 ميكروتانية ..لذلك تم اتباع الخطوات التالية:
1-انشاء متغير و تسميته ب ctr_delay
2-تحويله الى عداد : 1+ ctr_delay = ctr_delay
3-ادخال جملة شرطية تراقب متى يصل العداد الى 8 فيتم تصفيره والعودة من جديد.
كما تلاحظ لم تدخل اية تعليمة Delay ومع ذلك فقد مرت 8 ميكروتانية ..


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

HugE
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2009
المشاركات: 73
نشاط [ HugE ]
قوة السمعة:
قديم 23-05-2009, 12:51 AM المشاركة 21   
افتراضي


السلام عليكم
على هذا الاساس اعتقد ان لا مشكل عندك في الدقة الكبيرة جدا ويمكنك في نظري استعمال التايمر0 مع تردد 20 ميغاهرتز وتحميله بعدد صغير .
هذا اذا كنت تريد الاستفادة من المقاطعة ..
لكن اصغر زمن تحصل عليه باستخدام زمن تنفيذ تعليمة وهو زمن اقل من 1 ميكرو مع كوارتز 20 ميغاهرتز..مثال :
عداد يعد الى 1000 ثم يصفر وبدون ادخال اي تعليمة Delay سيستغرق العد الزمن التالي مع فارق بسيط:
1000*زمن تنفيذ تعليمة العد .
في هذا التطبيق مثلا احتاج الاخ noornader زمن توقيت 8 ميكرو.
وبما ان المذبذب = 4 ميغاهرتز اي ان زمن تنفيذ تعليمة = 1 ميكروتانية ..لذلك تم اتباع الخطوات التالية:
1-انشاء متغير و تسميته ب ctr_delay
2-تحويله الى عداد : 1+ ctr_delay = ctr_delay
3-ادخال جملة شرطية تراقب متى يصل العداد الى 8 فيتم تصفيره والعودة من جديد.
كما تلاحظ لم تدخل اية تعليمة Delay ومع ذلك فقد مرت 8 ميكروتانية ..
جزاك الله كل خير اخي زكي شاكر

ولكن فعلت مثل ما قلت ولم اجد الناتج المرجو منه

يعني لو استخدمنا عداد مثل الموجود في المثال السابق مع مذبذب 20 MHz

فان زمن التنفيذ سوف يكون اقل من 1 مايكرو

= واحد تقسيم (20MHZ )

= 0.05 مايكروسكند

وبالتالي لو جلعنا المتغير يبدأ بالازدياد بواحد في كل زمن لتنفيذ التعليمه

يكون من المفترض انه لن يصل الى 1 ثانيه الا بعد اكثر من مليون عده


ولكن في برنامج البروتوس عندما قمت بعرض هذا الكلام وجدت انه يصل الى واحد ثانيه بعد 1000 عده

وذلك يعني ان زمن تنفيذ التعليمه هو 1 ملي سكند

وبالتالي يكون التردد هو 1000 Hz وهذا الكلام غير منطقي

وعندما قمت بعمل 3 متغيرات وليس واحد فقط ازداد زمن التنفيذ

فلا ادري هل المشكله عندي في الجهاز ام المشكله في برنامج السيموليشن


وهذا هو ملف المحاكاه للتاكد من كلامي ومرفق معه ملف البروتون وملف الاسمبلي وملف الهكس

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


زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 2,945
نشاط [ زكي شاكر ]
قوة السمعة:
قديم 23-05-2009, 01:34 PM المشاركة 22   
افتراضي


المثال الذي اعطيتك كان لتوضيح الطريقة ..طريقة صنع Delay اقل من 1ms
الذي تسمح به كومبيليرات لغات البرمجة "الحديثة" ..
بالنسبة لظاهرة بطء بروتوس هذا مشكل سبق ان عبر عنه اكثر من عضو ولم نجد له حلا .. وقد ظهر للبعض هنا والعبد لله من بينهم، خلال محاولة تقديم تطبيقات العرض بعارضات 7 segments مع البيك..
وهذا المشكل سبب رئيس فيما يخصني ، لعدم تمكني من عرض مشروع الساعة الرقمية بعارضات سباعية كما يطلبه الاخ العزيز الفارس العنيد ..
المشروع بالاسمبلي كامل والمشكل الوحيد في بروتوس..


HugE
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2009
المشاركات: 73
نشاط [ HugE ]
قوة السمعة:
قديم 24-05-2009, 12:42 AM المشاركة 23   
افتراضي


جزاك الله خير الجزاء وجعلها في ميزان حسناتك

ارحتني اخي العزيز من هذه المشكله والحمدلله

اذا سوف ابني الدائره وسوف اتاكد من الوقت من خلال الاوسيلسكوب

وان شاء الله ان نجحت الفكره سوف ابلغكم عنها باذن الله


وشكرا لك مره اخرى اخي زكي شاكر



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