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

   

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 26-09-2014, 05:52 PM المشاركة 9   
افتراضي



أخي الكريم هل تقصد برمجه محركات الخطوه هذا الرابط مفيد
http://www.qariya.info/vb/showthread...E1%CE%D8%E6%E5

يمكنني مساعدتك في هذا الموضوع في حاله اذا كان شيئ غامض فيه
تحياتي

اعلانات

الصورة الرمزية hussien1995
hussien1995
:: عضو فضي ::
تاريخ التسجيل: Nov 2012
الدولة: syria
المشاركات: 764
نشاط [ hussien1995 ]
قوة السمعة:
قديم 26-09-2014, 06:24 PM المشاركة 10   
افتراضي


أخي حسن مقصد الأخ هو كالأتي:

كما هوَ مبين بالصورة ,ra0+ra1 موصول مع وصلت lpt التي توصل بدورها إلى الكمبيوتر وتعطي البك نبضات موجبة والمطلوب كالأتي:
عندما يوصل نبضة إلى ra0 يعمل ال rb0+rb1+rb2+rb3 بالتتالي عندما تأخذ البك النبضة الأولى تعمل rb0 والنبضة التالية تعمل rb1 وهكذا وعندما تأخذ الra1 نبضة مستمرة وتأخذ ra0 نبضات تقوم بعكس العملية,فعندما تأخذ rb0 نبضة تبدء تعمل من rb3 إلى الrb0 بشكل عكسي,أنا أعرف أنني لم أوضح بشكل جيد ولكن أتمنى أن تكون الفكرة قد وصلت وأنا سأحاول أن أوضح الفكرة بإستخدام الصور إن أمكن.

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

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 26-09-2014, 06:52 PM المشاركة 11   
افتراضي


أخي حسن مقصد الأخ هو كالأتي:

كما هوَ مبين بالصورة ,ra0+ra1 موصول مع وصلت lpt التي توصل بدورها إلى الكمبيوتر وتعطي البك نبضات موجبة والمطلوب كالأتي:
عندما يوصل نبضة إلى ra0 يعمل ال rb0+rb1+rb2+rb3 بالتتالي عندما تأخذ البك النبضة الأولى تعمل rb0 والنبضة التالية تعمل rb1 وهكذا وعندما تأخذ الra1 نبضة مستمرة وتأخذ ra0 نبضات تقوم بعكس العملية,فعندما تأخذ rb0 نبضة تبدء تعمل من rb3 إلى الrb0 بشكل عكسي,أنا أعرف أنني لم أوضح بشكل جيد ولكن أتمنى أن تكون الفكرة قد وصلت وأنا سأحاول أن أوضح الفكرة بإستخدام الصور إن أمكن.
عفوا بالنهايه تتحكم بمحركات الخطوه
اوكي اخي اذا أمكن ارفق الصور
بالنسبه لبرنامج بلغه مايكروسي ان شالله سهل اذا وضحت وظيفه العمل البرنامج
تحياتي


الصورة الرمزية hussien1995
hussien1995
:: عضو فضي ::
تاريخ التسجيل: Nov 2012
الدولة: syria
المشاركات: 764
نشاط [ hussien1995 ]
قوة السمعة:
قديم 26-09-2014, 07:47 PM المشاركة 12   
افتراضي


شكراً لردك السريع أخي حسن وتعاونك مع مشكلة الأخ وهي أيضاً مشكلتي بنفس الوقت.
بعد إذن صاحب الموضوع,سوف أضع صور توضح الفكرة بأقرب وقت.


الصورة الرمزية hussien1995
hussien1995
:: عضو فضي ::
تاريخ التسجيل: Nov 2012
الدولة: syria
المشاركات: 764
نشاط [ hussien1995 ]
قوة السمعة:
قديم 26-09-2014, 08:23 PM المشاركة 13   
افتراضي


أنظر إلى الصورة أخي حسن.

لنعتبر السويتش step هيَ النبضة القادمة من الكمبيوتر وهي موجبة 5فولت والسويتش dir أيضاً نبضة قادمة من الكمبيوتر وهي أيضاً 5فولت.
والمحرك كما هوَ موضح بالصورة يتكون من 6أسلاك إثنان موجب وأربعة سالب والموجب موصول إلى 12فولت والسالب كل سلك موصول إلى موسفيت,والموسفيت كما هوَ موضح موصول بالميكروكونترولر وهوَ مرقم من واحد إلى أربعة.
عندما تأتي نبضة موجبة من الكمبيوتر على رجل الأيسية رقم ra0 وهي الstep تقوم الميكروكونترولر بإعطاء الأمر للموسفيت رقم واحد بالعمل وعندما تأتي نبضة موجبة أخرى تأمر الموسفيت رقم 2 ونبضة أخرى تأمر الموسفيت رقم 3 ونبضة أخرى تأمر الموسفيت رقم 4 وعند النبضة المقبلة تعيد نفس العملية:1 ثم 2 ثم 3 ثم 4 ثم تعيد من الأول.
ولنقل أن هذا الترتيب لكي يدور المحرك بإتجاه اليمين وعندما نريده أن يدور بالعكس(إتجاه اليسار) سوف نعكس العملية فتصبح:4 ثم 3 ثم 2 ثم 1 ثم يعيد من الرابع.
ولعكس الإتجاه فهوَ سوف يتلقى إشارة أخرى من الكمبيوتر ولكن لن تأتي على شكل نبضات بل نبضة واحدة مستمرة 5فولت,أنظر الصورة.

عندما يريد الكمبيوتر أن يعكس إتجاء المحرك فإنهُ سوف يرسل نبضة مستمرة إلى الرجل رقم ra1 وهي dir ويرسل بالتالي نبضات إلى ra0 وهي الstep لكي تعكس دورات المحرك عن طريق البدء من الموسفيت الرابع إلى الأول.
الخلاصة:عندما يدور المحرك إلى اليمين كما إفترضنا هذا,سوف يعطي الكمبيوتر نبضات متتالية إلى ra0 وعندما يدور إلى اليسار(ليعكس إتجاه الألة)سوف يعطي الكمبيوتر نبضة مستمرة إلى ra1 ونبضات أيضاً إلى ra0.
أرجو أن يكون شرحي بسيط وتكون الفكرة قد وصلت وشكراً لك سلف أخي الكريم حسن على مساعدتك.


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,892
نشاط [ سعيد قادر ]
قوة السمعة:
قديم 26-09-2014, 08:40 PM المشاركة 14   
افتراضي


هكذا افضل لقراءة الكود


كود:
short int sayac=0;
void interrupt()
{ sayac = (sayac+1)%7;
INTCON.INTF=0;
}
void ayarlar()
{
OPTION_REG = 0x00;
INTCON.GIE = 1;
INTCON.INTE = 1;
TRISB=0x01;
PORTB=0;
TRISA=0;
PORTA=0;
}


signed int a,b;
unsigned char tablo[]={2,4,8,16 };
void main()
{
ayarlar();

/********************************************/
for(;{
PORTB=0;
/*********************************************/
if(sayac==0)
{
for(a=0;a<4;a++)
{
PORTB=tablo[a];
Delay_ms(4); // 4ms bekle
PORTA=sayac;
}
}
/********************************************/
if(sayac==1)
{
for(a=0;a<4;a++)
{
PORTB=tablo[a];
Delay_ms(80); // 80ms bekle
PORTA=sayac;
}
}
/********************************************/
if(sayac==2)
{

for(a=3;a>=0;a--)
{
PORTA=sayac;
PORTB=tablo[a];
Delay_ms(80); // 80ms bekle

}
}
/********************************************/
if(sayac==3)
{

for(a=0;a<4;a++)
{
PORTA=sayac;
PORTB=tablo[a];
Delay_ms(20); // 20ms bekle

}
}
/********************************************/
if(sayac==4)
{

for(a=3;a>=0;a--)
{
PORTA=sayac;
PORTB=tablo[a];
Delay_ms(20); // 20ms bekle

}
}
/********************************************/
if(sayac==5)
{
for(b=0;b<100;b++)
{
for(a=0;a<4;a++)
{
PORTA=sayac;
PORTB=tablo[a];
Delay_ms(5); // 5ms bekle
}
}
for(b=0;b<100;b++)
{
for(a=3;a>=0;a--)
{
PORTA=sayac;
PORTB=tablo[a];
Delay_ms(5); // 5s bekle
}
}
}
/**********************/
if(sayac==6) PORTB=0;

}
/********************************************/


}


النمرالفولاذي
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2012
المشاركات: 134
نشاط [ النمرالفولاذي ]
قوة السمعة:
قديم 26-09-2014, 09:01 PM المشاركة 15   
افتراضي


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


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 26-09-2014, 09:04 PM المشاركة 16   
افتراضي


أنظر إلى الصورة أخي حسن.

لنعتبر السويتش step هيَ النبضة القادمة من الكمبيوتر وهي موجبة 5فولت والسويتش dir أيضاً نبضة قادمة من الكمبيوتر وهي أيضاً 5فولت.
والمحرك كما هوَ موضح بالصورة يتكون من 6أسلاك إثنان موجب وأربعة سالب والموجب موصول إلى 12فولت والسالب كل سلك موصول إلى موسفيت,والموسفيت كما هوَ موضح موصول بالميكروكونترولر وهوَ مرقم من واحد إلى أربعة.
عندما تأتي نبضة موجبة من الكمبيوتر على رجل الأيسية رقم ra0 وهي الstep تقوم الميكروكونترولر بإعطاء الأمر للموسفيت رقم واحد بالعمل وعندما تأتي نبضة موجبة أخرى تأمر الموسفيت رقم 2 ونبضة أخرى تأمر الموسفيت رقم 3 ونبضة أخرى تأمر الموسفيت رقم 4 وعند النبضة المقبلة تعيد نفس العملية:1 ثم 2 ثم 3 ثم 4 ثم تعيد من الأول.
ولنقل أن هذا الترتيب لكي يدور المحرك بإتجاه اليمين وعندما نريده أن يدور بالعكس(إتجاه اليسار) سوف نعكس العملية فتصبح:4 ثم 3 ثم 2 ثم 1 ثم يعيد من الرابع.
ولعكس الإتجاه فهوَ سوف يتلقى إشارة أخرى من الكمبيوتر ولكن لن تأتي على شكل نبضات بل نبضة واحدة مستمرة 5فولت,أنظر الصورة.

عندما يريد الكمبيوتر أن يعكس إتجاء المحرك فإنهُ سوف يرسل نبضة مستمرة إلى الرجل رقم ra1 وهي dir ويرسل بالتالي نبضات إلى ra0 وهي الstep لكي تعكس دورات المحرك عن طريق البدء من الموسفيت الرابع إلى الأول.
الخلاصة:عندما يدور المحرك إلى اليمين كما إفترضنا هذا,سوف يعطي الكمبيوتر نبضات متتالية إلى ra0 وعندما يدور إلى اليسار(ليعكس إتجاه الألة)سوف يعطي الكمبيوتر نبضة مستمرة إلى ra1 ونبضات أيضاً إلى ra0.
أرجو أن يكون شرحي بسيط وتكون الفكرة قد وصلت وشكراً لك سلف أخي الكريم حسن على مساعدتك.
السلام عليكم
وضحت الصوره اذن أسأضيف الكود للتحكم بمحرك الخطوه



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