Скетч и подключение для шагового двигателя
- Войдите на сайт для отправки комментариев
Пт, 05/10/2018 - 09:15
Добрый день,
требуется скетчи для работы шагового двигателя
1.
двигатель nema 23 1.8 A подключен к arduino nano через драйвер А4988 по данной схеме

скетч
/*Программа для вращения шагового мотора NEMA 17, серии 17HS4402 + драйвер A4988. Сначала мотор совершает полный оборот в одну сторону, потом в другую*/
/*целочисленная константа, хранящая номер цифрового контакта Arduino, который подаёт сигнал Step на драйвер. Каждый импульс от этого контакта — это перемещение мотора на один шаг*/
const int pinStep = 5;
/*целочисленная константа, хранящая номер цифрового контакта Arduino, который подаёт сигнал Direction на драйвер. Наличие импульса - мотор вращается в одну сторону, отсутствие - в другую*/
const int pinDir = 4;
//временная задержка между шагами мотора в мс
const int move_delay = 1;
//шагов на полный оборот
const int steps_rotate_360 = 200;
/*Функция, в которой происходит инициализация всех переменных программы*/
void setup()
{
/*задаём контактам Step и Direction режим вывода, то есть они выдают напряжение*/
pinMode(pinStep, OUTPUT);
pinMode(pinDir, OUTPUT);
//устанавливаем начальный режим
digitalWrite(pinStep, HIGH);
digitalWrite(pinDir, LOW);
}
/*Функция-цикл в которой задаётся поведение программы*/
void loop()
{
//устанавливаем направление вращения
digitalWrite(pinDir, HIGH);
for(int i = 0; i < steps_rotate_360; i++)
{
digitalWrite(pinStep, HIGH);
delay(move_delay);
digitalWrite(pinStep, LOW);
delay(move_delay);
}
}
Необходимо добавить кнопку "Пуск" - двигатель с постоянной скоростью делает N количество оборотов, двигатель останавливается (не в режиме Пауза). Цикл повторяется.
2.
Нужна схема подключения и скетч для arduino nano, драйвер TB6600, двигатель nemo 23 2.5A, lcd дисплей с возможностью ввода количества шагов, скорость оборотов, направление вращения. Принцип такой же что и предыдущий, нажимаем "Пуск", двигатель вращается с заданной постоянной скоростью N количество оборотов и полностью останавливается (не в режиме пауза). Цикл повторяется.
Конечно пишите. skif7361@ya.ru
Как раз сейчас делаю себе лазерную выжигалку, есть на чём ваши программы проверить
Или wrk.sadman@gmail.com (если скиф загнет цену).
Та когда я загинал? Я за доширак работаю
За доширак и качество работ соответствующее. Заказчику такое может не подойти.
Поставить кнопку в готовую программу - тут да, особое качество нужно. Задача на два доширака. А загнутая цена за мелочь - это признак качества?
Так я предоплату никогда не беру. Понравится заказчику - он меня накормит. Не понравится - я лапу сосать буду.
Дак чево тянуть, вставляй прямо тут кнопочку в готовую программу.
А доширак? Два доширака?
"Понравится заказчику - он меня накормит" (С)
"Понравится заказчику - он меня накормит" (С)
А меня?
А загнутая цена за мелочь - это признак качества?
7808543@gmail.com
Конечно пишите. skif7361@ya.ru
Как раз сейчас делаю себе лазерную выжигалку, есть на чём ваши программы проверить
Здравствуйте, вы оба варианта можете сделать?
конечно оба.
У скифа ещё и с юмором напряженка. Совсем печально.(
Спасибо всем за отклики, исполнитель найден
У скифа ещё и с юмором напряженка. Совсем печально.(
Ну да. Какой там юмор без доширака.
привет. maslachenko767@mail.ru пишите сделаем
Привет. Так я сделал уже
Хотел бы поблагодарить sadman41 за проделанную работу (не знаю при чем тут skif), все выполнено быстро и качественно, получил скетчи, схемы подключения и рекомендации, даже мне далекому от программирования все понятно. Тему можно закрывать.
Доброго времени суток. Такой вопрос: в каком приложении (сайте) вы имитируете собранные схемы.
Цена вопроса написать скетч для спидометра ,тахометра драйвер А4988 библиотекой AccelStepper?
часть скетча на AccelStepper
// считывается информация с кода данных OBD1 getOBDdata(OBD_RPM). Либо отдельным пином сигнала от Тахо
tachStepper.moveTo((long)(map(getOBDdata(OBD_RPM), 0, MAX_RPM_RANGE, 1, STEPS_PER_REVOLUTION * uSteps * 2)));
// считывается информация с кода данных OBD1 getOBDdata(OBD_SPD) Либо отдельным пином сигнала от SPD
spdStepper
}
tachStepper.run();
spdStepper.run();
}
}