ATtiny2313 — Меандр — занимательная электроника
Предлагаемое устройство позволяет перейти от релейного принципа управления вентилятором системы охлаждения двигателя «температура выше нормы — включён, ниже нормы — выключен» к более, по мнению автора, благоприятному для двигателя пропорциональному управлению. Теперь с ростом температуры охлаждающей жидкости частота вращения ротора… Продолжить чтение →
Термостат предназначен для работы с отопительной системой на основе отопительного электрокотла. В основе схемы лежит микросхема DS1621. Микросхема DS1621 это термометр и термостат с цифровым вводом/выводом, обеспечивающий точность ±0.5°С. При использовании в качестве термометра, данные считываются через I2C/SMBus последовательную шину… Продолжить чтение →
Когда-то в [Л.1] был описан управляемый генератор прямоугольных колебаний TTL-уровня на микроконтроллере ATTiny2313. Он мог вырабатывать 31 фиксированную частоту (от 0,1 Hz до 4 MHz), имел очень простую схему и управлялся подачей двоичного кода на управляющие входы. В зависимости от… Продолжить чтение →
Чтобы открыть этот электронный замок, не потребуется запоминать код и набирать его вручную, нажимая на кнопки. Достаточно вставить в «замочную скважину» замка «ключ» с микросхемой энергонезависимой памяти. Подсмотреть открывающий замок код невозможно. Его генерирует и записывает в память «ключа »… Продолжить чтение →
Велокомпьютер представляет собой устройство, устанавливаемое на велосипед для измерения скорости, пройденного пути, и управления яркостью фары. Схема состоит из распространённого микроконтроллера ATtiny2313, стандартного индикатора и нескольких дискретных элементов. Основные параметры устройства: Напряжение питания: 4,5…5,5 В Потребляемый ток: меньше 10 мА… Продолжить чтение →
ПРОГРАММИРОВАНИЕ Attiny2313
Как производится программирование микроконтроллеров ATtiny2313? Итак, имеем микроконтроллер ATtiny2313, LPT порт (обязательно железный — никакие USB-2-LPT не работают), несколько проводков (длина не более 10см) и конечно же паяльник. Желательно иметь разъём DB-25M (папа), с ним будет удобней подключать микроконтроллер, но можно обойтись и без него. Припаиваем проводки к выводам 1, 10, 17, 18, 19, 20 микроконтроллера. Получаем нечто вроде того, что на фото:Далее, если есть разъём DB-25M, то припаиваем проводки к нему в соответствии с таблицей. Если нет, то просто втыкаем проводки в разъём на компьютере (не забывая про таблицу!!!).
Если быть совсем честным, то желательно собрать «правильный» программатор. И потом будет проще и порт целее. Я пользую STK200/300. Далее используем программу PonyProg2000. После запуска программы она «заржет….» как настоящий пони. Чтобы этого больше не слышать в появившемся окне ставим галочку «Disable sound». Жмём «ОК». Выскакивает окошко которое говорит, что нужно откалибровать программу. Компы бывают же разные и медленные и шустрые. Жмём «ОК». Выскакивает ещё одно окошко — это нам говорит, что нужно настроить интерфейс (какой программатор и куда подключен.). Итак заходим в меню: Setup -> Calibration. В появившемся окне:
Жмём «YES». Проходит пара секунд и программа говорит «Calibration OK». Далее заходим в меню: Setup -> Interface Setup. В появившемся окошке настраиваем как у показано на рисунке.
2. Из другого списка выбираем «ATtiny2313»
3. Загружаем файл прошивки (File -> Open Device File), выбираем нужный файл, например «rm-1_full.hex».
4. Жмём кнопочку «Launch program cycle». Когда программирование завершится прога скажет «Program successful»
ВНИМАНИЕ! Если Вы не знаете, что означает тот или иной конфигурационный бит, то не трогайте его. Вот теперь у нас готовый к работе контроллер ATtiny2313! На форуме можно скачать программу PonyProg2000 и оригинал статьи с дополнительными рисунками. Материал для сайта Радиосхемы предоставил Ansel73.
Обсудить статью ПРОГРАММИРОВАНИЕ Attiny2313
Крошечный термометр на Attiny2313 (с печатной платой) — Микроконтроллеры — СХЕМЫ — Каталог схем
«Термометр: меньше не бывает» так называется статья на сайте arv.radioliga.com. Схему, расположенную на указанной страничке, я видел давно, но вот интерес к ней у меня появился, когда у одного из сограждан форума с этим «маленьким» термометром возникли вопросы. Если быть более точным интерес у меня появился не столько к схеме, сколько к размерам термометра. У автора термометр собран на плате размерами 50*22 мм.На радиорынке я присмотрел трехразрядный семисегментник. Приобрел микроконтроллер Attiny2313 в SOIC корпусе, DS18B20, smd-резистор и smd-конденсатор. Нарисовал печатную плату, по печатной плате нарисовал схему, написал программу, залил в МК и вот, что получилось:
Несколько слов схеме и о программе. Компактность не обошлась без жертв. В схеме отсутствуют токоограничивающие сопротивления, что есть не совсем хорошо. Для увеличения нагрузоспособности катоды индикатора подключены сразу к двум выводам МК.
В программе ничего оригинального нет. Шаблон подготовлен с помощью мастера из CVAVR, остальные части взяты из моих часов с термометром. Я применил подправленную библиотеку DS18B20, а точнее это сумма двух библиотек из CVAVR для DS1820/DS18S20 и DS18B20, т.е. в термометре можно применять любой из вышеперечисленных датчиков. Если точнее, то не более 4-х датчиков в любой комбинации.
Скачать проект для Proteus, прошивку, исходники и печатную плату — скачать.
Источник: httр://rаdiоkоt.ru | Категория: Микроконтроллеры | Добавлен: 31.05.2010 | Автор: Даниил Перваков aka Danko | Просмотров: 13649
ATTiny2313 — GetChip.net
Многоканальный автомат управления нагрузками собран на ATtiny2313 и позволяет в автоматическом режиме управлять состояниями 8-ми каналов (Out_0 — Out_7). На каждом из каналов формируется ШИМ-сигнал, скважность которого можно изменять по прописанному Вами алгоритму (программе). В устройстве можно использовать до 8-ми программ каналов. Программу можно зациклить (бесконечное воспроизведение) или можно воспроизвести только один раз. Программу можно… Читать далее »
Как-то пару лет не доходили руки до серьезного обновления моей 12-ти канальной супер гирлянды, хотя и были определенные идеи, но со временем не складывалось. В этом году в ноябре у меня отпуск и появилась возможность сделать обновление. Изначально я поставил перед собой задачу – не менять саму конструкцию гирлянды, а поменять только прошивку. Это позволит… Читать далее »
Сегодняшняя статья будет о виртуальной светодиодной елке. Почему виртуальной? Сейчас объясню. До новогодних праздников еще месяц и ставить настоящую елку еще рано, но так как мне нужно на чем-то обкатывать новую прошивку супер гирлянды, пришлось обойтись виртуальной елкой. Виртуальная она потому, что ее нет вообще! Есть только сама гирлянда, которая и формирует «елку». Выглядит это… Читать далее »
Раздел: СуперГирлянда Метки: ATTiny2313, LEDОбновление супер гирлянды, описанное в этой статье – это всего лишь другой способ формирования линий светодиодов. Эту переделку я сделал еще в прошлом году, но так как это было сделано прямо под праздник, решил не дразнить Вас, а показать это уже под следующий Новый год, что и делаю сейчас. Во время сборки первой супер гирлянды… Читать далее »
Раздел: СуперГирлянда Метки: ATTiny2313, LEDВдогонку к предыдущему устройству представляю немного измененный вариант Показывалки. Это устройство было сделано по просьбе Шаповалова Леонида и является некоторым симбиозом моей Показывалки и матрицы с ресурса safonnikov.name (которая уже была собрана, но не устраивала своей функциональностью и необходимостью подключения к компьютеру для отображения анимации). Леонид уже набил руку в создании различных эффектов на матрицу… Читать далее »
Раздел: Полезные устройства Метки: ATTiny2313, LED, МатрицаОпубликованное в свое время устройство SD Card Talking Device (Говорилка) приобрело у Вас, читателей блога, определенную популярность. Я давно собирался сделать (и сделаю в свое время) более серьезный вариант Говорилки с возможностью настройки устройства под свои нужды и более качественным звуком, (возможно с поддержкой SD-карт больше 2 Гиг). Но пока не сделал апдейт, решил немного… Читать далее »
Раздел: Роботы Метки: ATTiny2313, LED, SD-карта, МатрицаОглавление: Введение | Keypad_IR_to_UART | UART_to_Pin | SDC_Talking Последнее устройство стенда – SDC_Talking-говорилка.
Раздел: Говорилка Стенд ВГ Метки: ATTiny2313, SD-картаОглавление: Введение | Keypad_IR_to_UART | UART_to_Pin | SDC_Talking Устройство UART_to_Pin предназначено для управления нагрузками посредством UART команд. В качестве управляющих символов выступают заглавные буквы латиницы от “A” до “P” и цифры от “0” до “3”. Устройство имеет 16 выходов, которые управляют нагрузками (как подключить к МК нагрузку). Нагрузка включается путем установки на соответствующей ножке МК… Читать далее »
Раздел: Стенд ВГ Метки: ATTiny2313Оглавление: Введение | Keypad_IR_to_UART | UART_to_Pin | SDC_Talking Устройство Keypad_IR_to_UART предназначено для формирования UART сообщений (заглавные буквы латиницы и цифры) по факту нажатий клавиш на кейпаде и/или любом бытовом ИК-пульте (от телевизора, например). Прежде всего, устройство ориентировано на совместную работу с устройствами управляемых по UART (в частности разрабатывалось для интерактивного стенда), но может быть использовано,… Читать далее »
Раздел: ИК-управление Стенд ВГ Метки: ATTiny2313РадиоКот :: Дверной звонок на Attiny2313.
РадиоКот >Схемы >Цифровые устройства >Бытовая техника >Дверной звонок на Attiny2313.
Простейшая схема дверного звонка на популярном Attiny2313.
В прошивке звонка все четыре мелодии. Мелодия представляет собой последовательный код из двух строк цифр, числа в первой строке обозначает ноту или паузу, а числа во второй строке соответствующие им их длительности.
Переборка мелодий осуществляется кнопкой подключенной к Reset, которая установлена на плате. Принцип перебора основан на том, что регистры общего назначения (РОН) сохраняют свои значения после сброса. А вторая кнопка на PD2 подключена через двужильный провод, длиной около 2 м, к обыкновенной большой кнопке, установленной с наружной стороны двери.
Работа звонок следующим образом. Гость нажимает на кнопку дверного звонка и начинает играть мелодия. Во время звучания мелодии горит светодиод. Так и будет повторяться каждый раз. Чтобы сменить мелодию необходимо нажать на кнопку на самом звонке, которая поменяет ее на следующую.
В устройстве использовано всего две октавы, в файле Excel представлены коды нот этих октав, соответствующие им частоты в результате вычисленные им число тактов, при котором должно произойти прерывание в программе. Так как число тактов величина целая, то получается неточность, которая тоже показана в Excel»е. Искажение звучание нот происходит еще из-за того, что тактирование микроконтроллера осуществляется от внутреннего нестабильного генератора, установленного на частоту 4МГц.
Питание устройства осуществляется от обычного китайского нестабилизированного адаптера на 9В. Поэтому в схеме звонка имеется стабилизатор напряжения, с помощью подстроечного сопротивления выставляется напряжение на микроконтроллере 5В.
Запись программы осуществляется через разъем внутрисхемного программирования.
На транзисторах выполнен усилитель для динамика.
Количество мелодий и их длительность ограничена лишь объемом flash-памяти микроконтроллера, которая в моем случае заняла 1,5 КБ из 2 КБ.
Схема очень проста поэтому, пожалуй, это всё что могу рассказать.
Файлы:
Печатная плата в формате SL 5.0.
Коды нот.
Прошивка МК с исходником.
Вопросы, как обычно, складываем тут.
Как вам эта статья? | Заработало ли это устройство у вас? |
Эти статьи вам тоже могут пригодиться:
DIY цифровой тахометр на AVR ATtiny2313, КР514ИД2 и оптопаре / Habr
DIY цифровой тахометр на AVR ATtiny2313, КР514ИД2 и оптопаре
Добрый день.
Выношу на Ваше рассмотрение схему простенького цифрового тахометра на AVR ATtiny2313, КР514ИД2, и оптопаре спроектированного мною.
Сразу оговорюсь: аналогичных схем в интернете много. У каждой реализации свои плюсы и минусы. Возможно, кому-то мой вариант подойдет больше.
Начну, пожалуй, с тех. задания.
Задача: нужно сделать цифровой тахометр для контроля оборотов электрического двигателя станка.
Вводные условия: Есть готовый реперный диск на 20 отверстий от лазерного принтера. В наличии много оптопар от сломанных принтеров. Средние (рабочие) обороты 4 000-5 000 оборотов/минуту. Погрешность отображаемых результатов не должна превышать ± 100 оборотов.
Ограничение: питание для блока управление составляет 36В (тахометр будет установлен в один корпус с блоком управления – об этом ниже).
Маленькое лирическое отступление. Это станок моего друга. На станке установлен электромотор PIK-8, обороты которого контролируются согласно найденной в интернете и модифицированной схеме. По просьбе друга и был разработан простенький тахометр для станка.
Изначально в схеме планировалось применить ATMega16, но рассмотрев условия, решено было ограничиться ATtiny2313, работающего от внутреннего (RC) генератора на частоте 4 Мгц.
Общая схема выглядит следующим образом:
Как видно, ничего сложного. Для преобразования двоичного кода в семисегментный, я применил дешифратор КР514ИД2, это дает сразу три плюса.
- Во первых – экономия места в памяти ATtiny2313 за счет уменьшения рабочего кода (т.к. процедура программного преобразования двоичного кода в семисегментный отсутствует в прошивке за ненадобностью).
- Во вторых: уменьшение нагрузки на выходы ATtiny2313, т.к. светодиоды «засвечивает» КР514ИД2 (при высвечивании цифры 8 максимальное потребление составит 20-30 мА (типичное для одного светодиода) * 7 = 140-210 мА что «много» для ATtini2313 с её полным паспортным максимальным (нагруженным) потреблением 200 мА).
- В третьих – уменьшено число «занятых» ног микроконтроллера, что дает нам возможность в будущем (при необходимости) модернизировать схему путём добавления новых возможностей.
Сборка устройства осуществлена на макетной плате. Для этого была разобрана завалявшаяся в закромах плата от нерабочей микроволновой печи. Цифровой светодиодный индикатор, ключевые транзисторы (VT1-VT4) и ограничительные резисторы (R1 – R12) были взяты комплектом и перенесены на новую плату. Все устройство собирается, при наличии необходимых компонентов, с перекурами за пол часа. Обращаю внимание: у микросхемы КР514ИД2 плюсовая ножка питания — 14, а минус — 6 (отмечены на схеме). Вместо КР514ИД2 можно применить любой другой дешифратор двоичного кода в семисегментный с питанием от 5В. Я взял то, что было под рукой.
Выводы «h» и «i» цифрового светодиодного индикатора отвечают за две точки по центру между цифрами, не подключены за ненадобностью.
После сборки и прошивки, при условии отсутствия ошибок монтажа, устройство начинает работать сразу после включения и в настройке не нуждается.
При необходимости внесения изменений в прошивку тахометра на плате предусмотрен разъем ISP.
На схеме подтягивающий резистор R12, номиналом 30 кОм, подобран опытным путём для конкретной оптопары. Как показывает практика – для разных оптопар он может отличаться, но среднее значение в 30 кОм должно обеспечить устойчивую работу для большинства принтерных оптопар. Согласно документации к ATtiny2313, величина внутреннего подтягивающего резистора составляет от 20 до 50 кОм в зависимости от реализации конкретной партии микроконтроллеров, (стр. 177 паспорта к ATtiny2313), что не совсем подходит. Если кто захочет повторить схему, может для начала включать внутренний подтягивающий резистор, возможно у Вас, для Вашей оптопары и вашего МК работать будет. У меня, для моего набора не заработало.
Так выглядит типичная оптопара от принтера.
Светодиод оптопары запитан через ограничивающий резистор на 1К, который я разместил непосредственно на плате с оптопарой.
Для фильтрации пульсаций напряжения на схеме два конденсатора, электролитический на 220 мкФ х 25В (что было под рукой) и керамический на 0,1 мкФ, (общая схема включения микроконтроллера взята из паспорта ATtiny2313).
Для защиты от пыли и грязи плата тахометра покрыта толстым слоем автомобильного лака.
Замена компонентов.
Можно применить любой светодиодный индикатор на четыре цифры, либо два сдвоенных, либо четыре поодиночных. На худой конец, собрать индикатор на отдельных светодиодах.
Вместо КР514ИД2 можно применить КР514ИД1 (которая содержит внутри токоограничивающие резисторы), либо 564ИД5, К155ПП5, К155ИД9 (при параллельном соединении между собой ножек одного сегмента), или любой другой преобразователь двоичного в семисегментный (при соответствующих изменениях подключения выводов микросхем).
При условии правильного переноса монтажа на МК ATMega8/ATMega16 данная прошивка будет работать, как и на ATtiny2313, но нужно подправить код (изменить названия констант) и перекомпилировать. Для других МК AVR сравнение не проводилось.
Транзисторы VT1-VT4 – любые слаботочные, работающие в режиме ключа.
Принцип работы основан на подсчете количества импульсов полученных от оптопары за одну секунду и пересчет их для отображения количества оборотов в минуту. Для этого использован внутренний счетчик Timer/Counter1 работающий в режиме подсчета импульсов поступающих на вход Т1 (вывод PD5 ножка 9 МК). Для обеспечения стабильности работы, включен режим программного подавления дребезга. Отсчет секунд выполняет Timer/Counter0 плюс одна переменная.
Расчет оборотов, на чем хотелось бы остановиться, происходит по следующей формуле:M = (N / 20) *60,
где M – расчетные обороты в минуту (60 секунд), N – количество импульсов от оптопары за одну секунду, 20 – число отверстий в реперном диске.
Итого, упростив формулу получаем: M = N*3.
Но! В микроконтроллере ATtiny2313 отсутствует функция аппаратного умножения. Поэтому, было применено суммирование со смещением.
Для тех, кто не знает суть метода:
Число 3 можно разложить как
3 = 2+1 = 21 + 20.
Если мы возьмем наше число N сдвинем его влево на 1 байт и приплюсуем еще одно N сдвинутое влево на 0 байт – получим наше число N умноженное на 3.
В прошивке код на AVR ASM для двухбайтной операции умножения выглядит следующим образом:
Mul2bytes3:
CLR LoCalcByte //очищаем рабочие регистры
CLR HiCalcByte
mov LoCalcByte,LoInByte //грузим значения полученные из Timer/Counter1
mov HiCalcByte,HiInByte
CLC //чистим быт переноса
ROL LoCalcByte //сдвигаем через бит переноса
ROL HiCalcByte
CLC
ADD LoCalcByte,LoInByte //суммируем с учетом бита переноса
ADC HiCalcByte,HiInByte
ret
Проверка работоспособности и замер точности проводился следующим образом. К вентилятору компьютерного куллера был приклеен картонный диск с двадцатью отверстиями. Обороты куллера мониторились через BIOS материнской платы и сравнивались с показателями тахометра. Отклонение составило порядка 20 оборотов на частоте 3200 оборотов/минуту, что составляет 0,6%.
Вполне возможно, что реальное расхождение составляет меньше 20 оборотов, т.к. измерения материнской платы округляются в пределах 5 оборотов (по личным наблюдениям для одной конкретной платы).
Верхний предел измерения 9 999 оборотов в минуту. Нижний предел измерения, теоретически от ±10 оборотов, но на практике не замерялся (один импульс от оптопары в секунду дает 3 оборота в минуту, что, учитывая погрешность, теоретически должно правильно измерять скорость от 4 оборотов в минуту и выше, но на практике данный показатель необходимо завысить как минимум вдвое).
Отдельно остановлюсь на вопросе питания.
Вся схема питается от источника 5В, расчетное потребление всего устройства не превышает 300 мА. Но, по условиям ТЗ, тахометр конструктивно должен находится внутри блока управления оборотами двигателя, а к блоку от ЛАТРа поступает постоянное напряжение 36В., чтобы не тянуть отдельный провод питания, внутри блока установлена LM317 в паспортном включении, в режиме понижения питания до 5В (с ограничивающим резистором и стабилитроном для защиты от случайного перенапряжения). Логичнее было бы использовать ШИМ-контроллер в режиме step-down конвертера, на подобии МС34063, но у нас в городе купить такие вещи проблематично, поэтому, применяли то, что смогли найти.
Фотографии платы тахометра и готового устройства.
К сожалению, сейчас нет возможности сфотографировать на станке.
После компоновки плат и первой пробной сборки, коробка с устройством отправилась на покраску.
Исходный код, на AVR ASM, файлы проекта AVR Studio4 и скомпилированный .HEX файл находятся здесь:http://djkiridza.org.ua/ldd/taho-v029.zip.
Зеркало здесь:http://fileobmen.org.ua/DJ_Kiridza/taho-v029.zip
В случае, если у Вас тахометр не заработал сразу после включения, при заведомо верном монтаже:
1) Проверить работу микроконтроллера, убедится, что он работает от внутреннего генератора. Если схема собранна правильно – на циферблате должно отображаться четыре нуля.
2) Проверить уровень импульсов от оптопары, при необходимости подобрать номинал резистора R12 или заменить схему подключения оптопары. Возможен вариант обратного подключения оптотранзистора с подтяжкой к минусу, с включенным или нет внутренним подтягивающим резистором МК. Также возможно применить транзистор в ключевом (инвертирующем) режиме работы.
P.S. по желанию заказчика тахометр отображает не один ноль, а четыре при отсутствии импульсов от оптопары.
P.P.S. Тахометр оказался очень чувствителен к перепадам оборотов двигателя. Незначительные пульсации напряжения вызывают отклонение частоты вращения, что незамедлительно отображается на экране тахометра. В будущем планирую сделать обработку для округления отображаемых результатов в пределах ±50 оборотов, если это будет нужно заказчику.
Схема и описание работы частотомера на микроконтроллере AVR ATtiny2313
В данной статье представлена простая и надежная схема частотомера, реализованная на основе микроконтроллера ATtiny2313 (семейство AVR). С ее помощью можно измерять частоты до 65 кГц включительно. Программа для микроконтроллера написана на BascomAVR – нечасто уже используется, но может быть кто то его еще юзает, поэтому, надеюсь, кому то еще эта схема пригодится. В дальнейшем уже буду публиковать схемы с использованием более современных программно-аппаратных схем.
Отображение частоты производится на дисплее 16*2, но обязательно с контроллером HD44780 или аналогичным KS066.. Для питания прибора подойдет напряжение от 5 до 9 вольт.
Подсчет числа импульсов производится при помощи подсчитывания импульсов по нарастающему фронту на ноге 9 микроконтроллера (PD.5/T1 и вход таймера Timer1). Два диода 1N4148 и резистор на 10 кОм необходимы для защиты входа от перенапряжения.
Для работы схемы у микроконтроллера необходимо прошить fuse bits, чтобы задействовать режим работы с внешним кварцевым резонатором (данная операция уже много где в сети описана, поэтому здесь не будем отвлекаться на это).
Текст программы написан на бэйсике в среде BascomAVR. Демо версия этой программы имеет ограничение по размеру кода в 4 Кб, но этого нам вполне хватает. Скачать BascomAVR можно с официального сайта ее разработчика — www.mcselec.com. В программе задействованы 2 таймера: таймер0 служит для отсчета фиксированных интервалов времени (в рассматриваемом нами случае 1 секунда, можно изменять), а таймер1 осуществляет подсчет импульсов, пришедших за это время.
Необходимо отметить, что подсчет числа импульсов будет производиться только в том случае, если уровень сигнала на контакте 9 будет равен уровню логической «1» (примерно 3-5 вольт). Timer0 работает на дефолтной частоте (то есть которая установлена в нем по умолчанию) микроконтроллера ATtiny2313, равной 8 МГц, делитель тактовой частоты не используется. Чтобы увеличить верхний предел измерения частоты (65 кГц) необходимо использовать внешний кварц с большей тактовой частотой и немного изменить прошивку.
Частотомер можно сконструировать на макетной плате. В качестве перспектив на доработку устройства можно добавить распознавание диапазонов частоты и отображение ее в виде Гц, кГц, МГц. Скачать программу для этой схемы можно по нижеприведенной ссылке.
Frequency (14,0 KiB, 107 hits)