Led wash move прошивка
- Войдите на сайт для отправки комментариев
Голова
Всем привет.
Сразу прошу прощения, не пинайте если вам кажется, что глупость спрашиваю, но очень нужно решение вопроса.
!!!! Поиск ничего не дал !!!
И так, что имеем.
-led wash head (световой прибор с вращением по двум осям) (фото1)
- на главной плате прибора перестал отвечать контроллер dip 28 stc 12c5608, на нем было все управление. (фото2).
- 2 драйвера мотора L6219 (фото3) и, соответственно, 2 мотора по осям (фото3_1)
- 2 усилителя LM324N (фото4), не знаю зачем они нужны.
- 4 пина у МК занимает SN74HC00N , правда я тоже пока не понял что это такое))) ( Если есть знающие - подскажите , пжл. Нужна ли она , если на ардуино переходить ????)
- на каждый двигатель "прилеплены" спаренные щелевые оптические датчики и диски с "зубами". Получается, что они двухканальные - по 2 провода Подключены к микроконтролеру. (фото5)
- dmx, не отдельный, а был зашит в прошивку МК. Но есть отдельная плата, на ней SN74HC00N , ds75176bn , LM358n (Фото6)
- дисплей (фото7), у него отдельный МК стоял (фото 8), работоспособность неизвестна.
- 4 светодиодных блока RGBW(фото9) , каждый цвет на отдельный канал и на транзисторах (фото9_1)
- входное 24V , на мк стоит dc-dc на 5v.
- ещё есть непонятные пины с подпистсью test 1 и test2, (2 пина ) в мк и питание. Что они делают - незнаю. Не были Подключены в процессе работы. (фото10)
Теперь задача:
1.заменить
stc 12c5608 на Arduino (по моим подсчётам подойдет и nano, так как он по всем параметрам превосходит родной).
Соединение очень простое - на плате сделать переходник с dip28 на штыречки, в эти штыречки засунуть ардуино. Сделаю это так, чтоб можно было в случае чего заменить легко без перепайки.
2. Написать программу.
- Поступает питание.
- на дисплее надпись "wait..."
- двигатели запускаются и занимают начальную позицию по обеим осям. Позиция считается по 2х канальным целевым оптическим датчикам. Ось крутиться до упора (конструкцией задуман) и возвращается на несколько градусов обратно. Саму логику этого момента я пока не понимаю. Как именно программы должна понять, что он уперся.
!!!! Подскажите пожалуйста!!!!, если есть пример, то буду рад.
Обязательно таймер загрузки (например в течении 15 секунд искать начальное положение, потом запускаться) . В случае неисправности датчика или провода, чтоб он час не тарахтел.
- загрузка окончена. На дисплее отображается надпись "menu"
- после установки на начальные позиции запускается программа работавшая в последний раз ( auto, dmx, manual, sound)
Auto - (можно разные варианты, типо auto1, auto2, auto3)
рандомное вращение осей (где-то одновременно, где-то сольно и поочерёдно) и одновременно с этим рандомное включение светодиодов
( где-то сольно, где-то в сочетании, а где-то все вместе)
Sound - тоже самое, но срабатывает от звука (звуковой датчик есть на плате родной, но я не понял как он подключен. Но есть отдельный). В меню неплрхо было бы при выборе режима Sound кнопками изменять чувствительность датчика звука.
Manual - - при выборе режима, переход в режим настройки. (диммер для цветов, ось Х, Ось Y, цвет r, цвет g, цвет b, цвет w, strob (мерцание))
Dmx - при подключениии этого режима голова переходит в управление с dmx пульта (каналы dmx
//Kanal 1..........диммер для цветов
//Kanal 2..........R
//Kanal 3 .........G
//Kanal 4 .........B
//Kanal 5 .........W
//Kanal 6 ........ Ось X
//Kanal 7 .........Ось Y
//Kanal 8 .........Strobe
//Kanal 9..........autoprogram
Решать вопросы нужно постепенно, поэтому для начала мне хватит звуковой активации. А дальше уже работа дисплея и ДМХ.
Помогите кто-нибудь, пжл))
P. S. Не разобрался как фото выкладывать.
Боюсь, Вы выложили не в том разделе.
Этот раздел для тех, кто пишет что-то самостоятельно или хочет научиться программировать.
Если нужно решение конкретной технической задачи, а не помощь в самостоятельном решении или обучении, обращаться следует в раздел "Ищу исполнителя", где Вам могут сделать желаемое за деньги. Правда, боюсь, в Вашем случае сумма окажется больше стоимости нового прибора.
В том то и дело, что хочу осидить сам. Часть мыслей уже есть.
Форумы же для помощи более опытных менее опытным :)
Покупать за деньги не хочу и не буду, так как : 1. Вы правы, что это будет бессмысленно - новый прибор дешевле купить. 2.хочу разобраться и понимать процесс.
Что уже сделано.
1. Набросал черновой вариант для dmx
2. Работа с led
На чем мозг встал, так как не додумался пока до схемы реализации.
1. Момент загрузки осей на начальные позиции.
Напомню, стоит сдвоенный щелевой датчик и один диск с прорезями.
Непонимаю как сделать так чтобы при достижении ограничителя программа поняла, что это стоп.
- возможно нужно считывать скорость вращения двигателя с датчика... И как только время между прохождениями через прорези будет больше, чем..., то он остановился.
Есть мысли? Подскажете?
Вы бы фото запостили таки.
Программа может "понять" по срабатыванию концевого датчика, например, по падению величины RPM (это ваша гипотеза). Может мотору меряет токи (нужно в даташите на драйвер посмотреть) и по превышению понимает, что уперлись.
Вы бы фото запостили таки.
Программа может "понять" по срабатыванию концевого датчика, например, по падению величины RPM (это ваша гипотеза). Может мотору меряет токи (нужно в даташите на драйвер посмотреть) и по превышению понимает, что уперлись.
Для меня так было бы идеально) Но для чего-то же в эти головы ставят щелевые датчики( еще и по два штуки на ось) и диск с прорезями
Непонятно, где какая фото (по номеру), но могу предположить, что плата под выходом вала мотора - с щелевыми датчиками. Не понимаю, сколько оттуда выходит проводов, но может быть это как энкодер работает. Соотвественно - на шаговый подается импульс STEP, потом проверяется состояние энкодера. Изменилось - можно еще крутануть. Не изменилось - значит уперлись.
Вы бы фото запостили таки.
Программа может "понять" по срабатыванию концевого датчика, например, по падению величины RPM (это ваша гипотеза). Может мотору меряет токи (нужно в даташите на драйвер посмотреть) и по превышению понимает, что уперлись.
Для меня так было бы идеально) Но для чего-то же в эти головы ставят щелевые датчики( еще и по два штуки на ось) и диск с прорезями
Конец определяется по щелевым датчикам (диск с прорезями) . Есть похожий в ремонте. специально проверил - с отключеным датчиком голова крутится секунду и останавливается (не видит движение ). с датчиком- до упора рывок с секунду и стоп. Верт. вращение у меня - начало на датчике холла.
У меня несколько разных голов разного производителя, но начинка на удивление очень похожа.
Когда отключаю датчик, или было такое что перетерался провод ( Любой из 4х), то ось долго упирается в стоп, мотор кряхтит , а потом ( видимо когда выходит время на загрузки) работает в штатном режиме, но из-за не работающего ( или отключенного) датчика она постоянно с размахом удаляется в упор. Если стоит на полу, то за час делаем 2-3 полных оборота)))
например, по падению величины RPM (это ваша гипотеза).
Подскажите, пжл, как реализовать данную гипотезу ?
Я бы начал с другой, раз вы тут энкодер нарисовали. Взять пример к библиотеке энкодера, подключить оптопары к ардуине и покрутить рукой вал. Если будет меняться число , изменяемое энкодером, то на этом и базироваться: давать пяток шагов двигателем и проверять - изменилось ли число с энкодера. Не меняется - или уперлись или оторвался датчик/драйвер.
А не подскажете какую библиотеку в этом случае можно использовать и программное решение этой ситуации?
Вы же сами хотели разобраться... А пока даже не можете из любой библиотеки энкодера взять типовой пример и просто покрутить руками механизм, подключив оптодатчики к ардуине, глядя при этом в Serial Monitor.
Красиво! А сколько эта радость стоит? Я - бы себе взял такую шнягу.