Программирование AVR: работа с USB Автомат управления освещением ledlight Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Автомат управления освещением ledlight Печать
Добавил(а) microsin   

Алгоритм работы прост - когда в определенном месте освещение ниже допустимого уровня (определяется с помощью фотодатчика), а также детектируется движение человека (определяется пассивным инфракрасным датчиком присутствия TLC-15), то устройство плавно включает освещение на заданное время. Если во время включения в зоне наблюдается продолжение активности человека, то освещение продолжает работать (таймаут удержания освещения постоянно сбрасывается). Все параметры, по которым работает устройство (время удержания освещения, чувствительность фотодатчика и т. п.), записаны в EEPROM микроконтроллера и сохраняются при выключении питания устройства. Параметры могут быть изменены с помощью специальной программы llcontrol.exe через интерфейс USB, либо сброшены в значение по умолчанию - как с помощью программы llcontrol.exe, так и с помощью перемычки между контактами 4 и 6 коннектора ISP платы AVR-USB-MEGA16. Процедура изменения настроек или их сброса описана далее.

ledlight IMG_8140low ledlight IMG_8143low ledlight IMG_8146low

Выполнено устройство на основе макетной платы AVR-USB-MEGA16 [1], и свободно распространяемой библиотеки V-USB компании OBJECTIVE DEVELOPMENT Software GmbH [2]. Его схема представляет собой интерфейс для подключения датчика движения/присутствия и фотодатчика, а также ключа управления включением светодиодов освещения. Индикационный светодиод, установленный на плате AVR-USB-MEGA16, показывает активность датчика движения. При особенных требованиях к освещенности можно применить фотодатчик повышенной чувствительности, с двумя фоторезисторами. Такая схема имеет преимущество также в том, что фоторезисторы СФ3-4Б работают при более походящем напряжении (2.5 в вместо 4.5 в, так как для них предельное напряжение 5 в).

ledlight-sch01 photo-sensitive-sensor.jpg

С меньшим успехом можно также использовать фотодиоды ФД-256 - при этом снизится чувствительность фотодатчика.

Питается устройство от стабилизированного источника напряжения 12 вольт, ток потребления не превышает 50 мА а в режиме ожидания и 120 мА в режиме включения светодиодной подсветки. Подсветка питается от того же источника 12 вольт - это 3 светодиода, включенные последовательно. Ток через светодиоды ограничивает резистор R2. Для измерения уровня сигнала с фотодатчика используется АЦП микроконтроллера ATmega16, включенный в режиме с дифференциальными входами (ножки 35, 36, 37 корпуса TQFP). Коэффициент усиления перед АЦП (x1, x10 или x200), влияющий на чувствительность фотодатчика, задается установкой соответствующего параметра в EEPROM. Для приема сигнала с датчика движения TLC-15 используется простой цифровой входной порт с включенным внутренним нагрузочным резистором (ножка 33 корпуса TQFP). Включением света управляет порт в режиме выхода (ножка 43 корпуса TQFP).

Для сброса параметров в значения по умолчанию выключается питание устройства, замыкаются контакты 4 и 6 коннектора ISP (при этом ножка 1 корпуса TQFP замыкается на землю), а затем включается питание. Микроконтроллер в течение секунды опрашивает наличие низкого уровня на порте PB5 (ножка 1 корпуса TQFP), и если он сохраняется, то 3 раза мигает индикационным светодиодом, сигнализируя о том, что параметры EEPROM будут сброшены. Если перемычку во время этих миганий не убрать, то параметры EEPROM сбрасываются, и устройство перезагружается, после чего перемычку нужно убрать. Сбросить параметры можно также командой llcontrol.exe default (описание опций утилиты llcontrol.exe см. далее).

Нормальный вход в рабочий режим после включения питания индицируется плавным включением и выключением подсветки. Если обнаружена ошибка контрольной суммы параметров CRC, то устройство переходит в режим индикации ошибки - постоянно с периодом в секунду мигает подсветка.

Для управления параметрами устройства используется программа llcontrol.exe, при этом устройство должно быть подключено к интерфейсу USB компьютера. Для получения подсказки по опциям командной строки нужно запустить llcontrol.exe без опций, выведется следующая информация:

C:\TEMP>llcontrol.exe
Usage:
  llcontrol.exe default
  llcontrol.exe param
  llcontrol.exe verify
  llcontrol.exe view
  llcontrol.exe read
  llcontrol.exe write
Options:
default     reset all params to default values
param <...> set specified params. Params are:
  -LON:nnnn   threshold ON  light. Value 1..1023.
  -LOFF:nnnn  threshold OFF light. Value 1..1023.
  -IL:nn      number consecutive ADC readungs. Value 1..255.
  -MD:n       enable (n==1) or disable (n==0) motion detection. Value 0 or 1.
  -LT:nn      time light keeping in seconds. Value 1..255.
  -RS:nn      step delay to light brightness rising.  Value 1..255.
  -FS:nn      step delay to light brightness falling. Value 1..255.
  -GA:n       ADC gain select. Value 0 (x1), 1 (x10) or 2 (x200).
verify      check all EEPROM params.
view        view  all EEPROM params.
read        read all EEPROM data and dump to console.
write <...> write bytes to EEPROM from start address 0.
 
Наиболее часто используемые опции default, param, verify и view (оставшиеся опции read и write нужны для манипуляции данными EEPROM в двоичной форме, и их лучше не использовать). Для управления параметрами устройства вводят llcontrol.exe param и список параметров (можно указать один или более параметров). Если какой-то параметр не указан, то он оставляется в EEPROM без изменения. Параметры могут быть следующие (вместо букв n вводят значение параметра):

-LON:nnnn порог освещенности для ВКЛючения. Допустимые значения 1..1023. Значение по умолчанию 100.
-LOFF:nnnn порог освещенности для ВЫКЛючения. Допустимые значения 1..1023. Значение по умолчанию 102.
-IL:nn  количество последовательных считываний ADC. Допустимые значения 1..255. Значение по умолчанию 10.
-MD:n  разрешение работы датчика движения. Допустимые значения 0 и 1. Значение по умолчанию 1 (разрешено).
-LT:nn  Время удержания освещения в секундах. Допустимый диапазон 1..255. Значение по умолчанию 10.
-RS:nn  Сколько времени длится шаг увеличения яркости освещения (255 шагов). Диапазон 1..255. Значение по умолчанию 100.
-FS:nn  Сколько времени длится шаг увеличения яркости освещения (255 шагов). Диапазон 1..255. Значение по умолчанию 100.
-GA:n  Выбор усиления перед ADC. Возможные значения 0 (x1), 1 (x10) или 2 (x200). Значение по умолчанию 1 (усиление x10).

Проверить параметры можно командой llcontrol.exe verify, вывести из значения - llcontrol.exe view.

[Ссылки]

1. Макетная плата AVR-USB-MEGA16.
2. V-USB download site:obdev.at.
3. 081030ledlight.rar - исходный код и бинарники проекта, документация.

 

Комментарии  

 
0 #1 Dmitry 07.11.2015 05:37
А нельзя ли файлик с проектом как то по другому скачать кроме как депозитом? Бьюсь об этот файлшаринг ничего зараза не даёт скачать.

microsin: на самом деле все просто - прогуглите, как качать с депозита, и все встанет сразу на свои места.
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Top of Page