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

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

الصورة الرمزية mar7aba_01
mar7aba_01
:: مهندس متميز ::
تاريخ التسجيل: Jan 2010
الدولة: المغرب
المشاركات: 746
نشاط [ mar7aba_01 ]
قوة السمعة:0
قديم 18-12-2012, 12:22 AM المشاركة 1   
افتراضي هل من الممكن أن ننجز برنامج بفلوكود لعمل pwm لانواع ميكرو لا يتوافر بها هذة الخاصية؟ Twitter FaceBook Google+



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

اعلانات

الصورة الرمزية noornader
noornader
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2007
المشاركات: 608
نشاط [ noornader ]
قوة السمعة:97
قديم 18-12-2012, 07:48 AM المشاركة 2   
افتراضي


وعليكم السلام اخى الكريم
نعم يمكن تنفيذ ذلك عن طريق برمجة احد اطراف منفذ معين كمخرج
بحيث تتم برمجة هذا الطرف لإخراج جهد +5 فولت لفترة زمنية معينة Ton ثم برمجته لإخراج صفر فولت لفترة زمنية اخرى Toff
ويتم تحديد تردد PWM عن طريق زمن التوصيل والفصل
ثم حلقة غير مشروطة لاستمرار انتاج النبضات .. تمنياتى لك بالتوفيق


التعديل الأخير تم بواسطة : noornader بتاريخ 18-12-2012 الساعة 08:36 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية mar7aba_01
mar7aba_01
:: مهندس متميز ::
تاريخ التسجيل: Jan 2010
الدولة: المغرب
المشاركات: 746
نشاط [ mar7aba_01 ]
قوة السمعة:0
قديم 18-12-2012, 06:37 PM المشاركة 3   
افتراضي


وعليكم السلام اخى الكريم
نعم يمكن تنفيذ ذلك عن طريق برمجة احد اطراف منفذ معين كمخرج
بحيث تتم برمجة هذا الطرف لإخراج جهد +5 فولت لفترة زمنية معينة Ton ثم برمجته لإخراج صفر فولت لفترة زمنية اخرى Toff
ويتم تحديد تردد PWM عن طريق زمن التوصيل والفصل
ثم حلقة غير مشروطة لاستمرار انتاج النبضات .. تمنياتى لك بالتوفيق
السلام عليكم ورحمة الله وبركاته
أشكرك أخي noornader على التفاعل ,
يمكن تنفيد البرمجة , لكن ما لم أوضحه في الإستفسار الأول أنه :
هل يمكن للمتحكم أن ينفذ باقي الأوامر أثناء فترة إخراج PWM ؟
ولو أمكنكم ترجمة هذا الكود سي للفلوكود :
والموجود في الموضوع التالي لأخينا " أشرف كمال 2 "


//USING TMR0 AS PWM SOURCE
// BY Eng : ASHRAF KAMAL ELHAMAHMY

char x;
void interrupt(){
x++;
if(x==5){
portb.f0=~portb.f0;
x=0;
}

tmr0=131;
INTCON.T0IF = 0; // timer will count 125 * prescale(=16)=2000 *5 (the x variable)= 10 ms ==>
//PORTB WILL change the bit state each 10 ms so the period will be
//Ton=10 ms && Toff=10 ms so T (total)=20 ms or 50 HZ

}

void main() {
trisb=0;
intcon=0b10100000;
option_reg=0x03; // prescale 2 selected
tmr0=131;
portb=0;
while(1){

PORTB.F3=1; // port b can do other thing while doing the PWM

}}
وشكرا لكم جميعا


الصورة الرمزية noornader
noornader
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2007
المشاركات: 608
نشاط [ noornader ]
قوة السمعة:97
قديم 19-12-2012, 07:22 AM المشاركة 4   
افتراضي


السلام عليكم ورحمة الله وبركاته
أشكرك أخي noornader على التفاعل ,
يمكن تنفيد البرمجة , لكن ما لم أوضحه في الإستفسار الأول أنه :
هل يمكن للمتحكم أن ينفذ باقي الأوامر أثناء فترة إخراج PWM ؟
ولو أمكنكم ترجمة هذا الكود سي للفلوكود :
والموجود في الموضوع التالي لأخينا " أشرف كمال 2 "
وشكرا لكم جميعا
وعليكم السلام اخى الكريم
بالطبع يمكن للمتحكم القيام بتنفيذ اوامر اخرى اثناء توليد النبضات ولكن من الاطراف الاخرى والغير مستخدمة فى توليد النبضات
اما بالنسبة لتحويل الكود من السى الى فلوكود فبالطبع ممكن ان كنت تجيد لغة السى .. ولكن للاسف فأنا لا اجيد التعامل معها ... تمنياتى لك بالتوفيق


Tico
:: عضو ذهبي ::
تاريخ التسجيل: May 2012
المشاركات: 1,426
نشاط [ Tico ]
قوة السمعة:115
قديم 20-12-2012, 07:24 PM المشاركة 5   
افتراضي


هل من الممكن أن ننجز برنامج بفلوكود لعمل pwm لانواع ميكرو لا يتوافر بها هذة الخاصية؟
ممكن أخي ..
هنا إحدى الطرق باستخدام مقاطعة التايمر 0 وامكانية تغيير Duty cycle (نسبة زمن التشغيل المائوية من الزمن الدوري):
Duty cycle = 25%
http://www.gulfup.com/?tqRxjR
Duty cycle = 50%
http://www.gulfup.com/?3ExQ3H
Duty cycle = 75%
http://www.gulfup.com/?rCQ8FE

تغيير Duty cycle في ماكرو التهيئة (Initialisation)


الصورة الرمزية mar7aba_01
mar7aba_01
:: مهندس متميز ::
تاريخ التسجيل: Jan 2010
الدولة: المغرب
المشاركات: 746
نشاط [ mar7aba_01 ]
قوة السمعة:0
قديم 23-12-2012, 07:37 PM المشاركة 6   
افتراضي


السلام عليكم أخوتي الكرام
أشكرك أخي
noornader
وأشكرك أخي
TICO
على الأمثلة ,


الصورة الرمزية mar7aba_01
mar7aba_01
:: مهندس متميز ::
تاريخ التسجيل: Jan 2010
الدولة: المغرب
المشاركات: 746
نشاط [ mar7aba_01 ]
قوة السمعة:0
قديم 25-12-2012, 02:25 PM المشاركة 7   
افتراضي


السلام عليكم
أخي راجعت الأمثلة التي رفعتها لي , ووجدت ضالتي بها تماما فكانت هي ما أبحث عنه ,
لكن لو تكرمت علينا بشرح تفاصيلها جزاك الله وكيف قمت بذلك كي أستوعبها وأعدل القيم لاحقا
لأني بحاجة ماسة لكي أجعل الميكروكنترولر يقوم بتنفيذ أوامر أخرى أثناء إخراجه لنبضات PWM من خمسة مخارج ,
أما بخصوص تعديل النبضات ,أود أن أجعل النبضات تخرج تصاعديا من 1 % - 5%-10%............. 100% ثم تنخفض النسب بالعكس ,
وشكرا لكم ,


الصورة الرمزية mar7aba_01
mar7aba_01
:: مهندس متميز ::
تاريخ التسجيل: Jan 2010
الدولة: المغرب
المشاركات: 746
نشاط [ mar7aba_01 ]
قوة السمعة:0
قديم 25-12-2012, 03:56 PM المشاركة 8   
افتراضي


السلام عليكم ورحمة الله
في الرابط التالي طريقة إنتاج موجة PWM من مكونات فلوكود :
http://www.4shared.com/office/uhtY3G...lowcode_.html?






لو أمكن الإخوة برمجة الميكرو بنفس الطريقة التي يقوم بها الفلوكود بدون استخدام خاصية PWM الموجودة بالفلوكود ومن مخارج غير مخرج PWM


التعديل الأخير تم بواسطة : mar7aba_01 بتاريخ 25-12-2012 الساعة 05:48 PM
إضافة رد

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

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

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


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

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