Уважаемый maksim. А подскажите еще плиз неуку ;) У меня в планах есть смена конструкции и соответсвенно колличесва ступенек лестницы. Если я правильно понял то колличество загораемых светиков указываются в строках:
for(char i = 19; i >= 0; i--) // зажигаем светодиоды в одну сторону
for(char i = 0; i <= 20; i++) // тушим светодиоды
Тоесть, если у меня будет, к примеру, 25 ступеней то надо будет только сменить на:
for(char i = 24; i >= 0; i--) // зажигаем светодиоды в одну сторону
for(char i = 0; i <= 25; i++) // тушим светодиоды
Плавное затухание и заграние можно реализовать, но в моем варианте яркость задана постоянная (схематически резистором 1К на 19 ногу драйвера светодиодов). Нужно переделать немного схему и само собой скетч. По вопросу скетча - ето у нас Maksim спец ! Когда зажигаеться с двух сторон к средине, по моему не практичен. Мне понравился вариант движения части подсветки, а не всей лестницы под идущим. Красиво, но меня вполне устраивает и уже написанный скетч (спасибо Maksim) Конечно, как вариант на будущее, для смены эффектов можно бы :).
Решение конечно хорошее, но вот если изменить кол-во ступеней нужно будет массив перерисовывать. Я сделал по другому. Один цикл из рассчета кол-во ступеней/2, первую и последнюю зажигаем, вторую и пердпоследнюю зажигаем и тд., а потом наоборот тушим.
Здраствуйте ! Подскажите пожалуста - как сделать чтоб вместо датчиков растояния можно было поставить физические контакты (кнопки) ?
Видел где то я в нете с кнопками. А реализовать - даже проще чем с датчиками, так как, для датчика куск скетча больше, а для кнопок нужно будет только "дребезг крнтактов" убрать....
Видел где то я в нете с кнопками. А реализовать - даже проще чем с датчиками, так как, для датчика куск скетча больше, а для кнопок нужно будет только "дребезг крнтактов" убрать....
Верно про дребезжание подмечено раньше очень часто забывал и из за этого проект неработоспособен. Но сейчас юзаю debounce библиотеку с ней думаю значительно сократиться код.
Здраствуйте ! Мучаюсь уже месяц и никак не могу сделать рабочий проект с контактами вместо дальномеров ! Если можно - дайте код для такой схемы ! Буду очень признателен.
Уже второй день колдую с драйвером m5451b7 все никак не разберусь с управлением яркостью, хочется сделать плавный поджиг, может у кого есть информация как управляться с данным драйвером, заранее спасибо
Просто резистор на 19 ноге задает общую (и постоянную) яркость для всех каналов. Для плавного (и раздельного) поджига нужен ШИМ сигнал с ардуины, ну и соответственно код.
Кстати тему хотелось бы поднять, так как времени не особо много было почти не занимался, думаю его не составит труда добавить просто когда на драйвере M5451 Clock pin не защелкнут можно добавить плавный поджиг на ноге brightness через оператор FOR, вечером попробую отпишусь
Не думаю что закрыли тему все таки у меня проект тоже висит в подвешенном состоянии, я изучаю возможности программирования m5451 так как в программировании не силен все идет сложно но уже есть рабочие проекты плавного поджига чуть допилю и вывешу линк с мануалом в данную ветку. Я очень хочу реализовать этот проект
analogWrite() на любом выводе + 2 шт. SHARP2Y0A02 и будет вам плавной разгорание, затухание 18 каналов без доп.микросхем, если на канал не более двух светодиодов подключите. Если больше двух или светодиодную ленту, то нужны ключи или сборки например 3 шт. ULN2003.
Так у М5451 ток на канал тоже всего 15 мА и если подключать ленту, то все равно нужны ключи.
Максим, подскажи, а принцип работы сборок ULN2003, точнее неправильно.. как эти сборки подключать?
я правильно понимаю:
ноги 8 - это земля для БП лент, 10-16 - сигнальные от ардуины, 1-7 - минус от св. лент?
еще в описании на ULN2003 нашел цифру VCE = 50V, VI = 30A, т.е. максимальная нагрузка может быть 50*30 = 1500W ?
PS: Или эти обозначения что-то другое указывают?..
Подключил светодиод напрямую к 6 ноге ардуины - моргает, к 7 ноге - горит. Т.е. код выполняется.. как проверить исправен ли сам драйвер или он у меня некорректно подключен?..
UPD2: Разобрался :)
Светодиоды подключал неправильно, надо: от ног драйвера подключать "-", а от второго вывода светодиода на "+" от ардуины.
Подскажите пожалуйста, как правильно сделать вариант, когда человек (или несколько) остановился на лестнице?
Я понимаю так, что надо считать сведения с нижнего датчика несколько раз (приближается человек или отдаляется), записать в какой нибудь регистр 1, и зажигать светодиоды. Если за ним поднялся второй то добавить к этому регистру 1. Если с верхнего датчика тоже пошли два человека, то записать ещё 2 в этот регистр. И если человек спустился и отдаляется, то вычитать из этого регистра 1. В логике, конечно я это придумал, но как это правильно написать?
Начал эксперементы с яркостью светодиодов, подключив к 9 ноге ардуины 19 ногу от ММ5451. Пока добился изменение яркости в статике (если ориентироваться на реализацию Лукьянова) повторил постоянное свечение яркости верхней и нижней ступеней порядка 30% от макимальной, при срабатывании датчиков свечение 100%. Плавный поджиг пока не получается.
Вопрос Максиму. Повторил Ваш код с изменяемым количеством ступеней и почему то после срабатывания датчика гасятся не все диоды, последние три остаются гореть. Опытным путем установил что при строке :
for(char i = 0; i <= NUM_LEDS+3; i++) // тушим светодиоды
Понял. Спасибо большое. А вот как можно реализовать, как у Лукьянова, изменение количества ступеней с помощью кнопочек? Я так понамию что это меняется маска и заносится в EPROM?
Уважаемый maksim. А подскажите еще плиз неуку ;) У меня в планах есть смена конструкции и соответсвенно колличесва ступенек лестницы. Если я правильно понял то колличество загораемых светиков указываются в строках:
Тоесть, если у меня будет, к примеру, 25 ступеней то надо будет только сменить на:
Верно ? Или еще гдето что то ?
Заранее благодарен !
Нет не только. Еще нужно изменить вывод в MM5450:
Вот код, в котором можно задать количество светодиодов
Нет не только. Еще нужно изменить вывод в MM5450:
Вот код, в котором можно задать количество светодиодов
Ухты. Клево ! Спасибо !!! Проверю с понедельника (с работы не забрал девайсик).
Вот отлично вы переписали код)) Скажите пожалуйста а как вот такой алгоритм можно написать http://www.youtube.com/watch?feature=player_detailpage&v=iBY_xXPOZmg#t=155s ??
И еще вопрос к Максиму. Чем плоха библиотека Ultrasonic?
Есть кстати такой вариант http://www.youtube.com/watch?v=udkavy8vv30 Как мы видим реализована одновременная обработка датчиков и анимация идет на встречу.
И еще вопрос к Максиму. Чем плоха библиотека Ultrasonic?
На всех видео применяется диммирование. Чтобы получить диммирование на MM5450 нужно генерить ШИМ на ее выводах, а это уже другая история...
Вот отлично вы переписали код)) Скажите пожалуйста а как вот такой алгоритм можно написать http://www.youtube.com/watch?feature=player_detailpage&v=iBY_xXPOZmg#t=155s ??
Плавное затухание и заграние можно реализовать, но в моем варианте яркость задана постоянная (схематически резистором 1К на 19 ногу драйвера светодиодов). Нужно переделать немного схему и само собой скетч. По вопросу скетча - ето у нас Maksim спец ! Когда зажигаеться с двух сторон к средине, по моему не практичен. Мне понравился вариант движения части подсветки, а не всей лестницы под идущим. Красиво, но меня вполне устраивает и уже написанный скетч (спасибо Maksim) Конечно, как вариант на будущее, для смены эффектов можно бы :).
На всех видео применяется диммирование. Чтобы получить диммирование на MM5450 нужно генерить ШИМ на ее выводах, а это уже другая история...
А если без шим? Огоньки идут навстречу а потом расходятся.
Есть множество способов как это реализовать ,самый простой это объявить массив состояний светодиодов и выводить их поочередно:
Есть множество способов как это реализовать ,самый простой это объявить массив состояний светодиодов и выводить их поочередно:
Спаисибо! Пробовал скетчик - работает.
Решение конечно хорошее, но вот если изменить кол-во ступеней нужно будет массив перерисовывать. Я сделал по другому. Один цикл из рассчета кол-во ступеней/2, первую и последнюю зажигаем, вторую и пердпоследнюю зажигаем и тд., а потом наоборот тушим.
А как сделать что бы подсветка двигалась под идущим ? Вот как в этом ролике с 3 мин. 12 сек. https://www.youtube.com/watch?v=iBY_xXPOZmg
А как все таки реализовать ШИМ на MM5450 ?
А вот тут (тот же автор - Лукьянов с помощью...) реализовал с подсветку с ШИМ ...
Не совсем понятно: аппаратно или программно? Конденсатор на 19 ноге драйвера? Но ведь этим задается постоянная общая яркость.
Если предположить что программно - то обновленный код автор (Лукьянов) не выложил.
Здраствуйте ! Подскажите пожалуста - как сделать чтоб вместо датчиков растояния можно было поставить физические контакты (кнопки) ?
Мне кажется автор использовал микруху m5451 с аппаратной поддержкой ШИМ, заказал одну из таких теперь как придут буду колдовать со скетчем
Здраствуйте ! Подскажите пожалуста - как сделать чтоб вместо датчиков растояния можно было поставить физические контакты (кнопки) ?
Видел где то я в нете с кнопками. А реализовать - даже проще чем с датчиками, так как, для датчика куск скетча больше, а для кнопок нужно будет только "дребезг крнтактов" убрать....
Видел где то я в нете с кнопками. А реализовать - даже проще чем с датчиками, так как, для датчика куск скетча больше, а для кнопок нужно будет только "дребезг крнтактов" убрать....
Верно про дребезжание подмечено раньше очень часто забывал и из за этого проект неработоспособен. Но сейчас юзаю debounce библиотеку с ней думаю значительно сократиться код.
Здраствуйте ! Мучаюсь уже месяц и никак не могу сделать рабочий проект с контактами вместо дальномеров ! Если можно - дайте код для такой схемы ! Буду очень признателен.
Уже второй день колдую с драйвером m5451b7 все никак не разберусь с управлением яркостью, хочется сделать плавный поджиг, может у кого есть информация как управляться с данным драйвером, заранее спасибо
Яркость задаеться резистором на 19 ногу мелкосхемы.
Просто резистор на 19 ноге задает общую (и постоянную) яркость для всех каналов. Для плавного (и раздельного) поджига нужен ШИМ сигнал с ардуины, ну и соответственно код.
Что, тема закончилась? Никто не смог сделать плавный поджиг. :((
Кстати тему хотелось бы поднять, так как времени не особо много было почти не занимался, думаю его не составит труда добавить просто когда на драйвере M5451 Clock pin не защелкнут можно добавить плавный поджиг на ноге brightness через оператор FOR, вечером попробую отпишусь
Похоже тема закрылась.... очень жаль что не удалось реализовать плавный поджиг
Не думаю что закрыли тему все таки у меня проект тоже висит в подвешенном состоянии, я изучаю возможности программирования m5451 так как в программировании не силен все идет сложно но уже есть рабочие проекты плавного поджига чуть допилю и вывешу линк с мануалом в данную ветку. Я очень хочу реализовать этот проект
Ну хотя бы сам принцип планого поджига расскажи
Принцип примерно такой Широтно-импульсная модуляция только реализовать ее надо на M5450. Запускаете SPI на 8 МГц и в прерывании по таймеру формируете программный ШИМ. Примерно как тут Программный ШИМ на сдвиговом регистре.
Спасибо :) буду думать :)
Спасибо :) буду думать :)
А вот есть такая штука - PCA9685 (16-канальный контроллер светодиодов с 12-разрядными ШИМ, управляемый посредством шины I²C) http://catalog.gaw.ru/index.php?page=component_detail&id=64764
у PCA9685 каналов маловато.. мне нужно на 18 ступеней
analogWrite() на любом выводе + 2 шт. SHARP2Y0A02 и будет вам плавной разгорание, затухание 18 каналов без доп.микросхем, если на канал не более двух светодиодов подключите. Если больше двух или светодиодную ленту, то нужны ключи или сборки например 3 шт. ULN2003.
Да блин уже приобрел М5451....
Так у М5451 ток на канал тоже всего 15 мА и если подключать ленту, то все равно нужны ключи.
Библиотека от Maksima тоже вариант. Теперь другой вопрос - как с помощью кнопок сделать оперативные регулировки скорости перетекания.
Так у М5451 ток на канал тоже всего 15 мА и если подключать ленту, то все равно нужны ключи.
Максим, подскажи, а принцип работы сборок ULN2003, точнее неправильно.. как эти сборки подключать?
я правильно понимаю:
ноги 8 - это земля для БП лент, 10-16 - сигнальные от ардуины, 1-7 - минус от св. лент?
еще в описании на ULN2003 нашел цифру VCE = 50V, VI = 30A, т.е. максимальная нагрузка может быть 50*30 = 1500W ?
PS: Или эти обозначения что-то другое указывают?..
В тему никто не заглядывает что ль?
С ULNками разобрался.. 500мА на канал оказывается.
Сегодня хотел проверить работу драйвера, собрал на макетной плате следующее:
и залил скейч:
в итоге светодиоды не загораются. В чем может быть проблема?
UPD:
Подключил светодиод напрямую к 6 ноге ардуины - моргает, к 7 ноге - горит. Т.е. код выполняется.. как проверить исправен ли сам драйвер или он у меня некорректно подключен?..
UPD2: Разобрался :)
Светодиоды подключал неправильно, надо: от ног драйвера подключать "-", а от второго вывода светодиода на "+" от ардуины.
Максим, здравствуйте!
Подскажите пожалуйста, как правильно сделать вариант, когда человек (или несколько) остановился на лестнице?
Я понимаю так, что надо считать сведения с нижнего датчика несколько раз (приближается человек или отдаляется), записать в какой нибудь регистр 1, и зажигать светодиоды. Если за ним поднялся второй то добавить к этому регистру 1. Если с верхнего датчика тоже пошли два человека, то записать ещё 2 в этот регистр. И если человек спустился и отдаляется, то вычитать из этого регистра 1. В логике, конечно я это придумал, но как это правильно написать?
Вы в этом(20) посте выдвигаете эту идею, но если одновременно пойдет два человека, то лестница погаснет.
Принцип примерно такой Широтно-импульсная модуляция только реализовать ее надо на M5450. Запускаете SPI на 8 МГц и в прерывании по таймеру формируете программный ШИМ. Примерно как тут Программный ШИМ на сдвиговом регистре.
Максим. Добрый день. Вот нашол код который реализуе почти плавное загорание светодиодов
то что под заголовком (Linear per-LED brightness method) в loop реализует плавное загорание и затухание через один светодиод
то что (Turn on a couple to make a "comet" with dimming tail) змейка с плавным затуханием
Теперь вопрос: можно ли обединить ваш код и эти что бы получить плавное загорание и затухание всех светодиодов по очереди?
Тут много лишнего просто были и другие команды я убрал.
Заранее благодарен
Начал эксперементы с яркостью светодиодов, подключив к 9 ноге ардуины 19 ногу от ММ5451. Пока добился изменение яркости в статике (если ориентироваться на реализацию Лукьянова) повторил постоянное свечение яркости верхней и нижней ступеней порядка 30% от макимальной, при срабатывании датчиков свечение 100%. Плавный поджиг пока не получается.
Вопрос Максиму. Повторил Ваш код с изменяемым количеством ступеней и почему то после срабатывания датчика гасятся не все диоды, последние три остаются гореть. Опытным путем установил что при строке :
for(char i = 0; i <= NUM_LEDS+3; i++) // тушим светодиоды
гаснут все. Почему так происходит?
Почему так происходит?
то есть количество единичек должно соответствовать количеству светодиодов.
Понял. Спасибо большое. А вот как можно реализовать, как у Лукьянова, изменение количества ступеней с помощью кнопочек? Я так понамию что это меняется маска и заносится в EPROM?
Здравствуйте Максим. А можно с вами как-нибудь связаться ? Напишите пожалуйста почту.