Низкая скорость вращения шагового двигателя

Использование драйверов двигателей и пользовательских блоков к ним
Ответить
engineeradm
Рядовой
Сообщения: 10
Зарегистрирован: 25.09.2015{, 21:45}
Репутация: 0
Откуда: Noyabrsk

Низкая скорость вращения шагового двигателя

#1

Сообщение engineeradm » 19.10.2015{, 14:03}

Собрал схему в программе flprog на ардуино нано. проветривание помещения по температуре.
Установлен дисплей HD44780 I2C, датчик температуры DHT-11 с опросом раз в 5сек, шаговый двигатель.
При достижении заданного порога двигатель очень медленно вращается и стопорится на мгновение в момент обновления температуры, а потом опять шагает.
Сам двигатель без дисплеев и датчиков, т.е. голый проект с кнопкой запуска двигателя, вращается быстро.
В чем может быть проблема?
Я не программист, читал ускорение ардуино (http://geektimes.ru/post/255744/), но не понятно как это применить в мой код.
Очень нужна помощь.

Аватара пользователя
scadapack
Рядовой
Сообщения: 83
Зарегистрирован: 07.09.2015{, 05:18}
Репутация: 5
Откуда: Степногорск
Имя: Вячеслав

Низкая скорость вращения шагового двигателя

#2

Сообщение scadapack » 19.10.2015{, 19:04}

Надо бы ваш проект сюда выложить. Как в слепую посоветуешь?

engineeradm
Рядовой
Сообщения: 10
Зарегистрирован: 25.09.2015{, 21:45}
Репутация: 0
Откуда: Noyabrsk

Низкая скорость вращения шагового двигателя

#3

Сообщение engineeradm » 19.10.2015{, 19:57}

Там ничего сложного. Покаместь лишнее все убрал, оставил dht-11 - вывод на дисплей температуры (влажность тормозит еще сильнее), и оставил кнопку, которая дает команду напрямую в модуль шаговика.
Шаговик из набора вместе с uln 2003. Видно как плавно светики моргают, именно плавно.
Вложения
8789281.flp
(68.44 КБ) 93 скачивания
Последний раз редактировалось engineeradm 20.10.2015{, 07:18}, всего редактировалось 1 раз.

Аватара пользователя
vlaks
Рядовой
Сообщения: 46
Зарегистрирован: 08.09.2015{, 07:42}
Репутация: 0
Откуда: Сургут

Низкая скорость вращения шагового двигателя

#4

Сообщение vlaks » 20.10.2015{, 14:29}

uln2003 откуда питаете ?

engineeradm
Рядовой
Сообщения: 10
Зарегистрирован: 25.09.2015{, 21:45}
Репутация: 0
Откуда: Noyabrsk

Низкая скорость вращения шагового двигателя

#5

Сообщение engineeradm » 20.10.2015{, 20:40}

Проблема не в питании uln2003, она нормально работает, запитывал и отдельно и от платы ардуино.

Аватара пользователя
scadapack
Рядовой
Сообщения: 83
Зарегистрирован: 07.09.2015{, 05:18}
Репутация: 5
Откуда: Степногорск
Имя: Вячеслав

Низкая скорость вращения шагового двигателя

#6

Сообщение scadapack » 21.10.2015{, 06:16}

Ну тут надо экспериментировать, где именно идёт торможение. Попробуйте убрать дисплей для начала. Возможно контроллер постоянно перезаписывает в него информацию.

Аватара пользователя
kipiaxxx
Рядовой
Сообщения: 76
Зарегистрирован: 06.09.2015{, 14:15}
Репутация: 16
Откуда: Омск
Имя: Сергей

Низкая скорость вращения шагового двигателя

#7

Сообщение kipiaxxx » 21.10.2015{, 06:42}

scadapack писал(а):Попробуйте убрать дисплей для начала. Возможно контроллер постоянно перезаписывает в него информацию.
Скорее всего проблема именно здесь. Замечал, что LCD, подключённый по I2C, тормозит цикл очень сильно - обмен с Ардуиной ведёт непрерывно. По возможности, лучше его подключить отдельными 6-ю проводами.

engineeradm
Рядовой
Сообщения: 10
Зарегистрирован: 25.09.2015{, 21:45}
Репутация: 0
Откуда: Noyabrsk

Низкая скорость вращения шагового двигателя

#8

Сообщение engineeradm » 21.10.2015{, 18:32}

Спасибо за наводку! А как поменять дигитал врайт, реад и аналог врайт и реад? Эти команды очень сильно тормозят циклы

Добавлено (21.10.2015, 18:32)
---------------------------------------------
Как заменить, улучшить analogwrite, analogread, digitalwrite, digitalread как в статье http://m.geektimes.ru/post/255744/

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 790
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Низкая скорость вращения шагового двигателя

#9

Сообщение support » 22.10.2015{, 07:29}

В Вашем случае ускорение при переходе на непосредственную запись в регистры выходов и чтение из регистров входов не поможет. У Вас стоит датчик влажности и температуры DHT. Чтение данных с него занимает 0.8 секунды. И от этого никуда не денешся. У него протокол обмена такой. Так же обмен данными с дисплеем занимает какое - то не нулевое время, на которое приостанавливается работа программы. Это тоже не обойдёш.
В вашем случае решение проблеммы - разбить програму на два контроллера. Основной обслуживает дисплей, занимается чтением датчика, работает с кнопками и т.д. и отправляет команды управления по UART второму. Второй (что ни будь дешовенькое, типа про-микро), обслуживает непосредственно шаговик. По уарту получает команды, и отрабатывает их. Прошка в Китае стоит меньше ста рублей, в России немного подороже. С помощью FLProg реализовать такую архитектуру несложно.
Автор программы FLProg.

engineeradm
Рядовой
Сообщения: 10
Зарегистрирован: 25.09.2015{, 21:45}
Репутация: 0
Откуда: Noyabrsk

Низкая скорость вращения шагового двигателя

#10

Сообщение engineeradm » 22.10.2015{, 08:07}

Спасибо за ответ!

Аватара пользователя
scadapack
Рядовой
Сообщения: 83
Зарегистрирован: 07.09.2015{, 05:18}
Репутация: 5
Откуда: Степногорск
Имя: Вячеслав

Низкая скорость вращения шагового двигателя

#11

Сообщение scadapack » 23.10.2015{, 04:30}

А зачем вам вообще шаговый двигатель? Предполагаю, что вы им крутите лопасти вентилятора. Если так, то может лучше обычный двигатель использовать? Подавать на него ШИМ, если требуется плавность регулировки.

engineeradm
Рядовой
Сообщения: 10
Зарегистрирован: 25.09.2015{, 21:45}
Репутация: 0
Откуда: Noyabrsk

Низкая скорость вращения шагового двигателя

#12

Сообщение engineeradm » 23.10.2015{, 08:46}

Шаговик вращает шпильку, гайка на окне. Прлучается плотное закрытие

Ответить

Вернуться в «Управление двигателями»