NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 5401 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 8 از 8

موضوع: موتور پله اي ...

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    May 2009
    نوشته ها
    28
    تشکر
    0
    تشکر شده 2 بار در 2 پست

    پیش فرض موتور پله اي ...

    برنامه اي كه موتور 720 درجه به صورت نيم پله در جهت حركت عقربه هاي ساعت به زبان C رو مي خواستم
    برنامه زير يك نمونه ازش هست اما نمي دانم در دستور for عدد 100 از كجا اومده ؟
    اينم برنامه :

    #include <mega16>
    #include <delay>


    int i;
    void main(void)
    {
    DDRB=0x00;
    PORTB=0xFf;
    DDRD=0xFF;
    while(1){
    if(PINB.0==0){
    for(i=0;i<=100;i++){
    PORTD=0b1001;
    delay_ms(5);
    PORTD=0b1000;
    delay_ms(5);
    PORTD=0b1100;
    delay_ms(5);
    PORTD=0b0100;
    delay_ms(5);
    PORTD=0b0110;
    delay_ms(5);
    PORTD=0b0010;
    delay_ms(5);
    PORTD=0b0011;
    delay_ms(5);
    PORTD=0b0001;
    delay_ms(5);
    }
    }
    if(PINB.1==0){
    for(i=0;i<=250;i++){
    PORTD=0b0001;
    delay_ms(5);
    PORTD=0b0010;
    delay_ms(5);
    PORTD=0b0100;
    delay_ms(5);
    PORTD=0b1000;
    delay_ms(5);
    }
    }

    };
    }

    آيا محاسبات زير براي برنامه بالا درست است ؟
    تعداد پالس * تاخير بين پالس هاي ارسالي = زمان يك دور كامل = 0.5*5
    تعداد پالس = 360 /720= 0.5
    اما نمي دونم چرا با برنامه بالا صدق نمي كنه ؟

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر علاقه مند
    تاریخ عضویت
    May 2009
    نوشته ها
    28
    تشکر
    0
    تشکر شده 2 بار در 2 پست

    پیش فرض

    كسي از دوستان تا حالا با موتور پله اي كار نكرده ؟

  4. #3
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    دستور for یک شرط هست for(i=0;i<=100;i++){ این شرط میگه ، مقدار متغییر i را از صفر یک واحد اافه کن و هر وقت مقدار i برابر 100 شد حلقه رو ترک کن ، یعنی این حلقه 100 بار تکرار میشه :
    for(i=0;i<=100;i++){
    PORTD=0b1001;
    delay_ms(5);
    PORTD=0b1000;
    delay_ms(5);
    PORTD=0b1100;
    delay_ms(5);
    PORTD=0b0100;
    delay_ms(5);
    PORTD=0b0110;
    delay_ms(5);
    PORTD=0b0010;
    delay_ms(5);
    PORTD=0b0011;
    delay_ms(5);
    PORTD=0b0001;
    delay_ms(5);
    }
    در مورد موتور پله ای شما ، هر موتور دارای یک پله و زاویه خاص هست ، و با توجه به همین مشخصات تعداد پالس به دست میاد ، مشخصات موتور رو بگید تا یه مثال بزارم ، برای بدست اوردن پله ، موتور رو بچرخونید ، تعداد استپ ها (جایی که یه مقدار پیچ سفت میشه ) در یک دور رو بزارید

  5. #4
    کاربر علاقه مند
    تاریخ عضویت
    May 2009
    نوشته ها
    28
    تشکر
    0
    تشکر شده 2 بار در 2 پست

    پیش فرض

    سلام - زاويه اين موتور 1.8 درجه است - حالا برنامه اي مي خوام كه موتور 7 دور به صورت نيم پله بچرخد -چطوري ميشه ؟

    راستي من يك موتور پله اي خريده ام كه فقط 4 سيم خرجي داره سيم پنجمش كه همان com باشه كجاست ؟

  6. #5
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    سلام - زاويه اين موتور 1.8 درجه است - حالا برنامه اي مي خوام كه موتور 7 دور به صورت نيم پله بچرخد -چطوري ميشه ؟
    این برنامه ای که شما میخوایید نیازی به زاویه نداشت
    کد:
    #include <mega16> 
    #include <delay> 
    int i; 
    void main(void) 
    { 
    DDRD=0xFF; 
    while(1){ 
    i
    for(i=0;i<=6;i++){ 
    PORTD=0b1001; 
    delay_ms(5); 
    PORTD=0b1000; 
    delay_ms(5); 
    PORTD=0b1100; 
    delay_ms(5); 
    PORTD=0b0100; 
    delay_ms(5); 
    PORTD=0b0110; 
    delay_ms(5); 
    PORTD=0b0010; 
    delay_ms(5); 
    PORTD=0b0011; 
    delay_ms(5); 
    PORTD=0b0001; 
    delay_ms(5); 
    } 
    
    };
    ( من برنامه بالا رو توی نت پد نوشتم )
    راستي من يك موتور پله اي خريده ام كه فقط 4 سيم خرجي داره سيم پنجمش كه همان com باشه كجاست ؟
    راه اندازی این موتور ها یه مقداری سخت تر از موتور های معمولی هست و به نوعی طریقفه اعمال پالس فرق داره ، یه مقاله در مورد موتور داشتم ، پیدا میکنم و میزارم

  7. #6
    کاربر علاقه مند
    تاریخ عضویت
    May 2009
    نوشته ها
    28
    تشکر
    0
    تشکر شده 2 بار در 2 پست

    پیش فرض

    يعني نوع موتور مثلا 1.8 درجه يا بالاتر در نوشتن برنامه تاثيري نداره ؟

    چرا موتور پله اي كه من خريدم چهار سيم داره ؟

  8. #7
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    يعني نوع موتور مثلا 1.8 درجه يا بالاتر در نوشتن برنامه تاثيري نداره ؟
    مقدار پله رو برای مواقعی استفاده میکنن که شما بخوایید روی یه زاویه خاص قفل بشید . موتور شما میخواد 7 دور بچرخه ، ما باید 7 سری بهش پالس بدیم .
    چرا موتور پله اي كه من خريدم چهار سيم داره ؟
    این موتور پله ای شما ، یه نمونه از استپ متور ها هست ، راه اندازی این موتور هم تقریبا مانند موتور 5 سیمه هست ،

  9. #8
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2009
    نوشته ها
    68
    تشکر
    0
    تشکر شده 2 بار در 2 پست

    پیش فرض

    سلام - ميشه براي قفل كردن روي يك زاويه خاص يك مثال برنامه اي بزنيد !

    راه اندازي اين استپ موتور كه كه چهار سيم داره چطوري ؟ يعني چطور به آي سي درايور ULN2003 ويا .... متصلش كنم ؟

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •