ATtiny13a: Контроллер управления СТОП-сигналом и габаритными огнями автомобиля

в 16:21, , рубрики: atmel, attiny13a, c++, Автомобильные разработки., программирование микроконтроллеров, Электроника для начинающих

Здравствуйте!

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

И вот на тебе! Пробка… А ехать еще и ехать. Путь не близкий, с учетом пробки — это не менее 3 часов до дома.
Ну, соответственно: подбадриваю себя, что, мол, дома ужин, чай, снег за окном. И вроде настроение возвращаться начинает, как внезапно с правой полосы Toyota Prius (ну, знаете такой — на батарейках весь), включает левый поворот и лезет прямо перед моей машиной… «Хорошо, дружище! Езжай, все равно вместе стоять 3 часа.» Встроился, проехал два метра и встал. Как положено на дороге в пробке, зафиксировался тормозом.

Я видел разные машины, видел разные реализации СТОП-сигналов, но то, что произошло в тот момент, было со мной лишь однажды. Когда я в первый раз прикупив ультра-ярких светодиодов пришел домой и решил сразу «испытать». Боль пронзила мои глаза аж до затылка, когда я подключил это дело к батарейке. Это надолго оттолкнуло меня от желания заниматься подобными устройствами.

Вот и в этот раз, в пробке, я вновь испытал это чувство. Не знаю, были ли настроены на такую яркость его СТОП-сигналы, или же это мокрое стекло имело эффект линзы. В общем, как я не пытался и не старался, а пришлось ехать вслед за ним все 3 часа — либо справа, либо слева, а то и прямо за этим «адом».

Все произошедшее со мной не затронуло бы меня настолько, если бы прямо в те дни я не раздумывал над реализацией своей идеи о замене штатных ламп в СТОП-ах на светодиодные сборки. Я всерьёз задумался об их яркости и о том, какой вред они могут оказать водителям сзади (к слову о реализации — она была выполнена на 50%, но в силу новых обстоятельств пришлось отложить).

В этот момент я и столкнулся с тематикой микроконтроллеров, один из которых (ATtiny13a) и было решено применить для устранения описанного эффекта, а заодно и упростить реализацию моей задачи, вместе с этим позволив применить экономию и эстетичность выполнения.

Суть разработки в следующем:

1. Устранить зависимость от раздельных источников света в СТОП-сигнале;
2. Ограничить яркость двумя верхними пределами — отдельно для габаритных огней и для СТОП-сигнала;
3. Реализовать приглушение яркости СТОП-сигнала, если педаль тормоза нажата продолжительное время, и в то же время позволить отличать полученный уровень яркости от габаритных огней;
4. Реализация должна быть выполнена с использованием штатной схемы авто, без существенных изменений;
5. И последнее: задуманное реализовать в виде модулей, которые можно использовать независимо в каждом фонаре, заменять, а также иметь возможность снятия в нужный момент для перепрошивки или доработки.

В результате получился такой алгоритм:

1. Формируем аппаратный ШИМ с выводом на (PB0) (частота должна превышать 100Гц для устранения мерцания);
2. Инициализируем вход АЦП (PB4) в непрерывном режиме;
3. Cчитываем значение АЦП (на который приходят два сигнала — один от габаритных огней, второй от педали тормоза с разными соответствующими уровнями);
4. Формируем флаги: 1 — нажат тормоз, 2 — включены габариты;
5. Если выставлен флаг педали тормоза, задаем скважность ШИМ равную верхнему пределу СТОП-сигнала, и запускаем счетчик длительности нажатия;
6. Если педаль тормоза была отпущена, то останавливаем счетчик и восстанавливаем верхний порог яркости для СТОП-сигнала, если при этом включены габариты, то плавно меняем уровень яркости до верхнего предела яркости габаритов;
7. Если педаль тормоза все еще нажата, то каждую секунду отнимаем от верхнего предела СТОП-сигнала — 1, пока не достигнем нижнего порога яркости для СТОП-сигнала. Когда нижний порог яркости для СТОП-сигнала достигнут останавливаем счетчик;
8. Если выставлен флаг габаритов и педаль тормоза не нажата, то плавно изменяем скважность ШИМ до верхнего предела яркости для габаритов;
9. Изменяем значение регистра аппаратного ШИМ и переходим на п.3.

Прошивка создана в Atmel Studio, и ее работоспособность протестирована в Proteus 8.1.

Частота ШИМ — 300Гц, размер кода прошивки — 250 байт, оперативная память и EEPROM не используются.

Текст программы получился очень кратким:

ATtiny13a: Контроллер управления СТОП-сигналом и габаритными огнями автомобиля - 1

Тестовый проект в Proteus:

ATtiny13a: Контроллер управления СТОП-сигналом и габаритными огнями автомобиля - 2

Питание контроллера решено брать прямо с питания приходящего на лампы, они же — сигналы для АЦП.
В схеме не указаны стабилизаторы они будут применены при реализации.

Честно сказать, я еще новичок, и у меня еще даже нет контроллеров, поэтому все создаю виртуально.
Как поведет себя схема и прошивка в реальных условиях — не могу сказать, еще не проверил.
Поэтому очень жду от вас конструктивных предложений и комментариев к схеме.
Буду очень признателен. Может я не учел какие-то особенности.
Тем не менее, хочется успешно закончить начатое и довести дело до конца.

P.S.: По поводу экономии:
Машина — Mark II, лампы накаливания СТОП-сигнал — 4 * 25 Вт, габариты 4 * 5 Вт — итог 120 Вт (габариты и СТОП включаются вместе в темноте).
Вместо них планирую ставить диодные сборки красного свечения по 10 Вт, значит при максимальной яркости — 40 Вт.
~800 люмен каждая сборка, с применением моей разработки получаю габариты — ~1000 люмен и СТОП-сигнал>2000 в сумме. Значит при среднем потреблении 10-30 Вт получается экономичней в 4-8 раз.
Напомню, что в машинах, в которых не предусмотрены ДХО, согласно правил ГИБДД необходимо ездить с включенными фарами, соответственно габариты работают и днем и ночью. А это, при длительных расчетах отражается на кармане.

По ссылке можно найти прошивку, проект для Proteus 8.1 и исходный код.

Использование в коммерческих проектах, перепродажу исходного кода и использование с целью наживы, запрещено.

Исходные тексты распространяются бесплатно, в случае использования на других сайтах, либо в других источниках, указание автора и уведомление о размещении — обязательно.

Автор: DolphinSoft

Источник

Поделиться

* - обязательные к заполнению поля