Освещение по Ethernet

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Ответить
k_w_m
Сообщения: 98
Зарегистрирован: 19 июл 2013, 13:41

Освещение по Ethernet

Сообщение k_w_m » 03 фев 2017, 01:19

Воодушевившись темой http://ab-log.ru/forum/viewtopic.php?f= ... =40#p10849
Решил повторить перенеся на atmega328, точнее на стандартные Ардуиновские модули.
Название темы посоветовали более опытные товарищи, постараюсь оправдать :-)))
IMG_0922_1.jpg
IMG_0922_1.jpg (18.55 КБ) 1630 просмотров
Что умеет:
Есть 4 канала pwm для управления RGBW лентами, управление от китайских ИК пультов для лент (пока только Nec протокол). Есть еще канал для управления включением БП и 2 канала для вывода на ленты/панели/гирлянды на ws2812. Можно также подключить по i2c RTC и LCD дисплей и выводить время на панель 32*8 из ws и на кольцо из 60 штук ws
IMG_0953_1.jpg
IMG_0953_1.jpg (28.79 КБ) 1630 просмотров
Устройство собрано из:
ATMEGA 328 C кварцем 16 MHZ (стандартный Arduino mini pro). Питание 5 В.
ENC28J60 с питанием 5 В (с распаянным на нём AMS1117 3.3)
I2C RTC Модуль с DS3231 и 24C32
I2C OLED 0,96" 128*64 на SSD1306
LCD1602 на HD44780 c I2C модулем на PCF8574
TSOP я оторвал от китайского блока управления лентами

Для управления используется инкрементный энкодер с подсветкой двумя ws2812, соединенными параллельно. Это подключено UTP проводом длиной метров 5.
IMG_0925_1.jpg
IMG_0925_1.jpg (13.67 КБ) 1630 просмотров
Попробую описать схему соединений atmega328 (в скобках Ардуино), т.к. нарисовать нормальную пока не получается.

PD0, PD1 (0,1 или Rxd,Txd) - Вращение Энкодера. Подтянуто к +5В резистором 1 кОм
PD2(2) - Кнопка Энкодера. Подтянуто к +5В резистором 1 кОм
PD3(3) - Наверное вход. Пока не используется
PD4(4) - Выход на WS2812
PD5(5) - Выход PWM Зелёный цвет через резистор 680 Ом на затвор MOSFET Nтипа из дохлой материнки
PD6(6) - Выход PWM Красный цвет через резистор 680 Ом на затвор MOSFET Nтипа из дохлой материнки
PD7(7) - Выход на WS2812

PC0(A0) - Выход SS SPI на вход CS ENC28J60. Подтянуто к +3В резистором 10 кОм
PC1(A1) - Выход. Пока не используется
PC2(A2) - Выход. Power On. Активный уровень "0". Для управления компьютерным БП
PC3(A3) - Выход. Пока не используется
PC4(A4 или SDA) - TWI (I2C) SDA
PC5(A5 или SCL) - TWI (I2C) SCL
ADC6(A6) - Вход. ADC
ADC7(A7) - Вход. ADC

PB0(8) - Вход ИК. Режим ICP. Соединен напрямую с TSOP.
PB1(9) - Выход PWM Синий цвет через резистор 680 Ом на затвор MOSFET Nтипа из дохлой материнки
PB2(10) - Выход PWM Белый цвет через резистор 680 Ом на затвор MOSFET Nтипа из дохлой материнки
PB3(11 или MOSI) - MOSI SPI на вывод SI ENC28J60.
PB4(12 или MISO) - MISO SPI на вывод SO ENC28J60. Через резистор 270 Ом
PB5(13 или SCK) - SCK SPI на вывод SCK ENC28J60.

Цветом выделено не обычное подключение ENC к Меге, т.е. если соединять стандартные шилды, то этот контакт следует отогнуть или откусить и соединить проводами так, как описано.

Для питания устройства и лент я использую старый компьютерный блок питания. дежурные 5В идут на питание схемы, +12В питают ленты, +5в питают ленты/панели из ws2812, а управляется БП выходом PC2.
IMG_0943_1.jpg
IMG_0943_1.jpg (47.86 КБ) 1630 просмотров
Сейчас прошивка собрана под OLED дисплей 0,96" 128*64 на SSD1306 можно пересобрать под LCD1602,
I2C устройства можно не подключать. Все будет работать с соответствующими ограничениями.
Уже добавлены BH1750, ATMEL24C32 но не придумал как их использовать

Фьюзы : E:0x06 L:0xff H:0xda

Прошивка фьюзов:

Код: Выделить всё

avrdude -c usbasp -p m328p -P COM1 -V -U efuse:w:0x06:m -U lfuse:w:0xff:m -U hfuse:w:0xda:m 
Заливка прошивки:

Код: Выделить всё

avrdude -c usbasp -P COM1 -p m328p -F -e -U flash:w:main.hex
Прошивка:
main.zip
(30.13 КБ) 110 скачиваний
default: ip 192.168.0.18 Маска 255.255.255.0 Пароль sec

Код: Выделить всё

[size=50]avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:AVR Memory Usage
----------------
Device: atmega328p

Program:   30110 bytes (91.9% Full)
(.text + .data + .bootloader)

Data:       1636 bytes (79.9% Full)
(.data + .bss + .noinit)

EEPROM:      361 bytes (35.3% Full)
(.eeprom)[/size]
Основные команды управления:

Код: Выделить всё

http://192.168.0.18/sec/?cf=1&eip=192.168.0.18&pwd=sec&sip=&sct=
-Установить сетевые параметры

http://192.168.0.18/sec/?on=1	- Включить свет.
http://192.168.0.18/sec/?on=0	- Выключить свет.

http://192.168.0.18/sec/?get=1
	- Прочитать значения оттенка, насыщености, яркости и яркости белого

http://192.168.0.18/sec/?set=1&w=0&v=100&s=100&h=345
	- Установить яркость белого, яркость, насыщеность и оттенок

http://192.168.0.18/sec/?dtp=1 -- Страница Дата/Время/Температура 3231
http://192.168.0.18/sec/?dtp=1&dat=25%2F01%2F2017&tim=20%3A32%3A28%5B3%5D
- Установка Дата/Время/День недели

http://192.168.0.18/sec/?wsp=1 -- Страница выбора типа панелей
http://192.168.0.18/sec/?wsp=1&ws0=0&ws1=2 -- Установка типа панели
0 - Круглые часы из 60 ws2812. Первый светодиод - 0 минут. ws2812 расположены по часовой стрелке.
1 - SmartClock. Круглые часы из 60 ws2812. Одним цветом светится сектор между часовой и минутной
 стрелками, другим между минутной и часовой. (не доделан)
2 - Часы на панели 32х8 ws2812 текущего RGB цвета с текущей яркостью.
 И с яркостью 1 в состоянии выключено.. Первый светодиод - Нижний правый угол.
3 - Вывод на один ws2812 текущего RGB цвета с текущей яркостью.
 И с яркостью 3 в состоянии выключено.
 Используется для подсветки энкодера. Работает с ws2811.
4 - Вывод "радуги" на ленту/панель/гирлянду до 512 ws2812. (не доделан)
5 - Вывод текущего цвета RGB с текущей яркостью на ленту/панель/гирлянду до 512 ws2812.
6 - Вывод двух строк по 32 символа со скроллингом на панель 32х16 ws2812 текущего RGB цвета
 с текущей яркостью. И с яркостью 1 в состоянии выключено. Первый светодиод - Верхний правый угол.

http://192.168.0.18/sec/?lep=1 -- Страница выбора настроки цветов для ROUND CLOCK
http://192.168.0.18/sec/?led=14 -- Страница настроки цветов

Рекомендую использовать цвета для ROUND CLOCK:
http://192.168.0.18/sec/?led=4&r=1&g=0&b=0 -- Цвет часов при выключенном свете
http://192.168.0.18/sec/?led=5&r=5&g=0&b=0 -- Цвет часов при включенном свете
http://192.168.0.18/sec/?led=6&r=0&g=5&b=0 -- Цвет минут при выключенном свете
http://192.168.0.18/sec/?led=7&r=0&g=25&b=0 -- Цвет минут при включенном свете
http://192.168.0.18/sec/?led=8&r=0&g=0&b=5 -- Цвет секунд при выключенном свете
http://192.168.0.18/sec/?led=9&r=0&g=0&b=50 -- Цвет секунд при включенном свете
http://192.168.0.18/sec/?led=10&r=5&g=5&b=5 -- Цвет делений 15, 30, 45 при выключенном свете
http://192.168.0.18/sec/?led=11&r=25&g=25&b=25 -- Цвет делений 15, 30, 45 при включенном свете
http://192.168.0.18/sec/?led=12&r=1&g=1&b=1 -- Цвет делений 5, 10, 20, 25, 35, 40, 50, 55 при выключенном свете
http://192.168.0.18/sec/?led=13&r=5&g=5&b=5 -- Цвет делений 5, 10, 20, 25, 35, 40, 50, 55 при включенном свете
Цвет деления 0 - текущий RGB цвет (может использоваться для подсветки энкодера)

http://192.168.0.18/sec/?irp=0...1 -- Страницы выбора кнопок ИК
http://192.168.0.18/sec/?iii=0...19 -- Настройка кнопки ИК
Пример;
http://192.168.0.18/sec/?iii=0&c=FF02FD&o=2&t=3&w=0&v=100&s=100&h=345 кнопка включения, цвет не меняется
-- Ввод команды. Перед входом в настройку конкретной кнопки можно установить цвет, который будет
назначен на кнопку и нажать на кнопку пульта ДУ. Эти данные будут использованы в качестве предустановки.
   iii - № кнопки
   с -- Сигнал с пульта 4 байта в hex формате
   o -- Управление включением
        0 - Off
        1 - On
        2 - Change
        3 - NC (Nothing)
   t -- Установка уровней цветов
        0 - Set (установить яркость, насыщенность, оттенок в N единиц)
        1 - '+' (увеличить яркость, насыщенность, оттенок на N единиц)
        2 - '-' (уменьшить яркость, насыщенность, оттенок на N единиц)
        3 - NC (Nothing)
   w -- яркость белого,
   v -- яркость,
   s -- насыщеность      
   h -- оттенок

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Освещение по Ethernet

Сообщение Andrey_B » 03 фев 2017, 10:56

k_w_m, скажите, что за энкодер вы использовали? Это какое-то готовое изделие только с энкодером или был переделан "диммер"?

k_w_m
Сообщения: 98
Зарегистрирован: 19 июл 2013, 13:41

Re: Освещение по Ethernet

Сообщение k_w_m » 03 фев 2017, 18:40

Самый простой китайский энкодер. Потом пришлось купить диммер, для того, чтобы взять от него накладку и ручку ((((
Мне в одном месте предложили накладку и ручку отдельно, но по цене 3/4 диммера ((

THK
Модератор
Сообщения: 588
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: Освещение по Ethernet

Сообщение THK » 03 фев 2017, 21:04

При таком включении транзисторов (затвор через резистор к меге) транзистор греется? Какая нагрузка на ШИМ каналах?

k_w_m
Сообщения: 98
Зарегистрирован: 19 июл 2013, 13:41

Re: Освещение по Ethernet

Сообщение k_w_m » 03 фев 2017, 21:43

Исходники точно будут, только чуть-чуть причешу. Сейчас закоментированных строк раза в 3 больше, чем живых.
Mosfet не греется совсем. Нагрузка: ленты 5 м , 60 диодов на метр.
А вот L298N грелись очень прилично, даже с радиатором.

Ответить