Управление скоростью вращения шагового двигателя кнопками.

28ВYJ-48 с драйвером ULN2003 + блок 7-сегментных индикаторов на TM1637

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

Управление скоростью вращения шагового двигателя кнопками.

#21

Сообщение Labu559 » 31.01.2019{, 00:27}

rw6cm писал(а):
27.01.2019{, 00:06}
но когда понял что блок 1637 вносит только задержки, а вешает нулевая скорость ШД, лишнее отбросил.
Вот и чудесненько. А я понял это ещё с первого сообщения автора.
Matafon писал(а):
20.01.2019{, 19:30}
Пробовал исключать индикатор вовсе, либо данные наблюдал в serial port, не помогает.
и с 6-го
Matafon писал(а):
21.01.2019{, 18:57}
Исключал показометр из схемы. Но он ни как не влияет.
rw6cm писал(а):
27.01.2019{, 00:06}
Могу дополнить в свое первое обращение к Вам:
Могу парироватьПоказать
HOLD_TM1637.png
rw6cm писал(а):
27.01.2019{, 00:06}
Мне не получится объяснить доходчиво, т.к не владею терминологией языка Си.
А не нужна терминология. Вы пытаетесь мне объяснить свою, точку зрения с которой я изначально согласен. Я по рисунках, чертежах, графиках, диаграммах лучше ориентируюсь, чем по словесным описаниям. А выложеные проекты предоставляют достачно информации для однозначной трактовки. У меня тоже не получилось. Не смотря на правку предыдущего моего сообщения более десятка раз, и письма Вам в личку, так и не смог донести свою точку зрения. Я не обсуждаю Ваш проект, я пытаюсь объяснить почему, как автор не рекомендую такое применение моего блока в Вашем проекте. И если Вы добились приемлемой роботы проекта в целом не совсем корректно применив его (не удивлён, ведь описания в нем нет), расстратив при этом лишние ресурсы на борьбу с последствиями этого, то честь Вам и хвала.
rw6cm писал(а):
27.01.2019{, 00:06}
А там сами решайте...
Я решил и я согласился с
rw6cm писал(а):
26.01.2019{, 11:32}
Есть понятие "цикл" и есть девайсы сильно от него зависящие, и ШД как раз к ним относится, и есть девайсы, которые программно, или своей инертностью, увеличивают этот цикл, (UART, I2C, ModBus, использование delay, итд), и 1637 не исключение. Так вот такие девайсы надо развязывать работой в циклах, иначе не чего хорошего не выйдет.
Согласился и дополняю. Развязывать работой в циклах- это создать счётчик циклов ф-и Loop() и разделить весь код "тяжелого" блока на отдельные операции, которые будут выполняться в разных циклах согласно номеру счётчика, старясь избегать при этом перерыва сесий приема-передачи UART, I2C, ModBus учитывая плохую помехозащищённость (несоблюдения правил построения) линий связи и подтяжку к питанию, избегать в этот момент или распределить прерывания если они есть. А дальше учесть специфику ф-и millis(); micros() а значит и таймеров, которые и так летят из-за переполнения раз в 50 дней/70 минут. Я молчу уже по функциях типа tone(), pulseIn() или работу с регистрами сдвига без защёлкивания данных.
Но у нас ведь блочный способ представления кода. Мы хотели неразборные, в отличии от понятных непрограммистам блоков на LAD или FBD, блоки Си на все вообразимые дивайсы, хотели работу по таймеру и с прерываниями основного цикла, получили. А теперь ... :smile37: Вся жизнь- баланс компромиссных решений.
Желаю всем удачи, никого пытался не обидеть, извините, если это получилось!

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Управление скоростью вращения шагового двигателя кнопками.

#22

Сообщение rw6cm » 31.01.2019{, 01:24}

Labu559 писал(а):
31.01.2019{, 00:27}
Могу парировать
СпойлерПоказать
Не буду утверждать (нет девайса чтоб проверить) но по логике En должен выключать блок а не замораживать,
а отключения платы по условию как раз таки замораживает. Но если Вы это сделали в блоке то и назовите вход "HOLD"
В остальном с Вами согласен, и уж тем более ни каких обид )
Мы уже отклонились от темы,
Желаю удачи и творчества!
Win10-64, FLProg (portable)

Ответить

Вернуться в «Помогите, а то я "нимагу"»