Генеротор и дисплей
Генеротор и дисплей
Нужен совет. Для управления шаговым двигателем стоит генератор импульсов. Как только подключаю дисплей, для индикации режимов, сразу же падает частота импульсов генератора (падают обороты двигателя). При подключении через 12С, то же самое. Подскажите пожалуйста, как это можно исправить?
Последний раз редактировалось vacz 01 дек 2016, 20:26, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"
Генеротор и дисплей
Нужно сделать в проекте так чтобы отсчёт шагов и изменение индикации было по отдельности.
Отсчитали- показали, отсчитали-показали , только так.
Отсчитали- показали, отсчитали-показали , только так.
Генеротор и дисплей
Для генератора нужно использовать блок пользователя в кодах.
Посмотрите раздел - БЛОКИ пользователей.
Там есть блок - 8мгц генератор меандра(CODE).
Посмотрите раздел - БЛОКИ пользователей.
Там есть блок - 8мгц генератор меандра(CODE).
аврора
Генеротор и дисплей
Возникает два вопроса:
1. У меня в проекте стоит два шаговых двигателя. Работают они на разных частотах и с разным управлением, поэтому необходимо использовать два генератора с разными частотами, а у этого генератора выход один на Pin11 (Mega2560). Возможно ли на выход подключать другие Pin ?
2. Очень не желательно использовать дополнительные выходы и входы микроконтроллера. Ведь приходится возвращать импульсы генератора обратно в МК. Возможно ли сделать выход генератора с блока, а не на Pin ? И добавить разрешающий работу блока, вход En ? Для дальнейшего подключения непосредственно в проекте.
1. У меня в проекте стоит два шаговых двигателя. Работают они на разных частотах и с разным управлением, поэтому необходимо использовать два генератора с разными частотами, а у этого генератора выход один на Pin11 (Mega2560). Возможно ли на выход подключать другие Pin ?
2. Очень не желательно использовать дополнительные выходы и входы микроконтроллера. Ведь приходится возвращать импульсы генератора обратно в МК. Возможно ли сделать выход генератора с блока, а не на Pin ? И добавить разрешающий работу блока, вход En ? Для дальнейшего подключения непосредственно в проекте.
Последний раз редактировалось vacz 04 дек 2016, 14:49, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"
Генеротор и дисплей
Попробуйте задать этот вопрос автору блока.Может он сможет разъяснить.Действительно нужно иметь два генератора.Я с этой же проблемой столкнулся.
аврора
Генеротор и дисплей
Блок - 8мгц генератор меандра(CODE), так же не стал работать с блоками дисплея. Сразу меняется частота. Подключил по отдельности, да работает. Но..., в проекте работает несколько шаговых двигателей и они постоянно в работе, индикация практически ничего не показывает, мигая. А она нужна постоянно, для контроля ( параметров несколько).sser писал(а):Нужно сделать в проекте так чтобы отсчёт шагов и изменение индикации было по отдельности.Отсчитали- показали, отсчитали-показали , только так.
Уважаемые разработчики программы, пожалуйста подскажите как избавиться от этого бага? Невозможно сделать программу для станков без индикации контроля над ним. Есть старая поговорка мастеров: "Аппарат работает настолько хорошо, на сколько он выглядит". Люди разговаривают смотря в лицо друг другу. Дисплей, это лицо машины и оно должно выглядеть достойно, чтобы приятно было с ней общаться.
Последний раз редактировалось vacz 04 дек 2016, 16:21, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"
Генеротор и дисплей
Посмотрел как устроен это блок, он вашу проблему не может решить.vacz писал(а):Блок - 8мгц генератор меандра(CODE), так же не стал работать с блоками дисплея.
Так как генерирует импульсы также в цикле программы, а значит если программный цикл превышает период необходимого вам периода импульса, толку не будет.
Тут теоретически надо делать генератор на прерываниях, но в этом случаи хоть импульсы и будут в нужное врем, могут начаться проблемы со связью с дисплеем.
Могу пробовать сделать, использовал я в одном блоке библиотеку TimerOne.
Получалось сделать обработчик на прерываниях. Но при этом ШИМ режим (аналоговый выход) выхода на пинах 9 и 10 в штатном режиме становится недоступен.
Если нужно опешите подробно что требуется. Чем подробнее тем лучше.
А я скажу смогу это сделать или нет.
Генеротор и дисплей
Не буду описывать весь проект, а остановлюсь на проблемном: Берем два (любое количество) шаговых двигателя с драйвером ТВ6600 (любым). Запускаем их от генераторов, настроенных на разные частоты. Двигатели работают нормально. Но стоит вставить в проект блоки дисплея (для индикации параметров), сразу же частота генераторов снижается и двигатели вращаются с другими скоростями. Необходимо, что бы не изменялась частота и индикатор (в проекте их 20 блоков дисплея) работал постоянно, в нормальном режиме, не мигая.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось vacz 04 дек 2016, 17:06, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"
Генеротор и дисплей
Лучше напишете параметры работы генератора.vacz писал(а):Не буду описывать весь проект, а остановлюсь на проблемном: Берем два (любое количество) шаговых двигателя с драйвером ТВ6600 (любым). Запускаем их от генераторов, настроенных на разные частоты. Двигатели работают нормально. Но стоит вставить в проект блоки дисплея (для индикации параметров), сразу же частота генераторов снижается и двигатели вращаются с другими скоростями. Необходимо, что бы не изменялась частота и индикатор работал постоянно, в нормальном режиме, не мигая.
Так как надо писать блок с другим генератором импульсов.
И то какие какие входа выхода нужны.
Добавлено (04.12.2016, 16:58)
---------------------------------------------
Вообще я не пользовался шаговыми двигателями.
Там какой принцип работы? Один импульс один шаг?
А как вам надо просто шагать пока не поменяется внешнее условие или сделать столько то шагов.
Генеротор и дисплей
Один двигатель работает в режиме микрошага 1/8 с частотой генератора 5000Hz (5kHz), 1600 импульсов на 1 оборот двигателя с драйвером ТВ6600. Работает по входу на заданное количество микрошагов с приходом синхроимпульса. С каждым приходом синхроимпульса отрабатывается заданное количество шагов. на входе кол-во шагов меняется от заданных в меню. В процессе работы, направление оборотов двигателя меняется, с приходом сигналов с датчиков (вправо, влево). Так же стоят кнопки (вправо, влево) для ручной настройки. Т.е принудительное движение двигателя вправо и влево. На драйвере входа: PUL - вход импульсов, DIR - вправо/влево, ENA - вход вкл/выкл питания драйвера.
Второй двигатель работает в режиме микрошага 1/8 с частотой генератора 2000Hz (2kHz), 1600 импульсов на 1 оборот двигателя. С (приходом сигналов с датчиков), пока идет сигнал с датчика. двигатель крутится в право, с другого датчика влево. Нет сигнала стоит в ожидании.
Вот в принципе работа этого узла. Всю эту программу я уже написал и в отдельности все узлы работают нормально в железе. Проблема начинается когда вставляешь в проект блоки дисплея из меню.
--------------------------------------
Вот возникла идея, отсюда и вопрос: Возможно ли сделать блок независимого генератора? С подключением через Pin кварца (при необходимости).
Второй двигатель работает в режиме микрошага 1/8 с частотой генератора 2000Hz (2kHz), 1600 импульсов на 1 оборот двигателя. С (приходом сигналов с датчиков), пока идет сигнал с датчика. двигатель крутится в право, с другого датчика влево. Нет сигнала стоит в ожидании.
Вот в принципе работа этого узла. Всю эту программу я уже написал и в отдельности все узлы работают нормально в железе. Проблема начинается когда вставляешь в проект блоки дисплея из меню.
--------------------------------------
Вот возникла идея, отсюда и вопрос: Возможно ли сделать блок независимого генератора? С подключением через Pin кварца (при необходимости).
Последний раз редактировалось vacz 04 дек 2016, 17:56, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"
Генеротор и дисплей
Вот поискал про такие драйверы, нашел статью и специальную библиотеку на эту темы
STEP/DIR драйверы шаговых двигателей. Основные понятия. Протокол STEP/DIR.
Подключение STEP/DIR драйверов шаговых двигателей к Ардуино. Библиотека StepDirDriver.
Если описание подходит к вашей задачи то можно попробовать сделать на базе этой библиотеки.
STEP/DIR драйверы шаговых двигателей. Основные понятия. Протокол STEP/DIR.
Подключение STEP/DIR драйверов шаговых двигателей к Ардуино. Библиотека StepDirDriver.
Если описание подходит к вашей задачи то можно попробовать сделать на базе этой библиотеки.
Генеротор и дисплей
Подключение к драйверам не представляет ни каких проблем. Я уже писал, что программу управления я составил и она прекрасно работает. Необходимо развязать зависимость генераторов двигателя от программного цикла. Сделать этот генератор независимым, чтобы выполнение программы дисплея никак не влияло на изменение его частоты. Блок генератора, с возможностью задавать свои необходимые параметры и возможностью использования нескольких блоков-генераторов в одном проекте. Такой блок просто необходим. В программе, во встроенных есть генератор, но он привязан к программному циклу.
Последний раз редактировалось vacz 04 дек 2016, 19:26, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"
Генеротор и дисплей
Прекрасно работает!? -Но не работает с дисплеем.vacz писал(а):Подключение к драйверам не представляет ни каких проблем. Я уже писал, что программу управления я составил и она прекрасно работает.
Возможно та библиотека, предложенная Слимпером ,будет работать....
Последний раз редактировалось Гость 04 дек 2016, 19:52, всего редактировалось 1 раз.
Генеротор и дисплей
Ладно попробую сделать, но как быстро не скажу.
Один, думаю будет не сложно, а вот несколько не зависимых, это надо подумать.
Ладно пока последний вопрос, какая максимальная частота может понадобится, больше 10кГц вряд ли получится.
И еще генератор будет генерировать именно импульсы на выходе контроллера (выхода Q не будет) с заданной частотой, если на входе EN будет 1.
Как при этом считать число импульсов вопрос интересный. Или это не нужно?
Один, думаю будет не сложно, а вот несколько не зависимых, это надо подумать.
Ладно пока последний вопрос, какая максимальная частота может понадобится, больше 10кГц вряд ли получится.
И еще генератор будет генерировать именно импульсы на выходе контроллера (выхода Q не будет) с заданной частотой, если на входе EN будет 1.
Как при этом считать число импульсов вопрос интересный. Или это не нужно?
Генеротор и дисплей
Думаю дело не в драйверах. Я ставил просто один генератор из встроенных, выставлял 5 kHz, подключал частотомер (показывает 5). Затем вставляю блок дисплея. И частота сразу падает в несколько раз, нечего при этом не подключая. Дисплей сразу давит частоту.
Добавлено (04.12.2016, 20:42)
---------------------------------------------
Добавлено (04.12.2016, 20:42)
---------------------------------------------
До 10кГц будет достаточно. Если я правильно понял, насчет выхода на контроллере (это как в "Блоке - 8мгц генератор меандра(CODE)", на один из выходов Pin), то импульс возвратим назад в контроллер. И будем использовать для подсчета. Это я уже пробовал с Блоком - 8мгц генератор меандра(CODE). Проблем не было.Слимпер писал(а):последний вопрос, какая максимальная частота может понадобится, больше 10кГц вряд ли получится.И еще генератор будет генерировать именно импульсы на выходе контроллера (выхода Q не будет) с заданной частотой, если на входе EN будет 1.
Как при этом считать число импульсов вопрос интересный. Или это не нужно?
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"
Генеротор и дисплей
Понятно.vacz писал(а):До 10кГц будет достаточно.
Не правильно.vacz писал(а):Если я правильно понял, насчет выхода на контроллере (это как в "Блоке - 8мгц генератор меандра(CODE)", на один из выходов Pin), то импульс возвратим назад в контроллер. И будем использовать для подсчета.
Я уже писал ранее, но похоже недостаточно понятно. Попробую объяснить подробнее.
В МК все операции выпоняются последовательно в одном программном цикле. Чем больше операций или зем они медленнее, тем больше длительность программного цикла (читать за сколько выполнится все с перво по последнюю платы в FLProg). У вас возникла проблема как раз из-за того, время выполнения одного программного цикла превысило период необходимого вам генератора импульсов (причина скорей всего блок экран).
Чтобы обойти такие ситуации есть возможность выполнять некоторые операции как бы параллельно основному программному цикла. Это называется выполнение функций по прерыванию по таймеру. Но фактически это реализуется так. Запускается аппаратный таймер, и при достижении заданного времени основная программа останавливается, выполняется обработка прерывания, затем возобновляется основной программный цикл.
Но из этого вытекает тот факт из основного программного цикла (блоками в FLProg) невозможно посчитать количество операций совершенных в прерываниях.
По этому я и написал:
Ели нужно считать число импульсов, то это придется делать внутри блока (во время прерывания), и делать выход число импульсов. А следовательно надо еще определить когда будет производится сброс счетчика.Слимпер писал(а):И еще генератор будет генерировать именно импульсы на выходе контроллера (выхода Q не будет) с заданной частотой, если на входе EN будет 1. Как при этом считать число импульсов вопрос интересный. Или это не нужно?
А если нужна точность выполнения до единиц импульсов то это опять же не возможно поучить внешними блоками FLProg, так как может получится так, что а время одного основного программного цикла пройдет несколько импульсов в параллельном потоки.
Так что думайте, пока описал ряд проблем которые вижу сразу, может еще что позже появится.
Генеротор и дисплей
Прошу извинить. Я столкнулся с программированием впервые. Поэтому, что-то могу сформулировать не так. У меня в проекте подсчет и сброс работает по такой схеме:
С приходом синхроимпульса переключается SR - триггер ,дает разрешение на вкл. генератора и включает, через выход ENA драйвер. Далее импульсы (с частотой 5кГц) поступают на выход PUL драйвера. Одновременно импульсы поступают на вход счетчика. На счетчик поступает количество шагов из блока меню. При достижении установленного уровня, происходит сброс счетчика и переключение SR - триггера в режим ожидания, остановка двигателя и выключение драйвера.
С приходом синхроимпульса переключается SR - триггер ,дает разрешение на вкл. генератора и включает, через выход ENA драйвер. Далее импульсы (с частотой 5кГц) поступают на выход PUL драйвера. Одновременно импульсы поступают на вход счетчика. На счетчик поступает количество шагов из блока меню. При достижении установленного уровня, происходит сброс счетчика и переключение SR - триггера в режим ожидания, остановка двигателя и выключение драйвера.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось vacz 05 дек 2016, 12:30, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"
Генеротор и дисплей
vacz, Похоже получится, что необходимо почти всю вашу схему внутрь блока свернуть.
Но получится уже, что то похожее тому, что было описано в статье, приведенной раньше.
Ладно для начал, пойду по простому пути и сделаю блок для управления STEP/DIR драйверами на основе той статьи, там все подробно расписано, устроит хорошо, нет переделаю.
Но получится уже, что то похожее тому, что было описано в статье, приведенной раньше.
Ладно для начал, пойду по простому пути и сделаю блок для управления STEP/DIR драйверами на основе той статьи, там все подробно расписано, устроит хорошо, нет переделаю.
Генеротор и дисплей
Наверно надо показать весь блок управления этим двигателем:
Датчики "вправо","влево" подают сигнал на DIR драйвера и меняют направление вращения двигателя. Кнопки "вправо", "влево" включают двигатель вправо, влево. При настройке с меньшей скоростью (импульсы с генератора идут через два делителя частоты ТТ - триггера, с частотой 1.25кГц).
Датчики "вправо","влево" подают сигнал на DIR драйвера и меняют направление вращения двигателя. Кнопки "вправо", "влево" включают двигатель вправо, влево. При настройке с меньшей скоростью (импульсы с генератора идут через два делителя частоты ТТ - триггера, с частотой 1.25кГц).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось vacz 05 дек 2016, 12:26, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"
Генеротор и дисплей
И второй двигатель. Работает с частотой 2кГц, в режиме микрошага 1/8. С приходом сигнала с датчиков "вправо-2, влево-2" включают и удерживают двигатель - 2 влево, в
право. В отсутствии сигнала с датчиков - режим ожидания.
право. В отсутствии сигнала с датчиков - режим ожидания.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось vacz 05 дек 2016, 13:11, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость