roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 09:16

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Arduino с шаговым двигателем в Proteus
СообщениеДобавлено: 20 июн 2013, 00:00 
Не в сети
Аватара пользователя

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

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

Вложение:
01.png
01.png [ 29.4 КиБ | Просмотров: 5628 ]

Вложение:
02.png
02.png [ 32.17 КиБ | Просмотров: 5399 ]


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

Код:
#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 7.1 и выше) и кодом программ с HEX файлами.
Вложение:
proteus uno.zip [30.52 КиБ]
Скачиваний: 0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino с шаговым двигателем в Proteus
СообщениеДобавлено: 20 июн 2013, 04:40 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
попробуй rpm большой поставить, анпример 36000

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino с шаговым двигателем в Proteus
СообщениеДобавлено: 20 июн 2013, 05:41 
Не в сети
Аватара пользователя

Зарегистрирован: 19 июн 2013, 23:54
Сообщения: 4
Только хотел ответить, что причем здесь скорость, но действительно сработало! Я в свойствах шаговика (в протеусе) поставил RPM 36000 (код не менял) и все работает. Спасибо :beer:

Правда, не знаете ли вы как это объяснить? Вроде все верно было задано до этого, в настройках протеуса максимальное RPM 360, в коде ардуино поставлено RPM 100.

Решил поставить еще один эксперимент, написать программу которая при включении при включении МК повернуть двигатель на 45 градусов и на этом закончить работу. При STEPS = 8, все работает отлично (поворачивается на 45 и заканчивает движение), а вот при STEPS = 360, поворот происходит только на 1,5 градуса и конец. Если поставить в свойствах шаговика RPM 36000, то и при STEPS = 360, все работает.

Код при STEPS = 8, все работает:
Код:
#include <Stepper.h>

#define STEPS 8

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

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

void loop(){}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO