Добрый день! Сразу хочу сказать, что я не пропагандирую msp430, но раз уж купил, то надо, как говорится, пользоваться.
Сообщество снова пожаловалось на отсутствие конкретики в постах об этой платформе.
Итак, история такова.
Была поставлена задача приобрести ночник в спальню.
Сказали, что нужно сходить в ИКЕА, у них там есть.
Но легкий путь не для нас.
Лампа подбиралась с учетом последующей возможной модернизации.
Итак, труп:
Изначально под патрон Е14. Но 5-метровая светодиодная лента уже давно пылилась в заначке.
Картридж закончился.
Я приклеила скотч по периметру с внутренней стороны.
Самоклеящийся слой подсох, но, слава богу, перестал ужасно пахнуть.
Пришлось использовать суперклей.
Получилось примерно так:
Излучатель готов.
Управляющий микроконтроллер был выбран из самого младшего из поставляемых в комплекте Launchpad — msp430g2452. Я не использовал всю отладочную плату.
Это большая боль, и я слежу за контроллером, который используется в программаторе/эмуляторе.
Я взял неработающий брелок от автосигнализации и вырезал для него плату.
Процесс сборки я не снимал.
В итоге произошло вот что:
Позвольте мне объяснить немного подробно.
VT1 – клавиша, управляющая ИК-светодиодом; VT2 – выездной коммутирующий светодиодную ленту; HL1 – ИК – фототранзистор; HL2 – ИК – светодиодный; HL3 – зеленый светодиод; С1 – блокирующий электролит для питания DA1 - стабилизатор 3,3В.
К нему, кстати, припаян небольшой радиатор.
обратная сторона платы:
куски проводов справа внизу – разъем для отладки и программирования.
К нему подключается отладчик/программатор с волшебным адаптером:
Далее по конструкции:
В качестве бесконтактного датчика был выбран ранее испытанный инфракрасный датчик расстояния на основе светодиода Л-53Ф3С и фототранзистора Л-53П3С.
Я уже имел дело с этой парой.
Я использовал их для создания инфракрасных бамперов для робота.
Они хорошо себя зарекомендовали.
Принцип работы датчика прост. Процессор сначала измеряет напряжение на фототранзисторе через АЦП при выключенном ИК-светодиоде.
После чего включает ИК светодиод и снова измеряет напряжение на фототранзисторе.
Разница измерений будет зависеть от того, насколько сильно окружающие предметы отражают ИК-излучение.
Чем ближе объект, тем больше отраженного света попадает в фототранзистор.
На всякий случай я сделал по три измерения для каждого состояния.
Результат был усреднён.
Вот переключатель в корпусе:
в сборе:
Просто включать/выключать — это не по-спортивному.
Для начала я сделал FadeIn и FadeOut. Те.
плавное увеличение яркости до максимума и плавное выключение.
Для регулировки яркости я использовал аппаратный ШИМ.
Наконец, я добавил функцию ручной регулировки яркости.
Если долго держать руку, яркость постепенно увеличивается.
Затем оно уменьшается.
Исходник на картинке (нужно распаковать винраром)
Исправленный источник на картинке (см.
комментарии)
Из особенностей программы.
Работаем с АЦП (меряем напряжение на фотодиоде); Работаем с таймером0 (нужен для аппаратного ШИМ, также моргаем светодиодом HL3); С WDT мы не работаем, хотя было бы неплохо уберечься от внезапных зависаний.
Еще не видел, поэтому не трогал.
Используется экспоненциальная зависимость яркость-ШИМ, поскольку линейное изменение рабочего цикла не приводит к линейному изменению яркости.
Собственно, результат работы: ПС.
Я нарисовал схему.
Теги: #Сделай сам или Сделай сам #msp430 Лунный диммер
-
Сенегал
19 Oct, 24 -
Маршалл, Альфред
19 Oct, 24 -
Swift И C: Туда И Обратно
19 Oct, 24 -
Photoawards.ru: Фотоконкурс Онлайн
19 Oct, 24 -
Регистраторы Доменов Переходят На Рубли
19 Oct, 24