FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Вторник, 06.12.2016, 08:47
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Низкая скорость вращения шагового двигателя
Низкая скорость вращения шагового двигателя
engineeradm
Дата: Понедельник, 19.10.2015, 14:03 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Собрал схему в программе flprog на ардуино нано. проветривание помещения по температуре.
Установлен дисплей HD44780 I2C, датчик температуры DHT-11 с опросом раз в 5сек, шаговый двигатель.
При достижении заданного порога двигатель очень медленно вращается и стопорится на мгновение в момент обновления температуры, а потом опять шагает.
Сам двигатель без дисплеев и датчиков, т.е. голый проект с кнопкой запуска двигателя, вращается быстро.
В чем может быть проблема?
Я не программист, читал ускорение ардуино (http://geektimes.ru/post/255744/), но не понятно как это применить в мой код.
Очень нужна помощь.
 
scadapack Дата: Понедельник, 19.10.2015, 19:04 | Сообщение # 2
Лейтенант
Группа: Проверенные
Сообщений: 60
Награды: 2
Репутация: 5
Статус: Offline
Надо бы ваш проект сюда выложить. Как в слепую посоветуешь?
 
engineeradm Дата: Понедельник, 19.10.2015, 19:57 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Там ничего сложного. Покаместь лишнее все убрал, оставил dht-11 - вывод на дисплей температуры (влажность тормозит еще сильнее), и оставил кнопку, которая дает команду напрямую в модуль шаговика.
Шаговик из набора вместе с uln 2003. Видно как плавно светики моргают, именно плавно.
Прикрепления: 8789281.flp(68Kb)


Сообщение отредактировал engineeradm - Вторник, 20.10.2015, 07:18
 
vlaks Дата: Вторник, 20.10.2015, 14:29 | Сообщение # 4
Сержант
Группа: Проверенные
Сообщений: 37
Награды: 2
Репутация: 1
Статус: Offline
uln2003 откуда питаете ?
 
engineeradm Дата: Вторник, 20.10.2015, 20:40 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Проблема не в питании uln2003, она нормально работает, запитывал и отдельно и от платы ардуино.
 
scadapack Дата: Среда, 21.10.2015, 06:16 | Сообщение # 6
Лейтенант
Группа: Проверенные
Сообщений: 60
Награды: 2
Репутация: 5
Статус: Offline
Ну тут надо экспериментировать, где именно идёт торможение. Попробуйте убрать дисплей для начала. Возможно контроллер постоянно перезаписывает в него информацию.
 
kipiaxxx Дата: Среда, 21.10.2015, 06:42 | Сообщение # 7
Сержант
Группа: Проверенные
Сообщений: 40
Награды: 3
Репутация: 1
Статус: Offline
Цитата scadapack ()
Попробуйте убрать дисплей для начала. Возможно контроллер постоянно перезаписывает в него информацию.

Скорее всего проблема именно здесь. Замечал, что LCD, подключённый по I2C, тормозит цикл очень сильно - обмен с Ардуиной ведёт непрерывно. По возможности, лучше его подключить отдельными 6-ю проводами.
 
engineeradm Дата: Среда, 21.10.2015, 18:32 | Сообщение # 8
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Спасибо за наводку! А как поменять дигитал врайт, реад и аналог врайт и реад? Эти команды очень сильно тормозят циклы

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

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


Разработчик программы FLProg
 
engineeradm Дата: Четверг, 22.10.2015, 08:07 | Сообщение # 10
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Спасибо за ответ!
 
scadapack Дата: Пятница, 23.10.2015, 04:30 | Сообщение # 11
Лейтенант
Группа: Проверенные
Сообщений: 60
Награды: 2
Репутация: 5
Статус: Offline
А зачем вам вообще шаговый двигатель? Предполагаю, что вы им крутите лопасти вентилятора. Если так, то может лучше обычный двигатель использовать? Подавать на него ШИМ, если требуется плавность регулировки.
 
engineeradm Дата: Пятница, 23.10.2015, 08:46 | Сообщение # 12
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Шаговик вращает шпильку, гайка на окне. Прлучается плотное закрытие
 
Форум » Основной » Спросить у знатоков » Низкая скорость вращения шагового двигателя
Страница 1 из 11
Поиск:

FLProg © 2016
Яндекс.Метрика