• include // Define the stepper motor and the pins that is connected to AccelStepper stepper1
  • Kod tavsifi
  • Misol kodi - tezlashuv va sekinlashuv bilan ikkita step motorini boshqarish




    Download 12,35 Mb.
    bet8/13
    Sana09.02.2024
    Hajmi12,35 Mb.
    #153839
    1   ...   5   6   7   8   9   10   11   12   13
    Bog'liq
    stepper word

    Misol kodi - tezlashuv va sekinlashuv bilan ikkita step motorini boshqarish


    AccelStepper kutubxonasi yordamida tezlashtirish va sekinlashtirishni amalga oshirish bilan ikkita step motorini boshqarishning yana bir misoli.
    /*
    Controlling two stepper with the AccelStepper library

    by Dejan, https://howtomechatronics.com
    */

    #include

    // Define the stepper motor and the pins that is connected to
    AccelStepper stepper1(1, 2, 5); // (Typeof driver: with 2 pins, STEP, DIR)
    AccelStepper stepper2(1, 3, 6);

    void setup() {

    stepper1.setMaxSpeed(1000); // Set maximum speed value for the stepper
    stepper1.setAcceleration(500); // Set acceleration value for the stepper
    stepper1.setCurrentPosition(0); // Set the current position to 0 steps

    stepper2.setMaxSpeed(1000);
    stepper2.setAcceleration(500);
    stepper2.setCurrentPosition(0);
    }

    void loop() {

    stepper1.moveTo(800); // Set desired move: 800 steps (in quater-step resolution that's one rotation)
    stepper1.runToPosition(); // Moves the motor to target position w/ acceleration/ deceleration and it blocks until is in position

    stepper2.moveTo(1600);
    stepper2.runToPosition();

    // Move back to position 0, using run() which is non-blocking - both motors will move at the same time
    stepper1.moveTo(0);
    stepper2.moveTo(0);
    while (stepper1.currentPosition() != 0 || stepper2.currentPosition() != 0) {
    stepper1.run(); // Move or step the motor implementing accelerations and decelerations to achieve the target position. Non-blocking function
    stepper2.run();
    //
    //
    }
    }Kod tili: Arduino ( arduino )
    Kod tavsifi:
    Shunday qilib, biz ikkita pog'onali motorni aniqlashimiz kerak va sozlashda setAcceleration() funktsiyasidan foydalanib, motorlar uchun tezlashtirish qiymatini o'rnatamiz. setCurrentPosition() funksiyasidan foydalanib, biz motorlarning o'rnini 0 qadamda qilib qo'ydik. 
    Loop bo'limida biz moveTo() funktsiyasidan boshlaymiz, bu orqali biz motorni qaysi pozitsiyaga borishi yoki qancha qadam harakatlanishi kerakligini aytamiz. Chorak bosqichli rezolyutsiyada 800 qadam bitta to'liq aylanishni anglatadi. Keyin, runToPosition() funktsiyasi tezlashtirish va sekinlashtirishni amalga oshirishda motorni o'sha holatga o'tkazadi. Biroq, bu blokirovka qiluvchi funktsiyadir, shuning uchun kodning bajarilishi step vosita bu holatga kelgunga qadar qoladi. 

    Xuddi shu usul bilan biz ikkinchi motorni 1600 qadam yoki chorak bosqichli o'lchamlari bilan ikkita to'liq aylanishni harakatga keltiramiz. 
    Dvigatel maqsadli holatga kelguncha kodimiz bloklanishini istamasak, runToPosition() funksiyasidan foydalanish o‘rniga run() funksiyasidan foydalanishimiz kerak. Run() shuningdek, maqsadli pozitsiyaga erishish uchun tezlashtirish va sekinlashtirishni amalga oshiradi, lekin u har bir qo'ng'iroq uchun bir qadam qiladi. Shuning uchun, biz uni iloji boricha tez-tez chaqirishimiz kerak. Shu sababli, biz bu erda ikkala motor uchun run() funksiyalarini bu while tsikliga joylashtiramiz, bu ikkala step 0 holatiga kelgunga qadar bajariladi. Oldin ikki motorni moveTo() funksiyalari bilan 0-holatga o'tish uchun o'rnatdik. 
    Shuningdek, biz ushbu "while" tsikliga qo'shimcha kod qo'shishimiz va dvigatelni ishga tushirishda boshqa narsalarni qilishimiz mumkin. Aslida, motorlarni ishga tushirish va boshqa narsalarni qilishning ko'plab usullari mavjud. Men kutubxonaning chiroyli tasvirlangan hujjatlarini ko'rib chiqishni tavsiya qilaman, shunda siz har bir funktsiya qanday ishlashini tushunishingiz va ularni ehtiyojlaringizga ko'ra amalga oshirishingiz mumkin.

    Download 12,35 Mb.
    1   ...   5   6   7   8   9   10   11   12   13




    Download 12,35 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Misol kodi - tezlashuv va sekinlashuv bilan ikkita step motorini boshqarish

    Download 12,35 Mb.