السلام عليكم ورحمة الله
اخوتي الاعزاء كنت قد كتبت كود للتحكم بمحرك خطوي عن طريق المتكاملة A4988 مع المايكرو كونترولر pic16f676
كود:
int x=0 ;
int a=0 ;
void main() {
TRISc = 0 ;
portc = 0 ;
do{
for(x=0;x<300;x++,portc.f1=0){
portc.f0=1;
delay_us(1900);
portc.f0=0;
delay_us(1900);
}
for(a=0;a<300;a++,portc.f1=1){
portc.f0=1;
delay_us(1900);
portc.f0=0;
delay_us(1900);
}
}
while(1);
}
هنا ال portc.f1 للتحكم بالاتجاه و portc.f0 للتحكم بالنبضات الداخلة على المتكاملة
المشكله ان المحرك يدور في الاتجاهين بشكل صحيح لكن بمسافة أكبر في احد الاتجاهين (في اتجاه المتغير x يقطع مسافة أكبر من المسافة في اتجاه المتغير a ) مع انه نفس القيم للاتجاهين
فهل يوجد مشكلة بالكود ؟ او لو من الممكن كود تحكم بالمحرك بنفس الفكرة بحيث عند زيادة قيمة المتغير x , a تزداد المسافة المقطوعة
ولكم مني جزيل الشكر