Arduino с шаговым двигателем в Proteus

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем ledpinD9, 19 июн 2013.

  1. ledpinD9

    ledpinD9 Нерд

    Здравствуйте! Так как не имею шагового двигателя под рукой, решил все протестировать в Proteus (ISIS Proteus), но столкнулся с проблемой. Сейчас шаг за шагом опишу порядок действий, возможно я допустил ошибки в программировании Arduino, либо в Proteus.

    Скачал проект «SIMULINO» сделанный в Proteus, который имитирует Arduino. Проверил на нем работоспособность парочки легких программ с миганием светодиодов, вроде все работает отлично. Далее добавил драйвер L293D и биполярный шаговый двигатель. В свойствах шагового двигателя указал напряжение 12V и угол поворот 1 градус. Все, на этом работа в Proteus закончилась.

    Картинки:
    01.png 02.png

    Далее написал программу на Arduino, которая должна поворачивать двигатель на 45, 90, 180 и 45 градусов. Так как шаг двигателя равен одному градусу, то переменная STEPS, принимает значение 360. Вроде ошибиться было негде.

    Код (C):
    #include <Stepper.h>

    #define STEPS 360 // Так как шаг равен 1-му градусу

    Stepper stepper(STEPS, 8, 9, 10, 11);

    void setup()
    {
       stepper.setSpeed(100);
    }

    void loop()
    {
       stepper.step(45);
       delay(2000);
       
       stepper.step(90);
       delay(2000);
       
       stepper.step(180);
       delay(2000);
       
       stepper.step(45);
       delay(1000);
    }
    Загрузив HEX файл скомпилированной программы в Proteus, я получаю, что двигатель поворачивается на 1-2 градуса и ждет 2 секунды, далее опять поворачивается на 1-2 градуса и снова ждет.

    Экспериментируя с кодом, я присвоил STEPS число 8, вместо 360. Ради интереса поделил оборот на 45 градусов. Результат был на ура! Все работает, даже если задать угол поворота 10 градусов (т.е. теория деления оборота на 45 градусов уже не работает). В чем дело?!

    Приложил архив "proteus uno.zip" с проектом в протеусе (Proteus 7.1 и выше), кодом программ и HEX файлами.
     

    Вложения:

    • proteus uno.zip
      Размер файла:
      30,5 КБ
      Просмотров:
      680
  2. ledpinD9

    ledpinD9 Нерд

    Проблема решена [читать], нужно увеличить RPM в свойствах шаговика в Proteus. Вместо 360 rpm поставить например 36000 rpm, а код не трогать.
     
    Megakoteyka нравится это.