Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.09.2012, 23:34   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Пример работы шаговых двигателей с простым "H мостом"

Периписал библиотеку Stepper для корректной работы ШД с H мостом.
Библиотека использует только режим полного шага биполярного ШД
Для ее использования распакуйте фаилы из архива CyberStepper.rar и поместите их в папку ...\arduino-00хх\libraries\CyberStepper

Требуемые параметры:

Количество шагов на один оборот, ищите в спецификации на Ваш ШД. Если Вы нашли параметр Step Angle: х.хх degree, то количество шагов на оборот Вы можете посчитать сами 360/x.xx=количество шагов на полный оборот

Скорость вращения - для более эффективной работы ШД нужно подобрать по его максимальной скорости вращения, помните что при очень низкой скорость можно сжечь ШД или контроллер. Рекомендую начинать со скорости 100, если при скорости 100 ШД не вращается, что мало вероятно, то плавно понижайте скорость с шагом 25. Если он не заработал на скорости 10, то значит ему недостаточно тока, тогда замените БП на более мощный. Если Ваш ШД запустился на скорости 100, то повышайте ее с шагом 50 до того момента пока мотор не зарычит или остановится. Если мотор зарычал или остановился то значит он достиг своего предела и нужно откатить скорость на один шаг назад. Так же имейте ввиду, что напряжения питания ШД, влияет на скорость его вращения

Пример кода для работы контроллера со встроенными H-мостами CyberBoard
PHP код:
#include <CyberStepper.h>
#define motA1 22
#define motA2 23
#define motB1 24
#define motB2 25
#define steps 200 //колличество шагов за один оборот мотора

Stepper stepper(stepsmotA1motA2motB1motB2);

void setup() 
{                
  
stepper.setSpeed(250);   //обороты/мин
}

void loop() 
{
 
stepper.step(1000); //сделать 1000 шагов в лево
 
stepper.step(-1000); //сделать 1000 шагов в право

Admin вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:26. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика