Сеть умных светильников к Arduino Uno
- Войдите на сайт для отправки комментариев
Втр, 01/03/2016 - 15:07
Собсвенно идея такая - нужно реализовать сеть светильников (диодных), с возможностью регулировки их яркости
за узел хочу взять arduino nano(328)
Изначально думал сделать на сети 1-wire но потом выяснил, что Далас который можно регулировать яркость стоит дорого.
Теперь подумываю о MAX485( сеть по 485 протоколу)
Но тут тоже проблема в том какой на него повесить не дорого чип
Так как светильников будет много - чтобы была воможность повесить до 50 штук хотябы лучше до 100
Что предложите? Желательно чтобы сеть была по 3 проводам.
Спасибо
Я бы рассморел вариант на WS2801, либо аналогичных. там можно и побольше 100шт.
WS2801 - а на нее можно сделать шину метров 20 ?
Можно ли упралвлять каждым светильником в отдельности?
Как реализовано упарвление яркостью?
мне кажется что сигнал быстро потеряется - не получится даже на метров 5 - а если нужно на 10-15 метров отвести провод через 2-3 метра сделать 10 светильников?
WS2801 - а на нее можно сделать шину метров 20 ?
Можно ли упралвлять каждым светильником в отдельности?
Как реализовано упарвление яркостью?
1. да можно.
2. можно. Можно даже RGB.
3. С помощью ШИМ.
а есть примеры? Интересует чтобы была индификация каждого утсройства
Чтобы например была цепь устройств(диодных лампочке) и можно было по адресу задать где какое утсройство.
Сомнительно что напрямую от ног контроллера можно допить сигналом на 20 метров )
а есть примеры? Интересует чтобы была индификация каждого утсройства
Чтобы например была цепь устройств(диодных лампочке) и можно было по адресу задать где какое утсройство.
Сомнительно что напрямую от ног контроллера можно допить сигналом на 20 метров )
Чипы WS2801, используются в светодиодных лентах, гирляндах. про 20 метровЮ ничего не могу сказать, сам лично не эксперементировал. Сигнальная шина проходит через каждый чип последовательно, идентификация так же последовательно. все тонкости не скажу, не знаю. Можно почитать даташит https://www.adafruit.com/datasheets/WS2801.pdf
а есть примеры? Интересует чтобы была индификация каждого утсройства
Чтобы например была цепь устройств(диодных лампочке) и можно было по адресу задать где какое утсройство.
Сомнительно что напрямую от ног контроллера можно допить сигналом на 20 метров )
Чипы WS2801, используются в светодиодных лентах, гирляндах. про 20 метровЮ ничего не могу сказать, сам лично не эксперементировал. Сигнальная шина проходит через каждый чип последовательно, идентификация так же последовательно. все тонкости не скажу, не знаю. Можно почитать даташит https://www.adafruit.com/datasheets/WS2801.pdf
в том то и дело что используется в диодных лентах а они обычно не больше 5 метров.
Уже больше склоняюсь к atmega328 + MAX485 правда получается очень не рациональное использование atmega)
в том то и дело что используется в диодных лентах а они обычно не больше 5 метров.
Если посмотреть в даташит, то там в каждом чипе есть Data & Clock Reconstruct. Тоесть восстановитель сигнала, или усилитель, не знаю как его назвать.
а есть примеры? Интересует чтобы была индификация каждого утсройства
Чтобы например была цепь устройств(диодных лампочке) и можно было по адресу задать где какое утсройство.
Сомнительно что напрямую от ног контроллера можно допить сигналом на 20 метров )
Там не по адресу. Там другой принцип.
Проводов там три, питание, земля и сигнал.
Микросхемы стоят при диодах (RGB). По одной на диод. Соединены все последовательно тремя проводами.
Принцип работы такой:
1. каждая микросхема может принять сигнал начала сеанса обмена и понять, что начинается новый сенас.
2. После начала нового сеанса каждая микросхема ждёт пока до неё дойдут 24 бита данных (по 8 на каждую ногу светодиода). Приняв их, она конфигурирует цвета своего диода, а все последующие данные просто транслирует сквозь себя дальше (на следующие в цепочке микросхемы).
Таким образом, первая в цепочке микросхема сожрёт первые 24 бита (остальные их просто не увидят), вторая сожрёт следующие 24 бита, третья следующие и т.п.
Нет никакого способа задать цвета одной микросхеме (одному диоду). Нужно обязательно обновить их все, даже если поменялся только один цвет одного диода.
Количество светодиодов ограничивается скоростью передачи по линии, т.к. чтобы было "живое изменение цвета" нужно обновлять всю ленту хотя бы 50 раз в секунду. Скорость передачи (максимальная) зависит от микросхемы Самая быстрая WS2812 - 800 килобит в секунду (забудьте 2801 - сильно устарела). Вот и считаем 24 бита на один диод, умножаем на 50 = 1200, теперь 800000/1200 = 666 светодиодов, но это абсолютный максимум.
ДОБАВЛЮ.
Глянул даташит на WS2812, там сказано, что между двумя соседними микросхемами допускается 5 метров. Видимо, это как раз то, на что хватает ретранслятора. Так что вся цепочка может быть 3км, а если освежать реже, чем 50гц, то и больше (т.к. можно больше микросхем напихать).
Если посмотреть в даташит, то там в каждом чипе есть Data & Clock Reconstruct. Тоесть восстановитель сигнала, или усилитель, не знаю как его назвать.
Это как раз ретранслятор на следующие чипы (я о ретрансляции писал в прошлом сообщении).
просто ищу наиболее надежный простой и дешевый способо,
С минимальным вложением времени...
пока не решил что делать...
Самая быстрая WS2812 - 800 килобит в секунду (забудьте 2801 - сильно устарела).
Не настаиваю на WS2801, знаю что есть поновее, написал как вариант исполнения. А дальше? изучать тему cамому ТС.
В общем на любой из них можно решить задачу ТС.
В общем на любой из них можно решить задачу ТС.
Мне тоже так кажется. Более того - это на мой взгляд самое хорошее решение. Я бы даже не думал больше, а использовал бы его.
А кто скажет - в библиотеке WS2811.h при частоте кварца 16 МГц заведомые 800кГц можно снять с любой ноги. Это реально, если кодим в ардуино иде? Может, SPI надо приторочить?
Не знаю как это реализовано в библиотеке WS2811.h, однако 800кГц можно снять с любой ноги при частоте кварца 16 МГц (а может и при 8 МГц).
Количество светодиодов более всего зависит от объёма оперативной памяти в Ардуине, чем от технических возможностей (специализированные контроллеры 2 тысячи светодиодов в одной ленте легко поддерживают).
Библиотеки для Ардуины: FastLED и Adafruit_NeoPixel.
FastLED и фрукт неопихель - не мой путь. Ассемберная ws2811.h мне больше по душе.
И, кстати, вот здесь
http://arduino.ru/forum/programmirovanie/chastota-vyzovov-loop
пишут, что в loop чуть более мегагерца. Получается, что тык впритык и чем-то ещё нагрузить МК сходу не получится.
На каждый светильник Attiny85 + конденсатор по питанию + ключ на транзисторе. Использовать с протоколом 1-Wire или RS485 (тогда еще добавим преобразователь MAX485).
Бюджетно и на большие расстояния.
Attiny85
подойдет для 1-wire? Как его повесить на него?
Пример есть?
max485 тоже хватит памяти в attiny85 для работы?
http://littlewire.cc/
http://joxi.ru/xAeDEqoIYL8gV2
http://joxi.ru/Drlol4Wu4ez0ZA
Получается аттини85 по цене выходит как amega328 ))
Так что выбрать... хотя это может китайцы вообще оборзели... но факт фактом..
Получается аттини85 по цене выходит как amega328 ))
Так что выбрать... хотя это может китайцы вообще оборзели... но факт фактом..
Это в целом нормально. Тини - гораздо более популярная микросхема. Так что "спрос и предложение".
А что выбрать - мне если хватает памяти и количества ног Тини - всегда беру её, т.к. она в три с половиной раза меньше по размеру (в DIP корпусе).
Можете полюбопытствовать - цены производителя: Тини, АТмега328.
ну популярность это не то что мне сейчас нужно)
Главный вопрос цены и рациональности
думаю что тип85 можно и дешевле купить - китайцы просто цены ставят от балды)
Если получилось бы запустить их на 1-wire или 484 было бы не плохо.
rs485 - там максимум 32 устройства - то есть это максимум - мне вообще обратная связь не очень важна - если немного яркость будет не так - то я могу просто повторно выслать лучше лишний раз.
----
1-wire чтобы сделать из аттини слейв - такого я так понял сделать нельзя... только как матсер
cеть на самописном протоколе, аналог OneWire: http://bigbarrel.ru/virtualwire-arduino-example/
Сеть на RS-485:
http://arrduinolab.blogspot.ru/2015/02/arduino-rs485-2.html
http://adatum.ru/podklyuchenie-konvertera-rs-485-v-ttl-k-arduino.html
Bолько вместо ProMini будет Attiny85 (или DigiSpark). Хотя по цене паритет: в России Arduino Pro mini ATmega168 стоит 140 р., Arduino Digispark на ATtiny85 - 160 р., голая микруха ATtiny85-20PU - 120 рублей.
пока что есть 10 миников, но в планах пилить это все на маленькой плате диаметром 3 см
сейчас просто ищу решения и буду их тестировать. очень важна стабильная работа.
Еще может кто знает где можно купить светодиоды самсунговкие? Спасибо!
И заливать все это эпоксидной смолой. Вот такие планы.
rs485 - там максимум 32 устройства -
Это по стандарту. А так до 128 устройств у болида, например. Можно и на полевиках сварганить драйверы.