Как стать автором
Обновить

Ненормативная схемотехника: семисегментный индикатор на ATtiny13

Время на прочтение11 мин
Количество просмотров20K
Всего голосов 40: ↑36 и ↓4+32
Комментарии63

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

Учитывая, что полезных ног осталось полштуки (RESET), то по мне получился троллейбус.
На Attiny2313 есть, например, и такой проект
почти «экстремального» программирования
Достаточно компактное использование памяти флэш контроллера.

P.S. Есть даже какая то aвторская книга по данному проекту
Для AVR на eForth есть и такая книга
Неплохой ещё вариант использования системы amForth, но есть и другие варианты.
так что, нет пределу компактных решений и даже вне ассемблера :)
Единственная ценность — опыт, развитие логического мышления, стоимость рассыпухи и ее монтажа съест всю выгоду от применения тиньки.
Согласен.

Раз уж заговорили о «ненормальных» схемах управления светодиодами, интересно, заработает ли следующая. Перед каждым светодиодом ставим полосовой фильтр. Полоса пропускания у каждого своя. А при помощи МК генерируем сигнал с таким спектром, чтоб горели нужные светодиоды. Тогда вообще одной ноги хватит.

только «за этой ногой» будет некислых размеров код :)
вслед за браинфаками и иже с ними вы предлагаете создать эзотерическую сМеХотехнику :)
в принципе возможно все.
с год назад мне попадалась статейка — на одном проводе висело несколько светодиодов и выключателей и они по отдельности друг другом управляли. пардон ссыль не приложу.
НЛО прилетело и опубликовало эту надпись здесь
Переключение периода PWM по таймеру — это «некислых размеров код»?

вслед за браинфаками и иже с ними вы предлагаете создать эзотерическую сМеХотехнику :)

Ну, в реальном проекте я, конечно, поставил бы что-то более подходящее. Сдвиговый регистр хотя бы. Но почему бы не добавить немного безумия just for fun? :)


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

Я когда свой комментарий писал, думал об этом :)
Перед каждым светодиодом ставим полосовой фильтр

Причем полосовой фильтр можно сделать на микроконтроллере, и код готовый есть в статье на Хабре ))
На таком принципе как раз цветомузыка устроена.
easyelectronics.ru/multipleksirovanie.html
Там в конце жлобоплексинг есть. Правда он только для отдельных светодиодов. к 3 выводам 12 светиков. Но мож кому пригодиться. Плюс сама статья неплохо много моментов по мультиплексу объясняет.
Ну неужели Вы думаете, что я ее знаю про Чарлиплексинг!? Сторонняя схема, которую я привёл в начале статьи, это и есть Чарлиплексинг. Только ни один семисегментный индикатор Вы так подключить не сможете. Внимательно посмотрите на схему.
неужели Вы думаете, что я не знаю про Чарлиплексинг? (очепятка)

И снова stm32f0 в tssop20 зарулил бы одной левой, еще и на размере платы можно сэкономить, а не только на рассыпухе и монтаже.

Только он дороже, чем Атмега8, с которой тоже «и на размере платы можно сэкономить, а не только на рассыпухе и монтаже.»
С таким успехом можно сказать «Фигня этот ваш Запорожец, Крузак лучше!»
Есть stm8 в tssop корпусе. Дешевле меги имеют больше плюшек
stm32f030f4p6 30р. на алиэкспрессе, включая доставку, при покупке десятка.
atmega8 в tqfp — от 42р., при покупке десятка.

Я тоже скрепя сердце переходил с любимых, как ZX-Spectrum tiny13 на stm, но с тех пор сделал много интересных штук и понял, что оно того стоило.
Хотя бы потому, что без кварца тинька может 10МГц (или 8) тактовой, а стм — 48. Но если лень конфигурировать, можно и на 8 МГц работать.
STM32f042f6p6 уже может в аппаратный USB и запас ПЗУ 32 килобайта, можно еще лучше вещи делать.

Причина полного перехода на стм — была лень.
Порог вхождения в STM гораздо выше. Давно посматриваю, но пока нет. 48 МГц и 12 бит мне пока не нужно. А цена для меня на сегодня точно такая же, как Атмега8, но у этой ног больше.
В стм32 порог ± такой же. Куча примеров и сниппетов, можно копипастить не особо вдаваясь в детали, по первости. Есть Cube MX.
Си будет попроще ассемблера, да и ассемблер не запрещен, если очень хочется, или прижмёт.
А главное, что код портируем на железки на голову-две выше.

На stm32f042 уже сделан осциллограф, чип те же 20 ног, осцилл — с USB выходом.
На stm32f103 сделано большинство китайских осциллографов (с внешними АЦП, но всё же), да и DSO осцилл — тоже. 72МГц, цена около доллара за чип.
На stm32f4 можно распаковывать mp3 на ходу, у него аппаратная плавающая точка (single), DSP ядро. 180-216МГц
STM32F7 уже с аппаратным double
А stm32h7 — 400МГц тактовой.
В стм32 порог ± такой же
Почему-то очень много хороших специалистов уверены «Это же просто. Как можно этого не знать?!»
Уж поверьте, я далеко не тупой, но stm для меня сложно. Возможно, со временем я тоже буду говорить: это просто.
Чем STM32 хуже ATmega?
1 Убогий АЦП, на меге без танцев легко 9 реально значащих бит.
2 Не поддерживает питание 5 В.
3 Нет среды Ардуино.
4 Нет выходного тока 40+ мА на ногу.
5 Нет бронебойных защитных диодов на выводах.
6 Нет триггеров шмидта на входах.
7 Сложно конфигурировать периферию/нужна либа конфигурирования.
Поправьте если где-то не прав.
BluePill, он же Maple, (STM32F103C8T6), поддерживается Arduino IDE,
Причем включая 128кб флеша (после правки конфига), и вплоть до частоты 144МГц (после перепайки кварца и реконфига)
Пару лет назад смотрел этот проект, как большинство помигал светодиодом, неудачно попытался адаптировать пару скетчей от наны и бросил.
Смотрю сейчас — вроде проект ожил, смотрю редми — все как у истинных линуксоводов = 12 пунктов для запуска примера :)
Почему нельзя сделать как у людей — подключить USBasp/STLink и нажать кнопку «Записать загрузчик»?
>Почему нельзя сделать как у людей — подключить USBasp/STLink и нажать кнопку «Записать загрузчик»?
Потому что нужно прошить бут, после которого появится возможность перешивать монстрика прямо по USB, причем даже джамперы передергивать не нужно будет. И все проблемы становятся неактуальными.
Попробован завести этот конструктор — комп находит Maple DFU, Maple Serial не находит, из среды Ардуино через встроенный USB не шьется, STlink из среды Ардуино шьет, команда «Записать загрузчик» выдает ошибку…
Загрузчик шьется через UART, или SWD, после этого плата становится «Ардуино-совместимой»
Нафига переменная d_ типа int, если она не бывает больше 50 по коду? Почему не char?
Во-первых, просто не обратил внимания, во-вторых, некоторое время назад заметил, что в среде Ардуино int и char занимают одинаково 2 байта при компиляции, как ни странно. Особо не вникал, просто констатирую факт.
Делайте тип byte. А char может быть уже уникодным
byte так само при компиляции.
Как-то не минималистично. Используя всего три ноги, пару сдвиговых регистров можно рулить сразу четырьмя семисегментниками, четырьмя кнопками и четырьмя светодиодами.
Схему или ссылку. С индикацией мне всё ясно, подробней про кнопки. Ну и я чётко дал понять, что вариант с регистрами давно известен, и именно поэтому мне уже не интересен.
вот где-то так это выглядит на регистрах:
image
Тогда уж MAX7219 сразу взять. Там и яркость встроенная и ограничение по току и 8 разрядов
А можно использовать STLED316, и индикация будет и кнопок навалом. Например Таймер на tiny13 и STLED316
Этого недостаточно для того, чтобы ток пошёл через цепь VD1_R3_HL1

Наверное всё-таки HL2
Да. Спасибо. Хоть кто-то вникает.
Стоит заметить, что есть недорогие готовые 4-разрядные индикаторы на TM1637 управляемые по двум проводам.
Аттини13+индикатор+рассыпуха=0,80 у.е.
Атмега8+индикатор=1,00 у.е.
Аттини13+TM1637с_индикатором=1,93 у.е.
Вы всё ещё считаете индикаторы на TM1637 недорогими?
Микросхема TM1637 стоит 0.2$. Правильнее все таки рассыпуху сравнивать
Итого те же $1
Итого те же $1

Даже если так (я нашёл по 0,3), то с Атмегой лучше по всем параметрам.
НЛО прилетело и опубликовало эту надпись здесь
TM1637 еще и кнопками можно управлять
Есть MAX7219 и еще много чего
Мне кажется, программирование на Attiny13 — это такое хобби из цикла — «а слабо вот так?»
Все верно, это спорт :)
У меня вопрос: а ежели сгорит один светодиод и токи перекосит непредусмотренным образом?
Заголовок спойлера
Светодиоды обозначаются не так
Я за свои 46 лет не встречал случаев сгорания индикаторных светодиодов. Осветительные- да. Ну и в любой схеме при сгорании любого элемента могут быть разные варианты. Но не смертельные.
НЛО прилетело и опубликовало эту надпись здесь
ОК, не сгорит. Но при таких микротоках в узлах, если ладошку в сантиметре от схемы держать, повлияет ли такого рода емкость на стабильность работы вашей схемы? Это вообще на практике применяется то что вы наструячили, или это чисто для саморазвития?
Попытаюсь ответить объективно, несмотря на Ваш тон.
Прелесть любой динамической индикации в том, что даже при большом количестве ошибок за единицу времени картинка на индикаторе не меняется, потому что обновляется каждые несколько миллисекунд. Хотя в данной схеме совсем не микротоки, и нарушить отображение очень сложно.
А наструячил я для саморазвития, и никого применять не призываю.
вопросы вроде по теме, ваша холодность меня сильно печалит. За ответы спасибо.
Не преувеличивай, далеко не все тут пытаются выставить тебя клоуном или дурачком.
Люди реально не понимают, зачем это нужно и какая от этого польза.
Развивайся, не останавливайся, направление у тебя верное, и из таких проектиков у тебя родится шедевр однажды. Кто ищет — тот найдет!
По-большому счету, проект интересен только схемотехнически. Ищи более логические вещи.
Из достойных проектов, могу посоветовать цветомузыку на Тиньке, с Фурье и ws2812. Правда 13я Тинька уже возможно не вывезет, хотя зависит от окна и количества ледов. А с другой стороны — 85я Тиня — такая же, только жирная :)
В общем не расстраивайся, будь молодцом! ;)
Спасибо за поддержку.
не все тут пытаются выставить тебя клоуном или дурачком
Ясно, что не все. Но формат подачи предыдущего комментария ясно даёт понять. Хотя следующий за ним уже более корректный.
В общем — плюсую. Но в частностях — должен заминусовать:
Кто-то может спросить: куда подевались резисторы 100 ом? Давно известно (и активно используется), что при правильно сделанной динамической индикации можно обойтись без токоограничивающих резисторов.

«Грязная» схемотехника с непредсказуемой надёжностью и возможностью мало очевидных побочных эффектов.
На самом деле зависимость яркости [светодиода] от тока нелинейная, ...

Просто — «Шта-а-а?» Посмотри в доке на любой светодиод или индикатор график "[Relative] Luminous intensity vs. Forward current". Даже у осветительных СД он мало отклоняется от прямой линии.
Может быть — уместно вести речь об относительной яркости восприятия глазом в зависимости от длительности импульса? Кто знаком с этой отраслью знаний?

Если предыдущая статья еще хоть чем-то оправдывалась, то эта уже верх безумия.
Неистово плюсую автора!

Интересно, для Lixie-индикатора сколько ног понадобится по минимуму?

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

Четыре ноги на дешифратор, чтоб на выходе получить семь сегментов. А аноды? Уже минимум 5 ног. Если я сознательно отказался от сдвигового регистра стоимостью 0,065 у.е. (который даёт 8 сегментов с 3 ног), то вряд ли бы меня устроил дешифратор за 0,4 у.е. или дороже.

Почему семь сегментов? 15 + 1 на гашение. Т.е дешифратор 155ИД3(74HC154) — выходы вешаем на катоды матрицы, аноды на +. 15 сегментов — это два семисегментника + точка между ними. Дешифраторы, насколько я помню, это достаточно дешевая штука. Есть и другие

Ну если так, то да, 4 ноги. Но это уже другой индикатор (статический, хотя индикация динамическая). И в концепцию проекта не вписывается, с микрухами есть гораздо лучшие варианты. Я не говорю уже о том, что ид3 больше Тиньки раз в 300 по объёму. Хотя о 155ид3 у меня только самые тёплые воспоминания. Лежат в кладовке несколько новеньких.
Программный SSI и несколько SIPO регистров будут и проще и дешевле.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории