Страница 1 из 1

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

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

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

Добавлено: 19.10.2015{, 19:04}
scadapack
Надо бы ваш проект сюда выложить. Как в слепую посоветуешь?

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

Добавлено: 19.10.2015{, 19:57}
engineeradm
Там ничего сложного. Покаместь лишнее все убрал, оставил dht-11 - вывод на дисплей температуры (влажность тормозит еще сильнее), и оставил кнопку, которая дает команду напрямую в модуль шаговика.
Шаговик из набора вместе с uln 2003. Видно как плавно светики моргают, именно плавно.

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

Добавлено: 20.10.2015{, 14:29}
vlaks
uln2003 откуда питаете ?

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

Добавлено: 20.10.2015{, 20:40}
engineeradm
Проблема не в питании uln2003, она нормально работает, запитывал и отдельно и от платы ардуино.

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

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

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

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

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

Добавлено: 21.10.2015{, 18:32}
engineeradm
Спасибо за наводку! А как поменять дигитал врайт, реад и аналог врайт и реад? Эти команды очень сильно тормозят циклы

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

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

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

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

Добавлено: 22.10.2015{, 08:07}
engineeradm
Спасибо за ответ!

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

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

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

Добавлено: 23.10.2015{, 08:46}
engineeradm
Шаговик вращает шпильку, гайка на окне. Прлучается плотное закрытие