8-900-374-94-44
[email protected]
Slide Image
Меню

Attiny13A проекты – Дайджест о микроконтроллере Attiny13 — Информация, описание, справочник и проекты на микроконтроллере Attiny13

Дайджест о микроконтроллере Attiny13 — Информация, описание, справочник и проекты на микроконтроллере Attiny13

Потребовалось восстановить работоспособность детской игрушки. Функционал очень простой — по нажатию кнопки начинают играть светодиоды. Проходит несколько секунд и игрушка выключается. И так до следующего нажатия на кнопку. Выключателя нет — часовые батарейки-«таблетки» в количестве трех штук питают устройство непрерывно, а родной неизвестный китайский контроллер, залитый каплей компаунда, больше не работает. Как видите, очень просто… Читать далее »

Метки: led, powerdown, прерывания, проект, сон

Годы назад усилители звука были довольно громоздкими и требовали к себе определенного внимания. Надо было следить за перегрузками, уровнем стереобаланса и так далее. В помощь пользователям применялись различные индикаторы, чаще всего — стрелочные. Автор следующего проекта решил вспомнить детский восторг от прослушивания музыки с усилителем, на котором был установлен сдвоенный стрелочный индикатор. Конструктор пробовал применять… Читать далее »

Метки: аналог, звук, индикатор

Наверняка вы хотя бы раз попадали под струю автоматического ароматизатора в туалете. Это не самое приятное ощущение, учитывая концентрацию ароматического вещества. Автор следующей статьи задумался, как бы сделать так, чтобы ароматизатор срабатывал только без присутствия человека. При этом чтобы не менять корпус фабричного устройства и не использовать дополнительные источники питания. В качестве датчика присутствия применён… Читать далее »

Метки: проект, таймер

Блуждая по иностранным площадкам, нашел новогодний сувенир. Не зря самое простое, с чего начинают изучение микроконтроллеров — это пример blink. «Подёргать ногами» микроконтроллера — одна из важнейших возможностей. В проекте новогодней снежинки автор подошел к делу комплексно, и даже заказал печатные платы на стороне. Суть его устройства в том, что под управлением Attiny13 с прошивкой,… Читать далее »

Метки: led, игрушка, проект

Давно подмечено, что экспериментируя с умным домом, люди в первую очередь стремятся автоматизировать включение освещения. Иногда для этих целей подходит датчик движения (объемный или PIR или инфракрасный), но я на своем опыте убедился, что у него есть ряд недостатков. Datasheet датчика пишет, что он точно определяет человека в поле зрения 5 метров. Однако в моём… Читать далее »

Метки: 2313, датчик, проект, сонар, ультразвук

Копошась на интересных сайтах и форумах, я нашел универсальный проект инфракрасного локатора. Его можно применять, как самостоятельное решение, а также для периферии какого-то более крупного проекта. Суть проекта в наличии ИК-светодиода и ИК-приёмника. Луч светодиода светит либо прямо на приёмник, либо на какую-то поверхность, удалённую до одного метра, и в зависимости от обнаружения отражений микроконтроллер… Читать далее »

Метки: IR, локатор, проект, сигнализация

Следующая схема показалась мне простой и полезной, потому что микроконтроллер Attiny 2313 решает там сразу несколько задач. Кто из автолюбителей не знает, как бывает грустно, если забудешь выключить фары, потом придешь, а машина уже не заводится? Так вот, параллельно с оповещением водителя звуковым сигналом, описываемое устройство позволяет, реализовать «вежливое освещение салона» — плавное затухание и… Читать далее »

Метки: авто, освещение, проект, сигнализация

Как оказалось, влезать в тему создания устройств с использованием микроконтроллеров надо с нескольких направлений. Я сначала не хотел ввязываться в Ардуино, а потом попробовал, и мне даже понравилось. В каких-то ситуацих можно быстро и просто программировать в среде Arduino IDE, загружая прошивки в Attiny. Безусловно, памяти это съедает много. Библиотеки и методы компиляции для одного… Читать далее »

Метки: ардуино, книги, полезное, ссылки, форум

Охрана имущества — одна из основных задач, делегированных электронным приборам. Сигнализацию, конечно, можно купить готовую. Сейчас их продается много и стоят они не дорого, однако если вы на этом сайте, и тем более, читаете эту статью, значит, решили сделать себе охранную систему самостоятельно. Бороздя просторы сайтов с проектами, я нашел интересный проект простой универсальной сигнализации… Читать далее »

Метки: GSM, датчик движения, проект, сигнализация, фонарь

Одно из первых и самых очевидных применений микроконтроллеров — анализ каких-либо данных и вывод результата на некий индикатор (экран). После того, как вы уже научились мигать светодиодами (или «дрыгать ножками» микроконтроллера), можно попробовать сваять и вот такую схему. Вашему вниманию представлен термометр и гигрометр в одном. Автор на сайте habrahabr предлагает довольно простой и недорогой… Читать далее »

Метки: гигрометр, индикатор, проект, термометр

tiny13digest.ru

Слон и Моська, или подключение LCD к Attiny13A / Habr

Вновь приветствую читателей «Хабра»!

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

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

Заказал для него стартовый комплект из Digispark'ов и 10-ти ваттных RGB светодиодов, потому что его первой же идеей, стало создание свето-динамической установки. Но проблема пришла откуда не ждали: недостаток задействованных аппаратных ШИМ — стал первой проблемой. А второй — друг захотел управлять одновременно несколькими светодиодами.
Выход конечно прост — задействовать более продвинутую плату, с другим микроконтроллером. Но такую плату пришлось бы вновь заказывать и ждать, либо купить на месте, за баснословные средства, а тем временем я вспомнил про сдвиговые регистры, принцип управления которыми изучил давно, а вот в схемах никогда не использовал.

Сел за Atmel Studio и начал писать многоканальный софт-ШИМ, через 74HC595. За пару дней было написано несколько режимов управления, и реализованы все основные функции для организации многоканальных ШИМ, БАМ, а так же механизмы работы со светодиодными уровнями и семи-сегментными индикаторами.

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

В общем, друг получил библиотеку для использования в среде Ардуино, а мне стало скучно и я стал размышлять о применении полученных наработок для управления LCD (HD44780).
Итог этой работы я и хотел бы сейчас продемонстрировать, а заодно, поделиться с Вами знаниями и исходными кодами.

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

Для работы был выбран сдвиговый регистр 74HC595, ввиду наличия защелки, позволяющей организовать вывод данных по-требованию. Дисплей совместимый с HD44780 (для работы в 4-х битном режиме), и микроконтроллер ATtiny13A.

Такой выбор был обусловлен не отсутствием более мощных микроконтроллеров, а сужением рамок поставленной задачи, количеством выводов, объемами памяти и ОЗУ, и просто — ради спортивного интереса.
Цель: создание кода, способного выполняться на заданном оборудовании, не в ущерб производительности, удобству использования и полноте функционала.

Запуск дисплея.
Первое, что необходимо было организовать, это вывод данных через сдвиговый регистр с приемлемой скоростью, что и было проделано с использованием трех ног «Тиньки».
Изображение описанного подключения таким образом:
Затем была написана функция для вывода данных в формате приемлемом для LCD. Эта функция является своеобразным ядром или драйвером библиотеки, на котором базируется весь последующий вывод. А так же дополнительная (вспомогательная функция), которая организует дробление данных на нибблы (полубайты), и отправляет их в LCD через сдвиговый регистр, вызывая основную функцию передачи данных.

Реализация функциональной части.


Как только эта часть работы была выполнена и протестирована, я приступил к организации нижнего уровня функций управления LCD, которые описаны в ДШ к устройству, как необходимые для первоначальной инициализации LCD, а так же, непосредственно саму функцию первоначальной инициализации, без которой LCD даже не включится.
А так как для отправки данных в LCD предназначена всего одна функция вывода (драйвер описанный выше), то все остальные функции легко организуются через ее вызов, с передачей соответствующих параметров. А значит, чтобы сэкономить память программ, все остальные функции можно определить через директиву #define.

В этот момент, я нашел метод инициализации который никто не использует, но он подробно описан в ДШ фирмы HITACHI (если мне не изменяет память). Заключается он в том, что для переключения разрядности линии данных в LCD, необходимо чтобы первые ДВЕ команды были 4-х битными, и все!
Когда же я изучал вопросы управления LCD, читая различные сайты, там был описан известный многим стандартный режим инициализации.
Результатом стало написание двух функций инициализации, для избежания проблем при работе с LCD других производителей. Режим определяется директивой в начале программы.
После чего был определен сет функций, расширяющий базовый набор функций управления LCD, в который так же вошла функция позиционирования курсора, для двух типов устройств LCD — 1602 и 2004 (переключение типа организовано директивой в начале программы), и функция вывода символов:

Далее был написан вспомогательный набор функций верхнего уровня, для организации вывода на экран данных стандартных типов, как то: байт, слово, байт в HEX-виде, строка и т.п.
Для вывода числовых данных, были написаны функции быстрого деления на 10 и на 100, а так же вспомогательные макросы, которые «выгребают» остаток от соответствующего деления (трюк). Таким образом вместо 5-ти делений для вывода uint16, требуется меньшее количество делений — 4 вместо 8-ми, а для uint8 — 2 вместо 4-ёх. Так же написаны функции определения новых символов, функция перекодировки русского текста для строк в RAM, вывод строк из программной памяти с перекодировкой текста.
Вот этот набор:

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

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

Ну и в заключении, весь этот «винегрет» был расширен самым верхним набором функций,
организующим вывод данных в определенной позиции экрана. Сделано это было так же, через директиву #define:

Представленные выдержки кода показывают, насколько подробно код описан комментариями, чтобы не возникло проблем при его использовании. Итогом оптимизации стала возможность отображения довольно богатого вывода, при очень скромном размере кода, однако скорость его работы меня не впечатляла. А так же, после анализа использования стека и уровней вложенности, было решено переписать функцию ядра вывода, чтобы избавиться от вспомогательной функции (которая принимала 2 параметра), что сильно разгрузило стек, сократило код на 100 байт, но не очень ускорило вывод.

Модернизация аппаратной части.
И в этот момент я наткнулся на пример немцев 10-ти летней давности, которые организовали вывод данных в сдвиговый регистр, с использованием RC-цепочки. Во-первых реализация данного метода позволила освободить одну ногу микроконтроллера, а во-вторых, это подтолкнуло меня к новым размышлениям.
Так, проанализировав протокол передачи данных я понял, что вывод сигнала «Е»-LCD и вывод защелки сдвигового регистра совпадают!
А это значит, что можно освободить одну линию сдвигового регистра, и ускорить вывод данных в ДВА РАЗА!
Впоследствии вывод RS-LCD, был так же перенесен на линию данных, что позволило освободить еще одну линию сдвигового регистра, а протокол передачи данных был переписан учитывая этот факт.
Итогом явилась единая функция ядра, которая принимает на вход данные и флаг (вывод команды или функции), которая сама разбирает нибблы и выводит их на линию данных с необходимыми задержками, и не превышает 100 байт.
Шина данных LCD (4 бита) занимает половину вывода одного сдвигового регистра, вторая половина может использоваться для индикации, что я и показал в демонстрационном примере.

Позже, я наткнулся на упрощенное описание использование RC-цепочки для сдвигового регистра на сайте DIHALT'a — easyelectronics.ru, и хотел разместить весь материал там, но не смог зайти под своим аккаунтом, хотя учетные данные ввел правильно. А может перепутал сайты — основной и сайт сообщества. В общем расстраиваться сильно не стал, DI все-равно привет 🙂
А тем кто чувствует недостаток знаний в описываемой мной области, предлагаю посетить этот ресурс для устранения этого недостатка. DIHALT и члены сообщества очень подробно описали все устройства, о которых здесь идет речь.

В дополнение, информация о подключении и использовании.
Выносить код в отдельную библиотеку я не стал, созданный код легко преобразуется для любой разработки связанной с выводом данных на LCD. К недостаткам можно отнести невозможность переконфигурирования шины данных LCD, сидящей на сдвиговом регистре, она всегда занимает линии с 0 по 3 (правда имеется возможность «отзеркалить» выводы сдвигового регистра, заменив команду левого сдвига «lsl» в функции вывода, на команду правого сдвига «rsl», что «перевернет» назначение выводов сдвигового регистра, и шина данных окажется на выводах с 7 по 4). А вот выводы микроконтроллера могут быть сконфигурированы любые, причем для любого МК, но с оговоркой: линии должны быть на одном порту (опять же, при условии переназначения номера порта в функции вывода, в рассматриваемом варианте порт = 0x16).
Код содержит пару-тройку хитрых трюков, которые могут быть полезны не только для указанной области (например деления на 10 и 100 с остатком).
Код не использует прерывания и другую периферию, кроме аппаратного ШИМ, который изначально был инициализирован для диагностических целей, а впоследствии оставлен для демонстрационного примера (линии порта PB0 — ШИМ, PB1 — инверсный ШИМ, меняется от состояния светодиодов). С помощью этого можно, например, контролировать яркость подсветки дисплея — программно.
Таким образом, это самая маленькая библиотека вывода данных на LCD (и пожалуй самая быстрая, и самая документированная в коде 🙂
Хочется добавить, что в железе тестирование не производилось, но исходя из измеренных отклонений параметров RC-цепочки, думаю проблем возникнуть не должно.
Если найдутся смельчаки которые проверят это дело в железе, буду крайне признателен.
Так же отмечу, что работоспособность проверена для частот МК 9.6 МГц и 4.8 МГц (для последнего необходимо изменить сопротивление RC-цепочки на 9к).
Конденсатор в железе должен быть 100 пф (10 пф — допуск на емкость ног порта МК).

Отдельно создана секция INIT3, для предварительной инициализации параметров МК и запуска дисплея после включения устройства, выглядит она так:

Примеры применения.
Для демонстрации работоспособности, возможностей и скорости обработки, был написан демо-режим, который использует далеко не все функции, тем не менее достаточный для понимания их набор.
Видео эмуляции в программе Proteus это демонстрирует:

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

Некоторая техническая информация.
Из этих данных:

понятно, что демонстрационный пример использует 480 байт в функции main. Остальной код — использованные функции библиотеки, cp1251 — таблица перекодировки символов (33*2), HelloPGM — строковая константа «Привет, Хабр», и последние 4 фрагмента кода по 7 байт (строковые константы для вывода режимов: «Red», «Green», «Blue», «Yellow» выровненные пробелами), хранятся во flash-памяти.
1 байт RAM — занимает переменная состояний флагов светодиодов.
В видео, использованные символы встроены в библиотеку Proteus, которая была полностью перерисована. Поэтому в железе картинка будет отличаться. 🙂
Но работоспособность от этого не пострадает!

Временные параметры сигналов пульса и пакета данных для желающих:


Из которых видно, что длительности сигнала «0» и сигнала «1» (первый рис.), полностью совпадают по времени, так как функция вывода данных была оптимизирована с учётом полного устранения джиттера.
Второй рисунок отражает передачу одного пакета (байта) в LCD, так как шина данных 4-х разрядная, эта передача осуществляется в два этапа, между которыми следует задержка, чтобы LCD успел «переварить» первую часть данных.
Кому интересна функция вывода, она здесь:

(Здесь так же использован трюк с выводом, характерный только для МК компании Atmel).

Заключение.
Если кто-то решится воплотить моё творение в железе, и испытает проблемы с запуском, рекомендую поиграть с задержкой (указана директивой #define в секции описания глобальных данных). Будет необходима помощь, обращайтесь с вопросами в комментариях к статье, с радостью помогу. Чуть не забыл добавить: При использовании прерываний, придется обеспечить барьеры в функции вывода данных на линию, самостоятельно (в конце функции есть примеры сохранения и восстановления SREG (регистр состояния) под комментарием). Иначе возникнет проблема вызова прерывания во время функции передачи данных, что приведет к отказу работоспособности (инструкций: cli и sei — не достаточно!).

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

Разработка представленной реализации заняла не более 30 минут, большую часть которых заняло проектирование схемы.
Двух-канальный ампер-, вольт-метр:
1 канал: 0-60V, 0-40A
2 канал: 0-15V, 0-10A
Размер кода: 760 байт
Использованная периферия: ADC0, ADC1, ADC2, ADC3
RESET — запрещён, используется весь PORTB.

Возможно в статье допущены неточности, так же, неточности возможны в результатах профилирования указанных в коде на полях, код переписывался неоднократно. Относительно работоспособности кода могу заверить что все функции протестированы много раз.
Исходный код демонстрационного примера для Atmel Studio 7.0, и проект для Proteus 8.3 sp2 — прилагается, дальнейшие изменения выкладываться не будут.

Как всегда, всем желаю успехов в творчестве… да и в прочих начинаниях!
Скорейшей весны!

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

habr.com

attiny13a / Поиск по тегам / Сообщество EasyElectronics.ru

Возникла давеча простенькая задачка. Нужен был регулируемый вручную ШИМ для теста одной идейки. Под рукой тинька 13 — т.е. цепляем переменник на АЦП и выводим что нам нужно. Казалось бы — проще только светодиодом помигать. Однако. Смеркалось.
Всё быстро воткнуто в макетку, с помощью мастера в CodeVision несколькими щелчками собран проект. Для теста на выход — светодиод. Включаю: горит на полную, кручу резистор — реакции нет. Шустро проверяю все соединения, питание, схему, прошивку — эффект остается. После трехкратного повторения тех же действий возникло недоумение. Беру другую тиньку, прошиваю, включаю — болт. Похоже проблема не в чипе. Некоторое время созерцаю код сгенерированный CodeVision — придраться не к чему. Открываю datasheet, вникаю. Изучил ADC, проверил — всё по канонам. Перешёл к ШИМ.
Краткое описание устройства аппаратного ШИМ на Attiny13 для начинающих:
ШИМ сделан на базе таймера. Т.е. у таймера есть несколько режимов работы, два из них относятся к ШИМу (FastPWM и Phase Correct PWM). Таймер настраивается с помощью двух регистров: TCCR0A,TCCR0B. В них задается режим, частота (делитель), какие каналы используются (есть два — 0A и 0B), режим работы выхода(прямой, инвертированный). Значение ШИМа задаются в регистрах OCR0A и OCR0B — соответственно для каждого канала. Есть ещё у ШИМа такая настройка — чем определяется максимальное значение таймера(TOP), при достижении которого он сбрасывается и бежит с начала — это может быть либо 0xFF, либо значение в регистре OCR0A. У меня был установлен второй режим и значение ШИМа я задавал в регистре же OCR0A.
Немало времени ушло у меня пока я нашёл свою ошибку и ещё больше пока догнал её смысл. Хотя сейчас всё кажется очевидным. Для тех кто, как и я, в танке — TOP должен быть 0xFF. Надо заметить, что настройка режимов через регистры не радует интуитивно понятным интерфейсом. Так вышеозначенный режим определяется битами WGM02:0, два из которых находятся в регистре TCCR0A(00,01), а третий(02) в TCCR0B. Правда мастер CodeVision при начальной настройке здесь наше всё, но когда нужно что-то подправить уже в процессе вот тут-то и приходится поднапрячься.
Короче, следующие грабли. Яркость регулируется, но вот беда: когда довожу ручку до минимума всё равно подсвечивает. Т.е. на АЦП у нас 0, а на выходе не 0. Обидно, понимаешь. Причина такого поведения в том, что в тот момент, когда таймер сбрасывается в 0, на выходе чип выставляет 1, и хотя значение ШИМа у нас задано 0, и уже в следующем такте он это видит и обнуляет выход, но вот этого несчастного скачка достаточно что бы светодиодик светил. Дискомфорт — ты ждешь на выходе чистый 0, а тут тебе гребеночка такая. Вообще говоря проблема известная. Решение приходит в голову практически сразу: когда меняем значение ШИМа, добавляем проверочку на 0 — при оном отключаем ШИМ совсем. Воникает вопрос: как отключать? Можно останавливать таймер. Не лучший вариант: а вдруг на этот таймер что-нибудь ещё посажено? Второй ШИМ, например, или прерывания, или отсчет времени до взрыва? Можно отключать выход таймера — это уже получше, и просто и понятно, получается примерно так:
if(OCR0A==0)TCCR0A&=0x3F;
else TCCR0A=0x83;

Как вариант можно менять режима работы самого пина выход/вход.
P.S.
Из комментариев к статье были получены ещё такие решения:
1. Если не принципиально получать 100% заполнения ШИМ, то можно использовать инверсный режим работы выхода;
2. При работе ШИМ в режиме Phase Correct PWM проблема отсутствует.

we.easyelectronics.ru

attiny13a datasheet на русском — Меандр — занимательная электроника

Схема фонаря показана на рисунке. На полевом транзисторе VT1, дрос­селе L1, диоде VD1 и конденсаторе С4 собран повышающий преобразователь, управляющие импульсы для которого вырабатывает микроконтроллер DD1. С подвижного контакта подстроенного резистора R1 снимают и подают на вход АЦП микроконтроллера часть напряже­нии питания для его контроля. Кнопкой SB1 включают фонарь и регулируют яркость его свечения. Пять …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35687

Для реализации проекта понадобится 4 светодиодных матрицы 8х8, 4 сдвигающих регистра 74HC595 и управляющий микроконтроллер TINY13A. Задача заключается в том, чтобы зажечь все 256 светодиодов от нашего 8-выводного микроконтроллера TINY13A. Для этого дела выводов на данном микроконтроллере явно маловато, по этому будем расширять порты регистрами сдвига. Что бы всё работало я написал небольшую «детскую» программку, …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35659

meandr.org

attiny13a примеры — Меандр — занимательная электроника

Схема фонаря показана на рисунке. На полевом транзисторе VT1, дрос­селе L1, диоде VD1 и конденсаторе С4 собран повышающий преобразователь, управляющие импульсы для которого вырабатывает микроконтроллер DD1. С подвижного контакта подстроенного резистора R1 снимают и подают на вход АЦП микроконтроллера часть напряже­нии питания для его контроля. Кнопкой SB1 включают фонарь и регулируют яркость его свечения. Пять …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35687

Для реализации проекта понадобится 4 светодиодных матрицы 8х8, 4 сдвигающих регистра 74HC595 и управляющий микроконтроллер TINY13A. Задача заключается в том, чтобы зажечь все 256 светодиодов от нашего 8-выводного микроконтроллера TINY13A. Для этого дела выводов на данном микроконтроллере явно маловато, по этому будем расширять порты регистрами сдвига. Что бы всё работало я написал небольшую «детскую» программку, …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35659

meandr.org

ATtiny13A-SU — Меандр — занимательная электроника

Схема фонаря показана на рисунке. На полевом транзисторе VT1, дрос­селе L1, диоде VD1 и конденсаторе С4 собран повышающий преобразователь, управляющие импульсы для которого вырабатывает микроконтроллер DD1. С подвижного контакта подстроенного резистора R1 снимают и подают на вход АЦП микроконтроллера часть напряже­нии питания для его контроля. Кнопкой SB1 включают фонарь и регулируют яркость его свечения. Пять …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35687

Для реализации проекта понадобится 4 светодиодных матрицы 8х8, 4 сдвигающих регистра 74HC595 и управляющий микроконтроллер TINY13A. Задача заключается в том, чтобы зажечь все 256 светодиодов от нашего 8-выводного микроконтроллера TINY13A. Для этого дела выводов на данном микроконтроллере явно маловато, по этому будем расширять порты регистрами сдвига. Что бы всё работало я написал небольшую «детскую» программку, …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35659

Автоматические включатели освещения на базе датчиков при­сутствия человека весьма полезны в плане экономии электро­энергии. В статье представлены результаты работы автора над собственными конструкциями таких приборов. Основная идея разработки заключа­лась в применении в автоматиче­ских включателях освещения единого модуля микроконтроллера с возмож­ностью подключения к нему различных датчиков присутствия. Замена датчика и программного обеспечения даёт воз­можность работать в …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/27847

Листая журналы «Радио» прошлых лет, всегда можно почерпнуть идею для новой конструкции. В данном случае источником идеи послужила статья [1] под рубрикой «За рубежом Описываемый прибор выполняет аналогичную функцию и предназначен для быстрой проверки наиболее распространённых гальванических элементов питания бытовой аппаратуры. Испытатель измеряет остаточную ёмкость гальванического элемента питания на момент измерения в про­центах от номинальной. …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/26355

meandr.org

Обновленное руководство по программированию Attiny13 или Attiny13a с помощью Arduino IDE » NGIN.pro

Обновленное руководство по программированию Attiny13 или Attiny13a с помощью Arduino IDE
 
Микросхемы серии ATtiny13 являются чрезвычайно дешевыми и полезными микросхемами для небольших проектов, которым не нужен Arduino, но из-за очень устаревших обучающих программ и отсутствия информации мне потребовалась большая часть дня, чтобы понять, как программировать его с помощью IDE Arduino.

Чтобы устранить эту нехватку информации, в этой статье, я покажу вам, как программировать ATtiny13 или ATtiny13a с обновленной версией Arduino IDE.

Шаг 1: Необходимое оборудование

• Arduino (Uno самый простой, но любой Arduino будет работать)
• ATtiny13 или 13a
• Макетная плата
• Перемычки

Устранение неполадок оборудования (необязательно)

• Электролитический конденсатор 10 мкФ
• Любой большой электролитический конденсатор ( 1000 мкФ, но любая емкость 100 мкФ и выше будет работать лучше всего)

Шаг 2. Настройка оборудования

 
Подключите контакты Arduino к ATtiny, как показано на изображении или в таблице ниже.

Важное примечание. Обязательно поставьте свой ATtiny так, чтобы индикаторная точка на вашем чипе находилась в левом нижнем углу, как показано на изображениях (напротив линии 5v).

Arduino ____________ ATtiny13 (а)

5v ---------------------------- Контакт 8

GND ------------------------ Контакт 4

Контакт 13 ----------------------- Контакт 7

Контакт 12 ----------------------- Контакт 6

Контакт 11 ----------------------- Контакт 5

Контакт 10 ----------------------- Контакт 1

Шаг 3: Настройка Arduino As ISP
 
Перейдите в Files-Examples-ArduinoISP и нажмите «ArduinoISP». Загрузите этот эскиз на свой Arduino. Теперь ваш Arduino настроен для программирования других чипов.

Шаг 4: Загрузка файлов Attiny13 (a) Core



 
Чтобы запрограммировать ATtiny13 или 13a, вам нужно будет установить основные файлы. Для этого мы будем использовать основные файлы, которые, как мне кажется, проще всего установить и лучше всего использовать.

Чтобы установить эти файлы, откройте свою Arduino IDE и перейдите в раскрывающееся меню файлов, затем выберите Preferenses. Вставьте этот URL-адрес «https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json».

Теперь перейдите на Панель инструментов и нажмите «Диспетчер плат» ... Теперь прокрутите страницу вниз до тех пор, пока вы не увидите DIY ATtiny и не щелкните по кнопке установки (по умолчанию она будет самой последней).

Шаг 5: Запись загрузчика в Attiny

 
Перейдите на Панель инструментов и выберите ATtiny13. Выбрав ATtiny13, перейдите Tools-Processor и выберите ATtiny13 или ATtiny13a в зависимости от вашего чипа. Не изменяйте никаких других настроек, пока не узнаете, что они делают, они могут испортить то, что вы пытаетесь выполнить. Наконец, нажмите кнопку «Записать загрузчик» в нижней части раскрывающегося меню инструментов.

Шаг 6: Программирование чипа

ngin.pro

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *