На attiny13 для авто

Вежливая подсветка на микроконтроллере Attiny13

Как-то попросили собрать вежливую подсветку. Погуглив было найдена куча схем, и с микроконтроллером и без. Интересно было собрать такую, которую можно было регулировать. Решено было делать самую простую без микроконтроллеров.

Снова решил повторить еще какую-нибудь интересную штукенцию на микроконтроллере.
В этот раз выбор пал на вежливую подсветку в авто.

На Калинах и других переднеприводных ВАЗ эта функция реализована на тех авто, у которых активирован ИММОбилайзер.

Материал был взят с сайта: hardlock.org.ua/
Для тех, кто хочет повторить — вот статья, там все подробно расписано.

Функции устройства (cо страницы автора)

— при открытии двери свет в салоне плавно загорается;
— при закрытии двери свет плавно гаснет через 10 сек (по умолчанию), если двигатель не работает;
— при закрытии двери свет плавно гаснет без задержки, если двигатель работает;
— при закрытой двери и горящем освещении, после завода двигателя освещение плавно — погаснет не дожидаясь 10 сек.;
— при оставленной открытой двери освещение будет автоматически погашено по истечении 10 мин после открытия двери;
— возможность программирования паузы от 0 до 60 сек с шагом 5 сек.;
— возможность программирования уровня чувствительности для игнорирования паузы после завода двигателя (6 уровней).

1. Вытравил в персульфате. От хлорного железа отказался, теперь не буду покупать его.

2. Запаял детальки, запрограммировал контроллер.

Кнопки были двух модификаций, решил попробовать их.
Вольтрегулятора в нужном корпусе у меня нет, а специально такой покупать не вариант.
Взамен установил параметрический стабилизатор. (резистор на 1,6кОм + стабилитрон 5.1В).

3. Запаял проводки и начал проверять работу каждого устройства.

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

Еще раз хочу обратить внимание на отмывку платы после сборки. Использую растворитель 646 и зубную ненужную щетку.

Берем аккумулятор или блок питания на 12В. Подключаем плату на столе согласно следующей цветовке.

1) оранжевый: +12В от аккумулятора. Сюда же подключаем и один контакт лампочки.
2) желтый\зеленый: выход на другой контакт лампочки
3)черный — минус
4) белый — Этим проводом будем имитировать открывание двери. При замыкании его на минус будет загораться лампочка

Источник

Бегущий поворотник на Attiny13 с регулировкой длительности

Привет всем читателям моего БЖ!

После работы вышли к машинам, посмотрел — у него 4 светодиода в повторителе в зеркале. Тут очевидно какой МК использовать)

Вечером начал рисовать плату.

Рисовал-рисовал, а на следующий день Егор выложил пост с поворотником на Тиньке на 6 каналов. Списался с ним, он любезно поделился проектом в спринте на 4 и на 6 каналов. Но я все таки решил делать свою))

Небольшое отступление: у коллеги машина была шоркнута по водительской стороне, было убитое зеркало, но повторитель поворотника был целый. Пока я писал прошивку он решил его разобрать и расплавил)

Откатал прошивку в протеусе — все гуд. Но вопрос: а как настраивать длительность? Чтобы все было синхронно с основным поворотником. Первый вариант — сделать плату на МК в DIP корпусе, дабы поменял длительность, снял, прошил, поставил обратно. Но это слишком банально) Так что было решено внедрить кнопку)

Коль с поворотником ничего не получалось, а до реализации задуманного оставалось чуть-чуть, вчера на работе быстренько дописал прошивку, добавил прерывания, перерисовал схему и переделал модель в протеусе.

После работы сделал плату.

По запарке распечатал еще контуры компонентов( Дабы не было разрыва в дорожках эти места прорисовал маркером.

Процесс изготовления платы как всегда — фоторезист, проявка, травление, лужение, пайка. С пайкой опять косяк — в некоторых дорожках все таки были разрывы( Пришлось использовать много припоя…

Плата в сравнении с 4ым айфонием

Ну и видео, демонстрирующее работу устройства

З.Ы. Архив обновлен, изменения в eeprom теперь сохраняются

Источник

Вежливая подсветка на микроконтроллере ATtiny13

Наверное многие видели, как включается и выключается салонный свет в иномарках… Плавно, красиво… Теперь и мы такое можем сделать! А мы это сделаем на микропроцессоре ATtiny13, просто, доступно и со вкусом.:) Идея, или что должно уметь устройство.

Во главе сего дэвайса супер мощный “процессор” ATtiny13. В качестве управляющего транзистора выбран N-канальный 60T03H (AP60T03H, SSM60T03H, и т.д.) в корпусе TO-252. Выбор пал на него, т.к. такие легко достать со старых материнок, которых у меня накопилось предостаточно…

Как видно, плотность монтажа приличная, но изготовить её в домашних условиях не составит труда. Приступим!


Печатаем,

Переносим на фольгу,

Прошивка.

Теперь пора подумать о прошивке. Писал я её почти пол года, правда с перерывом в 5,9 месяца… Короче с первого раза не пошла, потом не было времени, и вот я добрался до неё!

Читайте также:  Как выбрать овалы в машину

Тинька работает на частоте 9,6 МГц, ШИМ в режиме Top=FFh, т.е. частота на выходе ШИМа = 9600 кГц / 255 = 37,64 кГц. Вход от концевика дверей и кнопка работает по прерываниям, что позволяет вгонять МК в спячку для экономии электроэнергии. Заведён двигатель или нет определяем с помощью АЦП подключенного через делитель прямо на вход питания.

Больше писать не вижу смысла – кому надо, тот разберётся по исходникам, кому оно не надо – тупо шьёт и читает как оно работает…

· Прошивка v0.4 ·

dimmer1– Flash + eeprom Автодиммер
dimmer_flash2 – Отдельно Flash для Автодиммера.
dimmer_eeprom3 – Отдельно EEPROM для Автодиммера.
firmware_v0.5-4 – Исходники прошивки для Автодиммера (CodeVisionAVR)
pcb1 – Печатная плата в формате Sprint-Layout 5.0(83.86 КБ)

Flash + eeprom – это для тех, кто шьёт PonyProg`ом. Открыл файл, прошил и всё готово. Отдельно флэш и еепром – для остальных программаторов, где нужны отдельно файлы прошивки и данных…

FUSES:

Как это работает.

Собрали, прошили, теперь разберёмся, как это устройство подключить, и как оно функционирует. Подключить можно двумя способами – без вмешательства в плафон и с некоторыми переделками плафона (если это возможно).

Вариант 1. Без вмешательства в плафон. При таком подключении плавное включение/выключение работает только при работе плафона от концевика двери, также фонкция выключения света при работе дольше 10 минут не будет работать при включении света на постоянно.

Вариант 2. С переделками плафона. Тут устройство подключается после переключателя в плафоне, что позволяет управлять лампой не только от концевика, но и при включении лампы “постоянно”.

У меня подключено по второй схеме, но вмешательство было не в плафон, а в “лампу”:

монтируем на лампу

Всё! наше устройство уже должно работать! Открываем дверь и лампочка плавно загорается, закрываем дверь и лампочка через 10 секунд плавно гаснет. Если двигатель заведён, то при закрытии двери лампочка плавно гаснет сразу же!

Если не нравится длительность задержки, то её можно поменять. Для этого при открытой двери (когда лампа полностью загорелась) нажимаем кратковременно кнопочку. Лампочка начнёт мигать. Длительность задержки зависит от количества морганий (выключений) – каждое моргание, кроме первого = 5 сек. То есть:

1 моргание – нет задержки
2 моргания – 5 секунд (по умолчанию)
3 моргания – 10 секунд

13 морганий – 60 секунд (максимум), далее идёт одно моргание.

Таким же образом регулируется чувствительность входа по определению заведённого двигателя. Для этого при закрытой двери (лампа полностью выключена) нажимаем кратковременно кнопочку. Лампа начнёт вспыхивать. Количество вспышек соответствует чувствительности:

12,8В) – по умолчанию

7 вспышек – (

14,5В), далее опять одна вспышка.

Источник

Шим и таймеры attiny13

Комментарии 66

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

Начал бы с того, что баском обратно на пыльную полку.

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

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

Так счас куда ни попадя то атмегу то аттини то ардуину втыкают.

Таймер времени очень удобно делать на ватчдоге, точность особая не нужна. При срабатывании ватчдога не ресет, а вход в прерывание.
Рекомендую так же сменить контроллер, что бы использовать внешний кварц (внутренний генератор в холода может плавать, а может вообще не запуститься) по входу 12 вольт на стабилизатор рекомендую добавить диод и RC цепочку. резистора на 5 — 10 Ом хватит, конденсатор микрофарад на 10 и керамику 0.1
АВР Студио как то так выглялит:
code/

Делай на таймере 0 переполнение с периодом 1 мс. В обработке переполнения делай инкремент программного ШИМа на переменной и проверку на достижение нужного уровня. Так же можно там же сделать обработку дребезга кнопок.

А смысл делать такую штуку без обратной связи?

Ну вообще легко. время считаеш таймером. шим и кнопки в цикле по кругу. не использовать задержки вообще — проще понизить частоту проца. в качестве антидребезга, длительности нажатий и шима переменные которые в таймере ++.

Включаем аппаратный шим и прерывание таймера, проблем нет никаких.

Вот здесь ответы на все твои вопросы: p90590qa.bget.ru/pomp-controller-1-2. Нужно только подправить исходник на Баскоме под свои нужды.

Кстати, если поочерёдно быстро включать диоды, то получится оранжевый свет.

У 13йтиньки можно использовать wdt как таймер. Wdt настраиваешь на нужное время без ресета и им отсчитываешь время включения устройства и время удержания кнопки.

Сделайте чисто программный ШИМ и проблемы с отслеживанием интервалов времени не будет. Для нагревателей высокая частота и точность ШИМ не нужна, поэтому вполне обойдетесь без аппаратного ШИМ.
По алгоритму: Вы же его в тексте уже описали. А перевести его в конкретный код можно несколькими путями.
Запустите таймер в режиме прерывания по переполнению и внутри обработчика прерывания наращивайте 2 переменные-таймера: для времени и для ШИМ. А в основном цикле уже отслеживайте значения переменных. Для отслеживания нажатия кнопки можно и прерывание использовать, но в данном случае проще постоянный опрос состояния. Заодно и программное подавление дребезга контактов организуете. И не рекомендую использовать функции задержки типа delay(), без них вполне можно обойтись и занять процессор чем-то более полезным.
По схеме: IRFZ44 в данном применении явно избыточен по току и габаритам корпуса ТО220. В данном случае целесообразнее использовать MOSFET в корпусе soic8 (выбор достаточно широкий). При частоте ШИМ в сотню Гц греться не будет, проверено.

Читайте также:  Как понять средняя скорость автомобиля

Я раньше по началу вообще сам делал шим не используя таймер( не было времени разбираться)
Тем более, что заполнение нужно два три положения. например 20% 50 % 80%
Это организовать вообще просто.

Сделайте чисто программный ШИМ и проблемы с отслеживанием интервалов времени не будет. Для нагревателей высокая частота и точность ШИМ не нужна, поэтому вполне обойдетесь без аппаратного ШИМ.
По алгоритму: Вы же его в тексте уже описали. А перевести его в конкретный код можно несколькими путями.
Запустите таймер в режиме прерывания по переполнению и внутри обработчика прерывания наращивайте 2 переменные-таймера: для времени и для ШИМ. А в основном цикле уже отслеживайте значения переменных. Для отслеживания нажатия кнопки можно и прерывание использовать, но в данном случае проще постоянный опрос состояния. Заодно и программное подавление дребезга контактов организуете. И не рекомендую использовать функции задержки типа delay(), без них вполне можно обойтись и занять процессор чем-то более полезным.
По схеме: IRFZ44 в данном применении явно избыточен по току и габаритам корпуса ТО220. В данном случае целесообразнее использовать MOSFET в корпусе soic8 (выбор достаточно широкий). При частоте ШИМ в сотню Гц греться не будет, проверено.

Я бы сказал irfz44 сопротивление многовато, нужно смотреть на мосфеты из автоиндустрии, а вообще у человека irlz44, но 22мОм, считаю много, лучше искать транзисторв 2-5мОм

neid52, при токе в 10А рассеяние на 22мОм составит 2,2 мВт — мизер. На частотах переключения в десятки килогерц рассеяние будет выше, но для частот в десятки герц, полагаю увеличение рассеяния будет вообще незаметным. Или я чего-то не понимаю?

На практике греется, я теорию знаю, вот дела себе как месяц назад управление для обогрева заднего стекла, частота 20Hz. Вообщем это дело каждого))

Подаче питания мерим температуру и от неё выбираем одно из 3 режимов шим, чем холоднее тем больше заполнение. Всё отключается через 10 минут само

Делал ребёнку жопогрей в авто кресло. Поставил терморезистор как датчик температуры. Алгоритм такой, при

запитать нагрев через термистор PTC по средствам реле с самоподхватом, при нагреве сопротивление возрастет, самоподхват разомкнется
или применить 96116223

Тоже неплохое решение.

Могу просто написать прошивку для нагревателя. Бесплатно

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

Источник

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

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

И вот на тебе! Пробка… А ехать еще и ехать. Путь не близкий, с учетом пробки — это не менее 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 не используются.

Текст программы получился очень кратким, но это не конечный вариант (после тестов прототипа будут внесены корректировки, которые затронут изменения и в этой статье):

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

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

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

P.S.: По поводу экономии:
Машина — Mark II, лампы накаливания СТОП-сигнал — 4 * 25 Вт, габариты 4 * 5 Вт — итог 120 Вт (габариты и СТОП включаются вместе в темноте).
Вместо них планирую ставить диодные сборки (читать как «мощные светодиоды») красного свечения по 10 Вт, значит при максимальной яркости — 40 Вт.

800 люмен каждая сборка, с применением моей разработки получаю габариты —

1000 люмен и СТОП-сигнал>2000 в сумме. Значит при среднем потреблении 10-30 Вт получается экономичней в 4-8 раз.
Напомню, что в машинах, в которых не предусмотрены ДХО, согласно правил ГИБДД необходимо ездить с включенными фарами, соответственно габариты работают и днем и ночью. А это, при длительных расчетах отражается на кармане.

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

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

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

Источник

Автомобильный онлайн портал