ЧАСЫ НА ATTINY
Представляю вашему вниманию очень простые часы на МК Attiny2313. Особо в них в тот момент не нуждался, но руки чесались что нибудь сделать на микроконтроллере, в плане освоения его работы. Итак, меньше слов – больше дела. Схемотехника часов проста как валенок, смотрим принципиальную схему (а если надо её увеличить, чтоб получше разглядеть – кликаем):Порылся, оказалось память меня не обманула, и он действительно лежал там. Смотрю параметры на выходе: 5 V, 350mA. Вполне нормально для питания электронных часов, подумал я, и начал его ковырять.
Вскрыл, включил, проверил – на выходе оказалось 5,07 вольт.
Теперь собираем всё это во что-нибудь подходящее по размерам, долго с корпусом не мучился, на глаза попалась пластмассовая мыльница – её и приспособил, правда получилось не совсем аккуратно, но зато работает, как часы 🙂 Удачи в сборке, с вами был Fenix.Форум по микроконтроллерам
Форум по обсуждению материала ЧАСЫ НА ATTINY
Часы за два дня на attiny2313 и ds1307 / Хабр
МотивНачну с того, что каждый человек живёт во времени, которое, к огромному сожалению, не возможно остановить. И раз мы живём в этом мире, то давайте следить за временем и не упускать ни минуты, тратя её впустую. Для этого я и сделал это чудесное устройство, по имени
часы.
Начнём!
На улице встало солнце, я нарисовал плату и почесал на ксерокс, дабы напечатать плату
Дальше те, кто знают как изготавливаются платы поймут, что я перевёл рисунок утюгом на текстолит, протравил, залудил и т.д., а те, кто не в курсе — почитайте в интернете про изготовление плат методом ЛУТ — (Лазерно-утюжная технология).
результат я заснять забыл, но думаю, что качество будет видно и на готовой плате:
Видно места, которые не взялись, но ничего страшного не случилось, отстал только полигон.
Дальше нужно было запаять компоненты, на которых я особо останавливаться не буду, только оставлю их список:
- AtTiny2313 — 8ми битный микроконтроллер
- ds1307 — микросхема-счётчик с неплохой точностью
- часовой кварц на 32.768кГц
- 2 резистора на 10 КОм
- 7 резисторов на 10 Ом
- 1 резистор на 5.2 КОм
- 4 резистора на 1 КОм
- 4 транзистора КТ315 (их современные братья)
- буззер на 5 вольт
- 2 тактовые кнопки (угловой монтаж)
- 4 индикатора (10011-BSR) общий анод
- тантал на 47 микрофарад
- и гнездо питания и угловым креплением (диаметр отверстия — 5.1мм, диаметр центр. контакта — 1.5мм)
И пускай вас не смущает длина этого списка, ведь мы собираем устройство на долгие года, и оно должно быть собрано на должном уровне!
Кто желает посмотреть на плату с другой стороны, вот фото:
Программа
Как и все устройства, часы нуждаются в программе.
В данном случае программа написана на языке BASIC в BASCOM AVR. Этот язык очень удобный для программирования, так как код понятный, эффективный и занимает не много места на микроконтроллере. Писать программу с ноля я не стал, а взял исходник одной статьи сайта паяльник. Кто интересуется — найдёт, я же просто оставлю доработанный мною код тут:$regfile = "attiny2313.dat" $crystal = 8000000 Dim Count As Byte Dim Number(4) As Integer Dim Pointmem As Byte Dim Point As Bit Dim Mine As Byte Dim Hour As Byte Dim Seco As Byte Config Porta.1 = Output Porta.1 = 1 Waitms 10 Porta.1 = 0 Waitms 70 Porta.1 = 1 Waitms 10 Porta.1 = 0 Config Portb = Output Config Porta.0 = Output Config Portd.2 = Output Config Portd.3 = Output Config Portd.6 = Output Config Sda = Portd.5 Config Scl = Portd.4 Config Pind.0 = Input Portd.0 = 1 Config Pind.1 = Input Portd.1 = 1 Config Timer1 = Timer , Prescale = 64 On Timer1 Awake: Config Timer0 = Timer , Prescale = 64 On Ovf0 Refresh Dig1 Alias Porta.0 : Dig2 Alias Portd.
2 : Dig3 Alias Portd.3 : Dig4 Alias Portd.6 Enable Interrupts Enable Ovf0 Enable Timer1 Start Timer1 Hour = 0 Mine = 0 If Pind.1 = 0 And Pind.0 = 0 Then Porta.1 = 1 Waitms 100 Porta.1 = 0 Hour = 0 Mine = 0 Seco = 1 Seco = Makebcd(seco) I2cstart I2cwbyte &HD0 I2cwbyte 0 I2cwbyte Seco I2cstop Mine = Makebcd(mine) I2cstart I2cwbyte &HD0 I2cwbyte 1 I2cwbyte Mine I2cstop Hour = Makebcd(hour) I2cstart I2cwbyte &HD0 I2cwbyte 2 I2cwbyte Hour I2cstop Waitms 1000 Porta.1 = 1 Waitms 10 Porta.1 = 0 End If Do I2cstart I2cwbyte &HD0 I2cwbyte &H00 I2cstart I2cwbyte &HD1 I2crbyte Seco , Ack I2crbyte Mine , Ack I2crbyte Hour , Nack I2cstop Seco = Makedec(seco) Mine = Makedec(mine) Hour = Makedec(hour) If Seco = 80 Then Seco = 10 Seco = Makebcd(seco) I2cstart I2cwbyte &HD0 I2cwbyte 0 I2cwbyte Seco I2cstop End If If Hour > 9 Then Number(1) = Hour / 10 Number(1) = Abs(number(1)) Else Number(1) = 20 End If Number(2) = Hour Mod 10 If Mine > 9 Then Number(3) = Mine / 10 Number(3) = Abs(number(3)) Else Number(3) = 0 End If Number(4) = Mine Mod 10 If Pind. 1 = 0 Then Porta.1 = 1 Waitms 10 Porta.1 = 0 If Mine = 59 Then Mine = 0 Else Incr Mine End If Mine = Makebcd(mine) I2cstart I2cwbyte &HD0 I2cwbyte 1 I2cwbyte Mine I2cstop Else If Pind.0 = 0 Then Porta.1 = 1 Waitms 10 Porta.1 = 0 If Hour = 23 Then Hour = 0 Else Incr Hour End If Hour = Makebcd(hour) I2cstart I2cwbyte &HD0 I2cwbyte 2 I2cwbyte Hour I2cstop End If End If Waitms 250 Loop Awake: If Point = 1 Then Porta.1 = 1 Waitus 10 Porta.1 = 0 End If Toggle Point Return Refresh: Reset Dig1 : Reset Dig2 : Reset Dig3 : Reset Dig4 Incr Count : If Count > 4 Then Count = 1 If Count = 2 And Point = 1 Then Pointmem = Number(2) + 10 Portb = Lookup(pointmem , Digits) Else Portb = Lookup(number(count) , Digits) End If Select Case Count Case 1 : Set Dig1 Case 2 : Set Dig2 Case 3 : Set Dig3 Case 4 : Set Dig4 End Select Return Digits: Data &B00101000 , &B01111011 , &B00110100 , &B00110010 , &B01100011 Data &B10100010 , &B10100000 , &B00101011 , &B00100000 , &B00100010 Data &B00001000 , &B01011011 , &B00010100 , &B00010010 , &B01000011 Data &B10000010 , &B10000000 , &B00001011 , &B00000000 , &B00000010 Data &B11111111
Прошиваем почти 2 килобайта кода в мк и наблюдаем как только-что ожившее устройство начало служить человеку.
Чесно сказать, я испытываю невероятное удовольствие от того, что могу создать нечто такое, что для многих далёкое и не понятное)
Так выглядит устройство без корпуса, корпус буду делать после написания статьи:
И так, часы готовы, а как они работают? Это я демонстрирую в первой половине этого видео (не прошу подписки или чего-то ещё, просто материал)
Заключение
Таким образом, за 2 дня я сделал устройство, которое покажет мне, сколько мне осталось заниматься одним делом и переходить к другому, когда пора идти, или начать что-то важное.
Ну а на этом всё, спасибо тем, кто дочитал до конца, успехов вам в ваших проектах, и как говорится: «треска вам, 47, и до встречи на других частотах! QRZ..»
Простые электронные часы – Два выходных дня
Простые электронные часы были изготовлены на случай невозможности использовать для установки показаний времени спутниковую систему навигации (GPS). Это может случиться при расположении часов в помещении на большом удалении от окна, в помещении без окон и т. п.
Рисунок 1 – Принципиальная электрическая схема
Основой устройства является микроконтроллер ATTINY2313, содержащий программу, реализующую функцию часов. Микроконтроллер работает от встроенного тактового генератора и считывает значение текущего времени с микросхемы DS1307, являющейся часами реального времени. При пропадании внешнего электропитания ход часов не останавливается, потому что микросхема DS1307 автоматически переходит на резервное питание от литиевой батареи (Bat), потребляя при этом ток не более 500 микроампер.
При появлении внешнего электропитания микроконтроллер ATTINY2313 вновь считывает значение текущего времени с микросхемы DS1307 и выводит его на четырёхразрядный светодиодный индикатор. То есть, достаточно один раз при первоначальном запуске часов установить необходимое значение времени кнопками “Часы” и “Минуты” и затем забыть об этой процедуре, теоретически до тех пор, пока не закончится срок службы резервной батареи. Разумеется, точность этих часов будет хуже, чем у ранее опубликованных. В данном случае она определяется качеством кварцевого резонатора ZQ1.
Конструкция устройства и применяемые
радиоэлементы
В связи с единственностью изготовления печатные платы для монтажа радиоэлементов не разрабатывались. Все радиоэлементы установлены на макетной плате и соединены между собою собственными выводами и отрезками провода типа МГТФ при помощи пайки (рисунки 2 – 5).
Рисунок 2
Рисунок 3
Рисунок 4
Рисунок 5
Макетная плата установлена при помощи пластиковых стоечек в простейший корпус из оргстекла, представляющий собой две пластины толщиной 4 мм, соединённые винтами М2. Для этого в нижней пластине просверлены отверстия, в которых нарезана соответствующая резьба. Индикатор прикрыт “бутербродом” из оргстекла толщиной 1 мм и светофильтром из пивной бутылки (рисунки 6 – 10).
Рисунок 6
Рисунок 7
Рисунок 8
Рисунок 9
Рисунок 10
Микроконтроллер ATTINY2313 и микросхема DS1307 установлены на панельки. Для повышения помехоустойчивости схемы выводы кварцевого резонатора ZQ1 следует припаять непосредственно к соответствующим выводам микросхемы IC1. Для той же цели под корпусом кварцевого резонатора необходимо предусмотреть площадку из медной фольги, соединённую с общим проводом электропитания. Резонатор прижимается припаянной к площадке проволочной перемычкой.
В устройстве применён индикатор красного свечения с общим анодом размером символа 0.56″. Литиевая батарея – CR2032, обычно применяется в материнских платах ПК. Номиналы резисторов R1-R3 могут варьироваться в пределах 10-100 кОм. Светодиод HL1 можно не устанавливать.
Единственная его функция -включаться при переходе на каждый новый час на 15 секунд. Кварцевый резонатор ZQ1 желательно установить с частотой, максимально приближённой к номиналу. От этого зависит периодичность корректировки показаний времени кнопками “Часы” и “Минуты”.В качестве источника питания используется зарядное устройство от сотового телефона с номинальным выходным напряжением 5 вольт. Зарядное устройство подключается через разъём micro USB. Ток потребления небольшой, во всяком случае, популярный USB тестер (Charger Doctor) потребляемого часами тока не зафиксировал (рисунок 11).
Рисунок 11
После подачи электропитания загорается сегмент G первого разряда и в режиме бегущего огня доходит до последнего. В этот момент микроконтроллер проверяет – не было ли замены резервной батареи, и идут ли часы. Если была замена, то на индикаторе отобразится значение времени – 16:23:00, после чего его нужно сменить на текущее значение кнопками “Часы” и “Минуты”.
Время отображается в 24-х часовом формате, показания часов и минут разделяются мигающим двоеточием. В моём случае, ввиду применения не часового индикатора, двоеточие не отображается. Вместо этого, в третьем и четвёртом разрядах мигают десятичные точки (рисунки 12-14).
Рисунок 12
Рисунок 13
Рисунок 14
Наладка правильно собранной схемы часов не потребовалась. Управляющая программа для микроконтроллера ATtiny2313 и индикатора с общим анодом находится здесь. Микроконтроллер запрограммирован программатором USBasp с управляющей программой AVRDUDE. FUSE-биты установлены следующим образом (рисунок 15).
Рисунок 15 – FUSE-биты
Управляющая программа для микроконтроллера ATtiny2313 и индикатора с общим катодом находится здесь. Эта управляющая программа мною не проверялась.
Простые часы на attiny2313.
Часть 2. РадиоКот >Схемы >Цифровые устройства >Бытовая техника >Простые часы на attiny2313. Часть 2.
Я никогда не слежу за часами: время создано для человека, а не человек для времени.
Франсуа Рабле
Хронометры отсчитывают время. Какое множество часов придумано людьми. Механические, кварцевые, атомные.
Я предлогаю собрать Вам кварцевые часы которые сделал на основе прошлой своей работы. Лучше поздно чем никогда как говорится.
Схема прилагается.
А теперь коротко об изменениях. Собственно я отказался от отдельных семисегментных индикаторов. Установлен полноценный четырехразрядный индикотор. Важно! На схеме разряды подключены без токоограничивающих сопротивлений. Требуется ставить 22-50 ом на каждый сегмент.
Так же изменения коснулись программы. Теперь устанавливать время можно и даже нужно по каждому разряду. Жмем кнопку более 2 сек. Начинает гореть только первый разряд (десятки часов). Короткими нажатиями увеличиваем десятки часов. После настройки снова жмем кнопку более 2 сек и переходим на следующий разряд (единицы часов). И так далее. Когда настоили единицы минут долгое нажатие переведет в рабочий режим.
Так же хочу заметить. Часы работают только в 12 часовом режиме. Если десятки часов увеличить более 1 то произойдет ошибка по логике.
Фото прилагается. Собрано на макетной плате.
Так же прошивка приолагается. Удачи в сборке!
Файлы:
Шестнадцатеричный файл прошивки
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? |
Вариант реализации больших светодиодных часов.
LED часы на ATtiny2313 и DS1307Вариант реализации больших светодиодных часов
Речь пойдет о светодиодных часах, собранных на больших семисегментных индикаторах 70Х110 мм с общим катодом, имеющих по 6 светодиодов в сегменте и, соответственно, требующих питания часов чуть более 12 вольт. Максимальный ток потребления сегмента — 30 мА, но в нашей конструкции сегмент потребляет около 13 мА, чего более чем достаточно для нормальной видимости. Также часы имеют термометр на датчике DS18B20 и коррекцию хода. Контроллер – Atmega8. При отключении питания часы работают от трех пальчиковых батареек, при этом индикация отключается.
Была взята готовая прошивка и схема уважаемого Александра, с исходной статьей можно ознакомиться .
Схема переделана под данные индикаторы, то есть были добавлены ключи на биполярных транзисторах в анодных цепях и микросхема ULN2003 в катодных.
Резисторы R43-R49 и R50-R53 в реальности не нужны, они поставлены здесь чтобы Протеус адекватно запускал схему. Схема могла быть и проще если применить полевые транзисторы и индикаторы с общим анодом.
В конструкции применены транзисторы BC847 и BC857. Резисторы в анодных цепях по 20 Ом, и подбирать их не нужно поскольку достаточно подобрать напряжение питания, которое идет с LM317. В моем случае оно равно 12,7 вольт. D2- точка, в индикаторах это обычно один светодиод. Её нужно подключать только у одного индикатора.
Настройка происходит нажатием кнопки SET, по кругу.
1. Режим отображения минут и секунд. Если в этом режиме одновременно нажать на кнопку PLUS и MINUS , то произойдет обнуление секунд.
2. Установка минут текущего времени.
3. Установка часов текущего времени.
4. Величина ежесуточной коррекции точности хода часов. Символ c и значение коррекции. Пределы установки -25÷25 сек. Выбранная величина будет ежесуточно в 0 часов 0 минут и 30 секунд прибавлена/вычтена из текущего времени.
5. Символ t. Настройка продолжительности отображения часов.
6. Символ o. установка времени индикации температуры с внутреннего датчика.
7. Символ P. установка времени индикации рекламной заставки.
Пределы установки для времени отображения 0÷60 сек. Если установлен 0, данный параметр на индикатор не выводится. Если все параметры установить в 0 – на индикаторе будут часы.
Во всех режимах удержанием кнопок PLUS/MINUS производится ускоренная установка.
Если производились изменения настроек, через 10 секунд от последнего изменения новые значения запишутся в энергонезависимую память (EEPROM) и будут считаны оттуда при повторном включении питания. Индикатор перейдет в основной режим времени.
Новые настройки вступают в силу по ходу установки.
Микроконтроллер отслеживает наличие основного питания. Для уменьшения тока потребления при пропадании оного, отключаются индикатор, датчики и кнопки. Часы продолжают отсчитывать время. При появлении питания от основного источника все функции восстанавливаются.
Фьюзы микроконтроллера:
Теперь непосредственно о реализации схемы. Сначала была собрана плата.
Соединение индикаторов между собой производилось проводом МГТФ, а с платой — через разъемы.
Индикаторы скрепляются с помощью вкрученных в них полосок стеклотекстолита
Потом я подпаял датчик к плате и запустил схему.
В качестве корпуса был куплен электрощиток на 18 модулей, с прозрачной крышкой.
Как видно, в щиток можно прекрасно установить индикаторы, остается только вырезать окно соответствующего размера.
После того как с помощью ножа, плоскогубцев и напильника сделали окно, индикаторы были установлены вовнутрь и закреплены скобами, вырезанными из планки для крепежа автоматов.
На задней крышке щитка установлены батарейный отсек, трансформатор и плата блока питания. Также вырезано окошко для настройки часов, так как кнопки остаются на плате.Детали установлены так чтобы центр тяжести всей конструкции был посередине, поскольку щиток будет висеть на одном саморезе.
Запуск готовых часов. Тонированная крышка удовлетворительно скрывает винты, провода и белые сегменты и в то же время через нее хорошо видны светящиеся сегменты.
На фото прототип, собранный мной для отладки программы, которая будет управлять всем этим хозяйством. Вторая arduino nano в верхнем правом углу макетки не относится к проекту и торчит там просто так, внимание на нее можно не обращать.
Немного о принципе работы: ардуино берет данные у таймера DS323, перерабатывает их, определяет уровень освещенности с помощью фоторезистора, затем все посылает на MAX7219, а она в свою очередь зажигает нужные сегменты с нужной яркостью. Так же с помощью трех кнопок можно выставить год, месяц, день, и время по желанию. На фото индикаторы отображают время и температуру, которая взята с цифрового термодатчика
Основная сложность в моем случае – это то, что 2.7 дюймовые индикаторы с общим анодом, и их надо было во первых как то подружить с max7219, которая заточена под индикаторы с общим катодом, а во вторых решить проблему с их питанием, так как им нужно 7,2 вольта для свечения, чего одна max7219 обеспечить не может. Попросив помощи на одном форуме я получил таки ответ.
Решение на скриншоте:
К выходам сегментов из max7219 цепляется микросхемка , которая инвертирует сигнал, а к каждому выводу, который должен подключаться к общему катоду дисплея цепляется схемка из трех транзисторов, которые так же инвертируют его сигнал и повышают напряжение. Таким образом мы получаем возможность подключить к max7219 дисплеи с общим анодом и напряжением питания более 5 вольт
Для теста подключил один индикатор, все работает, ничего не дымит
Начинаем собирать.
Схему решил разделить на 2 части из-за огромного количества перемычек в разведенном моими кривыми лапками варианте, где все было на одной плате. Часы будут состоять из блока дисплея и блока питания и управления. Последний было решено собрать первым. Эстетов и бывалых радиолюбителей прошу не падать в обморок из-за жестокого обращения с деталями. Покупать принтер ради ЛУТа нет никакого желания, поэтому делаю по старинке – тренируюсь на бумажке, сверлю отверстия по шаблону, рисую маркером дорожки, затем травлю.Принцип крепления индикаторов оставил тот же, как и на .
Размечаем положение индикаторов и компонентов, с помощью шаблона из оргстекла, сделанного для удобства.
Процесс разметки
Затем с помощью шаблона сверлим отверстия в нужных местах и примеряем все компоненты. Все встало безупречно.
Рисуем дорожки и травим.
купание в хлорном железе
Готово!
плата управления:
плата индикации:
Плата управления получилась отлично, на плате индикации не критично сожрало дорожку, это поправимо, настало время паять. В этот раз я лишился SMD-девственности, и включил 0805 компоненты в схему. Худо-бедно первые резисторы и конденсаторы были припаяны на места. Думаю дальше набью руку, будет легче.
Для пайки использовал флюс, который купил . Паять с ним одно удовольствие, спиртоканифоль использую теперь только для лужения.
Вот готовые платы. На плате управления имеется посадочное место для ардуино нано, часов, а так же выходы для подключения к плате дисплея и датчики (фоторезистор для автояркости и цифровой термометр ds18s20) и блок питания на с регулировкой выходного напряжения (для больших семисегментников) и для питания часов и ардуино, на плате индикации находятся посадочные гнезда для дисплеев, панельки для max2719 и uln2003a, решение для питания четырех больших семисегментников и куча перемычек.
плата управления сзади
Плата индикации сзади:
Ужасный монтаж смд:
Запуск
После припаивания всех шлейфов, кнопок и датчиков пришло время все это включить. Первый запуск выявил несколько проблем. Не светился последний большой индикатор, а остальные светились тускло. С первой проблемой расправился пропаиванием ножки смд-транзистора, со второй – регулировкой напряжения, выдаваемого lm317.ОНО ЖИВОЕ!
Данные электронные часы, построенные на микроконтроллере Atmega8, оснащены легко читаемым светодиодным дисплеем, будильником с функцией повтора, функцией восстановления работы после отключения питания.
Характеристики часов
- формат отображения времени: часы, минуты;
- будильник с функцией повтора;
- простое управление с помощью 2 кнопок;
- поддержка работы от батарейки;
- напряжение питания: 7…12В / 0,2 A;
- размеры двух печатных плат: 60×21 мм, 58×44 мм.
Принципиальная схема часов показана на рисунке ниже. Схема часов должна быть запитана постоянным напряжением в диапазоне 7…12В. Это может быть любой с нагрузкой по току не менее 200 мА.
К разъему CON5 платы можно подключить зуммер с генератором, который будет выступать в качестве звукового сигнала будильника. К клеммам SA1 и SA2 печатной платы подключаются кнопки, которые служат для ввода настроек и обслуживания часов.
Настройка времени и будильника
При нажатии кнопки SA1 попадаем в меню часов «Set1», где у нас есть возможность установки текущего времени, а еще одно короткое нажатие кнопки SA1 переводит нас в меню установки времени будильника «Set2».
Для выбора и изменения настроек служит кнопка SA2. После выбора как в режиме настройки времени, как и в режиме установки будильника на дисплее начнет мигать первая цифра, после чего можно установить десятки часов с помощью кнопки SA2.
Очередное нажатие SA1 вызовет мигание второй цифры и с помощью SA2 можно установить единицы часов. Последующие два нажатия SA1 позволят установить десятки минут и единицы минут. Во время установки часов и минут устанавливается всегда только одна цифра. Пятое нажатие SA1 возвращает часы к нормальной работе. Также продолжительное время отсутствия нажатия кнопок завершает процедуры установки.
Во время работы часов длительное нажатие кнопки SA2 производит включение/выключение будильника. В момент активации будильника, на несколько секунд отображается время его запуска. Состояние будильника сигнализирует точка, размещена в четвертом разряде. Если будильник активен, этот индикатор горит.
После включения сигнала будильника нажатием любой кнопки можно выключить его на время порядка 5 минут, при этом активируется функция повтора. Этот факт отмечается миганием точки на четвертом разряде индикатора. По истечении 5 минут сигнал будильника будет запущен снова. Снова нажатием любой кнопки, его можно отложить еще на 5 минут, и т. д.
Полное отключение сигнала будильника происходит после длительного нажатия клавиши SA2, или около полутора минутного отсутствия реакции со стороны пользователя.
Работа часов протестирована в Proteus:
Если в ходе эксплуатации часов, окажется, что часы значительно отстают или спешит, можно попробовать уменьшить или увеличить значение конденсатора C1.
(34,7 Kb, скачано: 1 652)
Протые часики с секундами на 7ми сегментных индикаторах с календарём и термометром, + 6 эффектов индикации.
Мой НОВОГОДНИЙ ПОДАРОК.
ВСЕХ С НОВЫМ 2014м ГОДОМ.
Это простеникие часики – термометр на семисегментных светодиодных матрицах с общим анодом.
Что они могут:
Дата: (Дата – Месяц – День недели)
Температура дома:
А это датчик на улицу выкинул:
6 режимов индикации:
Автопоказ даты и температуры каждые 35 секунд.
Описание кнопок:
Кнопка “-” в режиме установки часов и кнопка перебора режимов индикации в рабочем режиме часов.
Кнопка “ОК” – для входа в режим установки часов.
Кнопка “+” в режиме установки часов и кнопка показания даты и температуры в рабочем режиме часов.
Перебор режимов индикации:
Жмём кнопку “-” – перебор режимов индикации.
Появится:
Первый режим индикации – цифры плавно гаснут и плавно появляются новые.
Жмём ещё раз
Появится:
Второй режим индикации – часики работают как обычно.
И ещё раз
Появится:
Третий режим индикации – цифры при смене меняются перебором.
Ещё раз нажимаем
Появится:
Четвёртый режим индикации – цифры при смене накладываются друг на друга.
Ещё одно нажатие
Появится:
Пятый автоматический режим индикации – режимы индикации сами меняются каждый час.
И ещё одно нажатие
Появится:
Шестой автоматический режим индикации – режимы индикации сами меняются каждые сутки в 00:00.
Включение / выключение автоматического показа даты и температуры каждые 35 секунд.
Жмём и держим в течении 3 секунд кнопку “+” – показ даты/температуры.
Если появится:
Автопоказ выключен.
Автопоказ включен.
Установка времени:
Для установки времени жмём и держим кнопку “ОК” в течении 3х секунд во время показа времени.
Часы переходят в режим установки времени и начинают мигать часы.
Кнопками “-” и “+” устанавливаем час и нажимаем кнопку “ОК” и переходим к установке минут.
И так далее в последовательности час > минуты > число > месяц > день недели.
При долгом удержании кнопок “-” или “+” цифры автоматически сами убывают или прибавляются.
Часы собраны на минимуме микросхем:
PIC16F628 – контроллер часов.
DS1307 – сами часики.
BU2090 – Дешифратор катодов.
DS18B20 – термодатчик.
DS32KHz – микросхема генератора для точности хода.
Если точность не нужна и вы просто подберёте точный кварц на 32.768
то DS32KHz можно и не ставить.
Схема стандартная.
Схема стандартная №2.
Она нужна если вы будете использовать многосветодиодные индикаторы.
Типа таких:
(фотка)
Для которых 5ти вольт анодного напряжения маловато будет.
Для переключения контроллера на эту схему нажимаем и держим кнопку “-” и включаем часы.
Для обратного перевода делаем тоже самое.
Это команда инвертирует выходные импульсы с контроллера для управления анодными ключами.
Регулируя питание в такой схеме можно менять яркость часиков.
Схемка регулятора яркости:
Настройка катодов, то есть назначение сегментов.
В часах можно использовать любые индикаторы.
Для платы что входит в проект я использовал три светодиодные сборки от модулей стиральных машин DE07-00011A.
Прошивка контроллера рассчитана на использование моей платы для моих индикаторов,
если будете использовать другие или рисовать свою плату
нужно после сборки платы и запуска часов переназначить подключение сегментов к BU2090.
Т.к. их порядок нарушается – например вместо 0ля или 7ка будет белеберда.
Исключение только для точки, если она есть в индикаторе.
Точки надо подключать только к 15му выводу BU2090.
Назначение сегментов:
Сам процесс:
Жмём и держим кнопку “+” и включаем часы – появится 8ка – показывая что все сегменты подключены.
После отпускания кнопки в 1м разряде загорается один из сегментов.
Начинается перебор сегментов.
Надо назначить сегменты от A до G – согласно рисунку ниже:
При зажигании нужных сегментов нажимаем кнопку “+”
и так последовательно от появления сегмента A до G – согласно рисунку.
Затем загорается 2й разряд – это разрешение мигания секундных индикаторов.
На тот случай если вы секундные семисегментники расположите по центру между часами и минутами вместо секундных точек.
Тут так же
Если нажать кнопку “+” на 0 то мигание отключается.
Если на 1 то включается.
После чего часы переходят в рабочий режим.
Платы нарисованы с помощью программы Sprint Layout 5.0
На плате “LED clk” кнопки расположены сверху.
На плате “LED clk_v2” – сбоку.
Плата “LED clk_v3” для 2го варианта схемы – для больших индикаторов.
Сдесь фотка верхней части платы “LED clk_v2” с подписанными элементами для большей наглядности:
А тут со стороны монтажа:
Сдесь фотка верхней части платы “LED clk_v3” с подписанными элементами для большей наглядности:
Тут со стороны монтажа:
Прошивка контроллера Clck_6x14_v7.hex показывает день недели буквами – пН, оР, сР, ЧР, пА, сb, ос.
Почему день недели, а не год? – (Вы меня можете спросить)
Да потому что все и так знают какой сейчас год, а вот с днём недели иногда проблемы возникают.
Прошивка Clck_6x14_v7с.hex имеет коррекцию времени.
В период установки времени после установки дня недели
загораются часы и секунды.
В часах кнопками “-” и “+” устанавливаем время в секундах
на сколько нужно подводить время – диапазон от -4 до +4 секунд.
Затем нажав кнопку “OK” переходим к установке дней.
Если поставить 00, то коррекция будет происходить каждый день в 03:00.
Если 01, то через день.
Если 02, то через два дня.
И т.д. до 31го дня – то есть через 31 день.
Коррекция потребовала места в контроллере поэтому пришлось пожертвовать назначением сегментов.
Но их можно назначить сначала зашив в контроллер прошивку Clck_6x14_v7.hex,
назначить на ней сегменты и мигание секунд,
а потом не трогая EEPROM контроллера зашить прошивку с коррекцией.
Все настройки сохранятся.
Прошивка Clck_6x14_v7сb.hex имеет ещё и будильник помимо коррекции времени.
Чтобы поставить будильник жмём и держим кнопку “OK” в течении 3х секунд.
Когда на дисплее появится время ранее установленного будильника, а секундах появится b1 отпускаем кнопку.
Если кнопку продолжать держать, то мы войдём в установку времени.
Выставляем час и миеуты.
Если поставить 00:00 то будильник отключается.
Сработавший будильник отключается только кнопкой “OK”.
Это сделано для того чтобы вы его не смогли пропустить, даже если увидите часики через пару – тройку часов.
Во время срабатывания на дисплее показывается его время, а вмсто секунд – b1.
Так же в момент срабатывания будильника включаются на постоянное свечение светодиоды LD1 – LD3 и мигают LD4 – LD6.
Как вам эта статья? |
Семисегментными индикаторами в наше время называют устройства, которые отображают цифровую информацию. В электрических приборах данные элементы используются довольно часто. Если к ним подключить модулятор, то можно сделать из индикаторов интересные электронные часы. Чтобы более подробно разобраться в этом вопросе, необходимо изучить основные типы устройств. Также важно ознакомиться с моделями, которые представлены на рынке.
Одноразрядные модели
Одноразрядный семисегментный индикатор (схема показана ниже) в наше время отличается своей простотой. Как правило, контакты у моделей установлены в параллельном порядке. При этом светодиоды используются самые обычные. Сделать электронные часы из одноразрядных индикаторов можно довольно просто. В данном случае блок питания потребуется на 30 В.
Также следует учитывать, что модулятор для этого типа индикаторов может использоваться исключительно одноканальный. Непосредственно регулятор для него важно вывести через двойной переходник. При этом резисторы для часов подойдут как импульсного, так и инерционного типа. Непосредственно подключение семисегментного индикатора осуществляется через проводник. Предельное напряжение он обязан выдерживать не менее 35 В. При этом параметр силы тока должен составлять 5 А.
Двухразрядные модификации
Двухразрядные модификации на сегодняшний день являются довольно распространенными. Светодиоды в данном случае чаще всего используются красного типа. Однако на рынке можно найти и другие варианты. Сила свечения у данных индикаторов зависит от производителя. Как правило, контакты у них устанавливаются медного типа.
При этом резисторы используются в основном импульсные. Для того чтобы понять, как сделать часы на практике, необходимо заранее подготовить модулятор, а также преобразователь для устройства. В первую очередь для часов подбирается корпус. При этом семисегментные индикаторы важно устанавливать на модулятор. Непосредственно регулятор должен располагаться в стороне. Соединяется он с блоком питания через тетрод. Также для лучшей проводимости многие специалисты рекомендуют использовать усилитель. В данном случае блок питания подойдет на 15 В. В конце работы останется лишь зафиксировать проводник.
Трехразрядные устройства
Трехразрядные устройства обладают большой мощностью. Светодиоды в данном случае имеются резонансного типа, и на рынке они, как правило, представлены белого цвета. Резисторы для подключения индикаторов применяются инерционного типа. Для того чтобы сделать из трехразрядной модификации часы, потребуется найти качественный модулятор. При этом управление семисегментным индикатором будет происходить через регулятор кнопочного типа.
Тетроды в данном случае пороговое напряжение обязаны выдерживать на уровне 15 В. Проводимость их зависит от частотности конденсаторов. Многие специалисты при сборе часов советуют преобразователи устанавливать с тиристором. В данном случае блок питания можно использовать без усилителя. Для подключения индикаторов понадобятся проводники. Для безопасного использования прибора их необходимо изолировать.
Индикаторы серии E 10561
Семисегментный светодиодный индикатор данной серии отличается повышенным параметром рассеивания. В данном случае цифры видны очень четко. Светодиоды в таких устройствах используются, как правило, асинхронного типа. При этом резонансные модели также встречаются. Чтобы подключить устройство к регулятору, потребуются мощные резисторы. В данном случае преобразователи используются с тиристорами.
Пороговая частота этих устройств не должна превышать 3 Гц. При этом блоки питания, как правило, используются на 30 В. В такой ситуации показатель номинального тока должен располагаться на уровне 12 А. Все это позволит успешно включить индикатор. Непосредственно подсоединение прибора осуществляется через контакты. В некоторых случаях тетрод в цепи может располагаться после преобразователя. В таком случае можно надеяться на пороговое напряжение на уровне 15 В.
Особенности моделей серии E 15461
Семисегментные индикаторы данной серии относятся к классу двухразрядных. В этом случае светодиоды в устройствах установлены резонансного типа. Для подключения модели используются медные контакты. Сделать часы в данном случае довольно просто. Модулятор для этих целей можно использовать одноканального типа. При этом резисторы подбираются средней мощности. Напряжение они обязаны выдерживать минимум на уровне 20 В.
Блоки питания для этих целей можно использовать от персонального компьютера. Также следует отметить, что указанные индикаторы являются довольно компактными. При этом яркость их можно регулировать при помощи модуляторов. Для этого дополнительно потребуется установка преобразователя. Для повышения мощности свечения используются поворотные регуляторы. Усилители в данном случае устанавливаются довольно редко.
Подключение устройства серии E 10578
Индикаторы указанной серии имеются с резонансными светодиодами. В настройке они довольно просты и цифры способны отображать четко. Также следует учитывать, что параметр рассеивания у них очень высокий. Таким образом, устанавливать их в электронные приборы можно довольно просто. Как правило, такие модели используются в микроволновых печах. При этом для секундомеров они также подходят. В данном случае модулятор устанавливается с расширителем. При этом многоканальные модификации являются более распространенными. Усилители для устройств подходят только низкоомного типа. Дополнительно следует учитывать, что частотность модели зависит от блока питания. Если рассматривать прибор на 20 В, то вышеуказанный параметр будет находиться в районе 4 Гц.
Схема индикаторов серии E 10509
Семисегментные индикаторы данного типа способны похвастаться высокой чувствительностью. При этом светодиоды для них подходят резонансные. На рынке они чаще всего представлены красного и синего цвета. Резисторы для подключения модели применяются в основном импульсные. Однако инерционные аналоги также активно используются в бытовой технике. Тетроды в данном случае напряжение должны быть способны выдерживать максимум на уровне 30 В.
При этом система контактов, как правило, подбирается на два проводника. Усилитель для сборки часов потребуется низкоомного типа. Все это необходимо для того, чтобы справляться с большим отрицательным сопротивлением. Однако в данной ситуации многое зависит от модулятора, который устанавливается.
Применение индикаторов серии E 22563
Индикаторы данного типа на сегодняшний день являются довольно востребованными. На электронные приборы указанные модели устанавливать можно. При этом в промышленной сфере устройства данного типа также являются востребованными. В этом случае светодиоды устанавливаются средней мощности. Причем контактные системы на рынке представлены самые разнообразные.
Подключение моделей к модулятору, как правило, осуществляется через тетроды. Преобразователи подходят с частотой не менее 4 Гц. Дополнительно следует учитывать, что параметр рассеивания свечения светодиодов зависит от мощности блока питания. Если рассматривать самые простые часы с модулятором серии РР20, то он подбирается на 20 В.
Модель на хроматических резисторах
Семисегментные индикаторы на хроматических резисторах встречаются довольно редко. Модуляторы в данном случае могут использоваться только одноканального типа. Также следует учитывать, что при подключении устройства обязательно необходимо устанавливать усилители. Все это позволит стабилизировать в цепи параметр порогового напряжения. Блоки питания в данном случае можно использовать от персональных компьютеров. Также важно учитывать, что чувствительность системы зависит от типа тетродов.
Использование оптических модуляторов
Оптические модуляторы, как правило, используются с индикаторами резонансного типа. При этом на электроприборы данные конфигурации устанавливаются часто. В данном случае регуляторы используются в основном поворотного типа. При этом кнопочные варианты встречаются довольно редко. Резисторы для указанных систем подходят асинхронного типа. Непосредственно подсоединение модуляторов в цепи происходит через преобразователи.
Миниатюрный таймер от 1 секунды до 100 часов на Attiny2313
Разрабатывая недавно блок управления освещением, автор обнаружил, что доступные аналоговые или механические таймеры недостаточно точны или удобны. И поэтому он разработал таймер, управляемый небольшим микроконтроллером AVR ATtiny2313.
Блок питания 0…30 В / 3A
Набор для сборки регулируемого блока питания…
Представленное здесь устройство может включать и выключать нагрузку с точностью до 1 секунды в течение периода от 1 секунды до 99:59:59 часов.
ATtiny2313 работает от кварца с частотой 4,9152 МГц для получения временного интервала ровно в 1 секунду. ЖК-дисплей работает в 4-битном режиме. Ввод данных осуществляется посредством четырех кнопок с внутренними подтягивающими резисторами.
Миниатюрный трансформатор (9 В, 1,5 Вт) обеспечивает гальваническую развязку между электросетью и схемой таймера. Для небольших коммутируемых нагрузок (менее 200 Вт) силовое реле можно заменить полностью электронным твердотельным реле. Рекомендуется разделить схему на две отдельные платы: LCD, микроконтроллер и кнопки на одной плате и трансформатор, выпрямитель и реле на другой.
Работа таймера
Когда таймер работает, на индикаторе отображается предустановленный период времени и оставшееся время:
PRESET 1: 10: 08 COUNT 0:09:59
При желании можно выбрать альтернативный формат:
PRESET th 10m 8s COUNT 0h 9m 59s
Использование функциональных кнопок:
- START: запуск таймера на заданный период
- STOP: остановка таймера, выбор меню для настройки значений и опций
- +: увеличить выбранное значение на l
- -: уменьшить выбранное значение на 1
Можно установить следующие значения:
- Menu 1: SET HOURS 00
- Menu 2: SET MINUTES 00
- Menu 3: SET SECONDS 00
- Menu 4: DISPMODE 0
Кнопки + и — изменяют выбранное значение, а одновременное нажатие обеих кнопок сбрасывает значение до нуля.
При программировании ATtiny23l3 должны быть установлены следующие фьюзы:
- EXT: 0xFF
- HIGH: 0xD
- LOW: 0xFD
Цифровой мультиметр AN8009
Большой ЖК-дисплей с подсветкой, 9999 отсчетов, измерение TrueRMS…
Часы с подсветкой – Готовые проекты – – Сообщество
Схема представляет собой простые электронные часы, которые во время работы интересным образом управляют двоеточием в дисплее и подсветкой “внутри” себя.
Благодаря несложной конструкции она наверняка привлечет внимание юных электронщиков.
Элементы схемы
Принципиальная схема приведена на рисунке 1. Сердцем схемы является микроконтроллер
ATtiny2313,который управляет четырехразрядным 7-сегментным дисплеем (c OA) и тремя кнопками для установки времени. Катоды сегментов подключены к соответствующим выводам микроконтроллера через резисторы, ограничивающие ток, а аноды управляются с помощью транзисторов Q2-Q5. Кварцевый резонатор Ql обеспечивает точность часов.
Дисплей DIS1 имеет выводы DTA и DTC. Это анод и катод светодиодов,составляющих двоеточие дисплея (см. рис)
Вывод 15 микроконтроллера – это выход ШИМ. Он запрограммирован на плавное временное увеличение и уменьшение наполнения выходного сигнала. Как видно по схеме к нему подсоединен вывод DTA дисплея и катод LED1. Светодиоды DTA->DTC зажигаются при подаче на них положительного сигнала,а LED1- при подаче сигнала ШИМ близкого к нулю. Мы получаем красивый эффект плавного загорания и плавного затухания (попеременно) вышеупомянутых светодиодов.
Часы могут питаться от любого источника с напряжением мин. 4,5 В. В случае источника с более высоким напряжением (например, 9 В) используется стабилизатор IC2.
Изготовление часов …
не должно вызвать больших затруднении. Расположение элементов показано на рис.2, а печатная плата в формате Sprint-Layout 6.0 находится в архиве. Имееся два варианта печатных плат: Первый вариант-с выводными R и C. Второй вариант – те же C и R в СМД исполнении. LED1 лучше взять синего или белого цвета. Микроконтроллер устанавливается на панельку. Дисплей также ставится на панельку (см. фото 1),вырезанную из 14-ножечной панельки.
Теперь о блоке питания.
Можно использовать USB-порт или другой 5-вольтовый источник. В этом случае стабилизатор IC2 не нужен – ставим перемычку (закорачиваем две крайние площадки). Если используется источник питания с более высоким напряжением, нужно припаять стабилизатор.
Затем припаиваем шнур питания. Продевая кабель через отверстия, сделанные для этой цели в плате, мы защищаем его от случайного вытягивания.
Вы должны запрограммировать микроконтроллер ATtiny2313. Прошивка для него находится в архиве.В дополнение к загрузке программы в память,надо изменить два fuscbits:
отключить деление тактовой частоты на 8 и выбрать внешний кварцевый генератор в диапазоне 3-8 МГц в качестве источника тактовой частоты. После этих действий мы помещаем процессор на панельку, проверяем не перепутали ли полярность питания при пайке кабеля и, если все хорошо, ставим дисплей и включаем питание.
Ввод в работу часов
Часы должны показывать 12.00 после запуска. Можно сразу наблюдать световой эффект от светодиодов. Чтобы установить время, нажмите верхнюю кнопку S1(SET) – должны гореть только цифры часа (не цифры минут). С помощью кнопок S2(+) и S3(-) устанавливаем требуемые часы и подтверждаем установку кнопкой S1. Те же операции производим при установке минут.
Материал взят из журнала Elektronika dla Wszystkich за 2014.04
Двухдневные часы на attiny2313 и ds1307 / Sudo Null IT News
MotiveНачнем с того, что каждый человек живет во времени, которое, к сожалению, не остановить. А раз уж мы живем в этом мире, то давайте следить за временем и не упускать ни минуты, теряя его. Для этого я сделал это замечательное устройство, которое называется часы .
Приступим!
Солнце взошло на улице, я нарисовал печатную плату и поцарапал ее на копировальном аппарате, чтобы распечатать схему.
Далее те, кто знает, как делаются платы, поймут, что рисунок я перевел утюгом на текстолит, травление, лужение и т. Д., А кто не знает – почитайте в интернете про изготовление схемы доски методом ЛУТ – (Лазерно-гладильная технология).
Забыл сфотографировать результат, но думаю, что качество будет видно на готовой плате:
видно места, которые не подошли, но ничего страшного не произошло, только полигон отстал.
Далее нужно было припаять компоненты, на которых я особо останавливаться не буду, просто оставлю их список:
- AtTiny2313 – микроконтроллер 8-битный
- ds1307 – микросхема счетчика с хорошей точностью часов кварц
- на 32,768 кГц
- 2 резистора 10 кОм
- 7 резисторов на 10 Ом
- 1 резистор 5,2 кОм
- 4 резистора на 1 кОм
- 4 транзистора КТ315 (их современные братья)
- 5-вольтовый зуммер
- 2 кнопки часов ( угловой монтаж)
- 4 индикатора (10011-БСР) общий анод
- 47 танталовых микрофарад
- и розетка и угловое крепление (диаметр отверстия – 5.1 мм, диаметр центрального контакта – 1,5 мм)
И пусть длина этого списка вас не смущает, ведь мы собираем устройство много лет, и он должен быть собран на должном уровне!
Кто хочет посмотреть на плату с другой стороны, вот фото:
Программа
Как и всем устройствам, часам нужна программа. В этом случае программа написана на BASIC в BASCOM AVR. Этот язык очень удобен для программирования, так как код четкий, эффективный и не занимает много места на микроконтроллере.Программу с нуля писать не стал, а исходники одной статьи взял на сайте паяльником. Те, кому интересно, найдут, я просто оставляю здесь доработанный код:
$ regfile = "attiny2313.dat"
$ кристалл = 8000000
Тусклый счет как байтов
Тусклое число (4) как целое число
Dim Pointmem как байт
Тусклая точка как бит
Тусклый шахтный как байт
Тусклый час как байт
Dim Seco как байт
Config Porta.1 = Вывод
Porta.1 = 1
Waitms 10
Порта.1 = 0
Уэйтмс 70
Porta.1 = 1
Waitms 10
Порта.1 = 0
Config Portb = Выход
Конфиг Порта.0 = Выход
Config Portd.2 = Выход
Config Portd.3 = Выход
Config Portd.6 = Выход
Конфиг Sda = Portd.5
Конфигурация Scl = Portd.4
Config Pind.0 = Вход
Portd.0 = 1
Config Pind.1 = Вход
Portd.1 = 1
Конфигурация Timer1 = Timer, Prescale = 64
На Timer1 Awake:
Конфигурация таймера 0 = Таймер, предварительная шкала = 64
При обновлении Ovf0
Псевдоним Dig1 Porta.0: Псевдоним Dig2 Portd.2: Псевдоним Dig3 Portd.3: Псевдоним Dig4 Portd.6
Включить прерывания
Включить Ovf0
Включить Timer1
Запуск таймера1
Час = 0
Шахта = 0
Если Pind.1 = 0 и Pind.0 = 0, то
Porta.1 = 1
Waitms 100
Porta.1 = 0
Час = 0
Шахта = 0
Seco = 1
Seco = Makebcd (seco)
I2cstart
I2cwbyte и HD0
I2cwbyte 0
I2cwbyte Seco
I2cstop
Mine = Makebcd (мой)
I2cstart
I2cwbyte и HD0
I2cwbyte 1
I2cwbyte Шахта
I2cstop
Hour = Makebcd (час)
I2cstart
I2cwbyte и HD0
I2cwbyte 2
I2cwbyte час
I2cstop
Waitms 1000
Porta.1 = 1
Waitms 10
Порта.1 = 0
Конец, если
Делать
I2cstart
I2cwbyte и HD0
I2cwbyte и H00
I2cstart
I2cwbyte и HD1
I2crbyte Seco, Ack
I2crbyte Mine, Ack
I2crbyte Час, Nack
I2cstop
Seco = Makedec (seco)
Mine = Македек (шахта)
Час = Македек (час)
Если Seco = 80, то
Seco = 10
Seco = Makebcd (seco)
I2cstart
I2cwbyte и HD0
I2cwbyte 0
I2cwbyte Seco
I2cstop
Конец, если
Если час> 9, то
Число (1) = Час / 10
Число (1) = Abs (число (1))
Еще
Число (1) = 20
Конец, если
Число (2) = Модификатор часов 10
Если Mine> 9, то
Число (3) = Шахта / 10
Число (3) = Abs (число (3))
Еще
Число (3) = 0
Конец, если
Число (4) = Mine Mod 10
Если Pind.1 = 0 Тогда
Porta.1 = 1
Waitms 10
Порта.1 = 0
Если Mine = 59, то
Шахта = 0
Еще
Incr Mine
Конец, если
Mine = Makebcd (мой)
I2cstart
I2cwbyte и HD0
I2cwbyte 1
I2cwbyte Шахта
I2cstop
Еще
Если Pind.0 = 0, то
Porta.1 = 1
Waitms 10
Порта.1 = 0
Если час = 23, то
Час = 0
Еще
Incr Hour
Конец, если
Hour = Makebcd (час)
I2cstart
I2cwbyte и HD0
I2cwbyte 2
I2cwbyte час
I2cstop
Конец, если
Конец, если
Уэйтмс 250
Петля
Бодрствующий:
Если Point = 1, то
Porta.1 = 1
Вайтус 10
Порта.1 = 0
Конец, если
Точка переключения
Возвращение
Обновить:
Reset Dig1: Сброс Dig2: Сброс Dig3: Сброс Dig4
Incr Count: если Count> 4, то Count = 1
Если Count = 2 и Point = 1, то
Pointmem = Число (2) + 10
Portb = Поиск (pointmem, цифры)
Еще
Portb = Поиск (число (количество), цифры)
Конец, если
Выберите количество обращений
Случай 1: установить Dig1
Случай 2: установить Dig2
Случай 3: установить Dig3
Случай 4: установить Dig4
Конец Выбрать
Возвращение
Цифры:
Данные & B00101000, & B01111011, & B00110100, & B00110010, & B01100011
Данные & B10100010, & B10100000, & B00101011, & B00100000, & B00100010
Данные & B00001000, & B01011011, & B00010100, & B00010010, & B01000011
Данные & B10000010, & B10000000, & B00001011, & B00000000, & B00000010
Данные и B11111111
Прошиваем почти 2 килобайта кода в микронах и наблюдаем, как только что ожившее устройство начало служить человеку.
Если честно, испытываю невероятное удовольствие от того, что могу создать что-то далекое и непонятное для многих)
Похоже на девайс без кейса, сделаю кейс после написания этой статьи:
Итак, часы готовы, но как они работают? Я демонстрирую это в первой половине этого видео (я не прошу подписку или что-то еще, только материал)
Заключение
Таким образом, за 2 дня я сделал устройство, которое покажет мне, сколько у меня осталось сделать одно дело, и перейти к другому, когда придет время уходить или начать что-то важное.
Ну вот и все, спасибо тем, кто дочитал до конца, успехов в ваших проектах и, как говорится, «трескайте вам, 47, и до встречи на других частотах!» QRZ .. ”
Business & Industrial 1pc ATTINY23I3-2OPU ATTINY 2313 ATTINY2313-20PU AVR DIP20 MCU IC Оборудование для пайки / демонтажа микросхем и аксессуары
Business & Industrial 1pc ATTINY23I3-2OPU ATTINY 2313 ATTINY2313-20PU Устройство для демонтажа микросхем AVR DIP20 & Аксессуары- Дом
- Бизнес и промышленность
- ЧПУ, Металлообработка и производство
- Сварочное и паяльное оборудование
- Паяльное оборудование и аксессуары
- Паяльные пистолеты и утюги
- 1 шт. ATTINY23I3-2OPU ATTINY 2313 ATTINY2313-20PU AVR DIP20 Чип
ATTINY2313-20PU AVR DIP20 Микросхема IC 1 шт. ATTINY23I3-2OPU ATTINY 2313, найдите много новых и подержанных опций и получите лучшие предложения для 1 шт. ATTINY23I3-2OPU ATTINY 2313 ATTINY2313-20PU AVR DIP20 в лучшем MCU цены на, Бесплатная доставка для многих продуктов, Рекламные скидки, Индивидуальные рекомендации, Бесплатная доставка по всем товарам, Найдите здесь нужный товар.Микросхема микроконтроллера DIP20 1 шт. ATTINY23I3-2OPU ATTINY 2313 ATTINY2313-20PU AVR, 1 шт. ATTINY23I3-2OPU ATTINY 2313 ATTINY2313-20PU AVR Микросхема микроконтроллера DIP20.
Бесплатная доставка многих товаров, например коробок без надписей или пластиковых пакетов. См. Список продавца для получения полной информации. Состояние :: Новое: Совершенно новый, Бренд:: Небрендовый: UPC:: Не применяется, неповрежденный товар в оригинальной упаковке. Если товар не изготовлен вручную или не был упакован производителем в неоткрытую упаковку, не предназначенную для розничной торговли. Упаковка должна быть такой же, как в розничном магазине. Найдите много отличных новых и бывших в употреблении опций и получите лучшие предложения за 1 шт. ATTINY23I3-2OPU. ATTINY 2313 ATTINY2313-20PU AVR DIP20 MCU IC Chip по лучшим онлайн-ценам на, См. Все определения условий: MPN:: ATTINY2313-20PU, неиспользованный, если применима упаковка.
1 шт. ATTINY23I3-2OPU ATTINY 2313 ATTINY2313-20PU AVR DIP20 MCU IC микросхема
DC10G Контроллер запуска двигателя с ручным управлением с дисплеем напряжения и времени накопления, автоматические диспенсеры для ленты Электрический резак для клейкой ленты ZCUT-2 US Stock.J-1-6-4-47 1/2 X 13 NC H8 МЕТЧИК ДЛЯ ФОРМИРОВАНИЯ РЕЗЬБЫ MET-FLO, BB 15 x Pilot Petit Mini Fountain Pen Картриджи на водной основе IRF-10SPN, 1 шт. ВЕНТИЛЯТОР DX AV-12025M24S DC 24V 0,20 A 12025, 12 см, 2 контакта, 3/8 дюйма, AN960, тонкая плоская шайба 18-8 Нержавеющая сталь Военные спецификации 50 шт. AN-960 75. Переходник-переходник для пылесоса, пылесборник, деревообрабатывающий, от 50 до 32 мм. D&D PowerDrive 6858 изготовлен с клиновым ремнем из кевлара. 302LFW -254H 2,5 дюйма, заполненный глицерином SS 316 Внутренний манометр 1/4 дюйма NPT CBM 0/300 фунтов на квадратный дюйм, новый пчелиный улей из нержавеющей стали для вскрытия улья для меда, скребок, лопата, инструмент для пчеловодства, соединитель переборки, пластиковый прямой зазубренный редуктор для труб с наружной резьбой.Прочный 450 Вт 220 В / 110 В ЖК-дисплей Термовоздушная паяльная станция 9 Сопло, гайки с шайбами 1 стопорные шайбы M16-2.0×100, класс 10.9 Винты с шестигранной головкой Болты с шестигранной головкой, пакеты для крафт-пузырей, пакеты для почтовых отправителей Переходник оправки 1/16 “-1/2” Конический хвостовик Морзе, 10 шт. Вставных пневматических соединителей с резьбой 6 мм-1/8 BSPT с наружной резьбой.
…
1 шт. ATTINY23I3-2OPU ATTINY 2313 ATTINY2313-20PU AVR DIP20 MCU IC микросхема
scproductionsllc.com Найдите много отличных новых и подержанных опций и получите лучшие предложения на 1 шт. ATTINY23I3-2OPU ATTINY 2313 ATTINY2313-20PU AVR DIP20 MCU IC Chip по лучшим онлайн-ценам на, Бесплатная доставка для многих продуктов, Рекламные скидки, Индивидуальные рекомендации, Бесплатная доставка на все предметы, найдите здесь нужный товар.
Xucus ATTINY2313-20SU ATTINY231320SU ATTINY2313 2313-20SU 2313 SOP20 10 ШТ. / ЛОТ: Amazon.com: Industrial & Scientific
Original Вы можете купить!
Номер магазина: 1961531
Welco Saya ke toko kami
Jika Anda memiliki pertanyaan silahkan hubungi kami
1.Feback:
Ками Сангат Менхаргай Умпан Балик Позитиф Анда Дан Систем Ками Акан Менинггалкан Умпан Балик Позитиф Баги Анда Сетелах Трансакси Селесай.
Kami menghargai pelanggan kami sehingga jika Anda memiliki masalah, jangan ragu dan don’t ragu untuk memberikan kami сразу же cincin atau hubungi kami melalui электронная почта, Kami selalu ada untuk menawarkan bantuan.
2. pengiriman & penanganan:
Sebagian besar item yang dikirim oleh layanan pos udara pos dalam 24 jam berikutnya setelah pembayaran diterima.Кетика Анда мембели beberapa пункт ян menutup пада хари ян сама, biaya pengiriman акан dikombinasikan dengan diskon. Kami kapal di seluruh dunia.
Pos udara int’l jasa pengiriman:
3. air biaya pengiriman + kemasan & bahan + biaya penanganan [кокок унтук селурух дуния, отправка биасанья мемакан вакту хингга 7-15 рабочих мест, хари, хари либур и ахир инкедакедакедак]: 9000 инкл.
Bagaimana cara mendapatkan faktur dengan pengiriman gabungan untuk beberapa item?
Anda dapat menggunakanmbelinya sekarang.Кетика семуа пункт Анда менавар пада телах берахир, электронная почта ками дан ками акан менгиримкан фактур габунган.
-Anda mengenakan pajak tambahan?
Tidak ada pajak tambahan atau biaya yang dibebankan untuk pembeli internasional.
-Anda menawarkan pengiriman ekspres?
Тидак ада, ками ханья менаваркан, аэродром лайанан [сама денган USPS] методе пенгириман.
– Тугас дан бия брокер?
Kami tidak bertanggung jawab atas bea masuk, pajak atau broker dibebankan oleh negara Anda.
-Paket saya masih belum tiba?
Pastikan Anda telahmbaca rincian pengiriman Untuk menentukan waktu pengiriman yang diharapkan bingkai.Джика пункт Анда масих белум тиба далам вакту иници, кемудиан электронной почты ками. Perkiraan pengiriman di hari kerja дан tidak termasuk akhir pekan дан hari libur.
В зависимости от позиции
ATTiny2313 Многорежимные светодиодные матричные часы
Это проект многорежимных часов , основанный на attiny2313 . в качестве дисплея используется светодиодная матрица 8 × 8. с ограниченным разрешением эти 12-часовые часы показывают время в 6 различных режимах.
Схема использует мультиплексирование строк и столбцов для управления светодиодами, по одной строке за раз, это дает 12.Продолжительность включения 5% при кратковременном включении «комплектов» из светодиодов (по 8 в каждом из 8 рядов). Токоограничивающие резисторы исключены для экономии макета, и, поскольку мы не используем постоянно отдельные светодиоды , они не будут повреждены.
Элемент управления (пользовательский интерфейс) также устроен так, что мы используем только одну тактильную кнопку для ввода. при захвате прошивки долгое нажатие (нажатие и удерживание) кнопки для поворота меню и нормальное нажатие кнопки для выбора меню.
Это проект для хобби, и точность часов зависит от точности калибровки вашего внутреннего генератора.Я не использовал кристалл в этом проекте, так как это нарушит макет «матрица поверх микроконтроллера». кристалл можно использовать для повышения точности на альтернативном макете (или печатной плате). С программной компенсацией я могу добиться перерыва в 2 минуты в день. Мне нужно будет корректировать время каждые 3 или 4 дня
Шаг 2. Функции и детали
особенности
* минимальное количество компонентов, 3 части
* батарея, работающая от 3 В до 5 В
* использование сторожевого таймера для отсчета времени, спящий режим при отключении питания занимает около 1 мкА энергии
* калибровка позволяет настроить время для увеличения в секундах для каждого час
* это часы 12 часов , а не 24 часа и не имеет индикатора AM / PM
* не очень точно, планируется добавить чип RTC
список деталей
* attiny2313v (v – версия с низким энергопотреблением, которая работает с 3V)
* 8 × 8 светодиодный матричный дисплей (красный лучше всего работает при питании 3 В)
* тактильная кнопка
распиновка светодиодной матрицы
светодиодная матрица 8 × 8 имеет размер точки 1.9 мм и с общим катодом, если у вас общий тип анода, вы можете изменить несколько строк в коде для принятия. см. следующую схему и убедитесь, что у вас правильные распиновки. похоже, они довольно распространены, и если вы покупаете через ebay, большинство поставщиков имеют одинаковую распиновку, даже если номер модели отличается.
. . . . . C8 C7 R2 C1 R4 C6 C4 R1. . . . верхний ряд контактов (C – столбец, R – строка)
. . . . . R5 R7 C2 C3 R8 C5 R6 R3. . . . В нижнем ряду контактов
светодиодная матрица 8 × 8 имеет размер точки 1.9 мм и с общим катодом, если у вас общий тип анода, вы можете изменить несколько строк в коде для принятия. см. следующую схему и убедитесь, что у вас правильные распиновки. похоже, они довольно распространены, и если вы покупаете через ebay, большинство поставщиков имеют одинаковую распиновку, даже если номер модели отличается.
Для получения дополнительной информации щелкните: ATTiny2313 Многорежимные светодиодные матричные часы
ATtiny85 433 МГц учебное пособие
Радиоконтроллер ATtiny Помогите мне, поделившись этим постомДо сих пор мы видели на этом канале множество радиоконтроллеров.Мы видели, как один из них использовал модуль NRF24 и делал всю плату, несколько недель назад мы сделали контроллер с радиомодулем HC 12 и гироскопом, но сегодня у меня есть один из простейших радиоконтроллеров.
На этой плате используется радиосвязь 433 МГц и микросхема ATTINY 85, поэтому все очень просто. У него всего 4 «цифровых» канала, поэтому мы не можем использовать его, например, с дронами. Но мы могли подключить к этим 4 цифровым выходам все, что угодно. Дизайн простой и очень дешевый, всего несколько долларов.
См. Необходимые нам компоненты здесь:ЧАСТЬ 1 – ATtiny85 щит
Начнем с микросхемы ATtiny85. Это 8-битный микроконтроллер RISC, который иногда также называют маленьким Arduino. Он имеет 5 контактов ввода-вывода, все 5 могут быть цифровыми, 3 из них могут быть аналоговыми входами, а два могут создавать сигналы ШИМ. Чтобы запрограммировать этот чип, нам понадобится SPI-коммуникация. Мой код также будет использовать функцию «micro», и после поиска в Интернете я обнаружил, что ATTINY может использовать эти функции только с загрузчиком с частотой 8 МГц.Мы создадим щит для ATtiny85, следуя схеме ниже, который затем можно будет подключить к Arduino Uno.
Щит готов. Подключите его к Arduino UNO и вставьте ATTINY 85 в розетку. Убедитесь, что это первый контакт, и не переверните чип. Теперь подключите Arduino Uno к вашему ПК. А теперь обратите внимание. Прямо сейчас я использую последнюю версию IDE Arduino – 1.8.7. Но почему-то платы ATtiny85 с этой версией работать не будут.Для этого перейдите к описанию ниже и загрузите zip-файл с Arduino IDE версии 1.0.5.
Загрузите Arduino0 1.0.5 здесь:
Распакуйте его в любую нужную папку, установка не требуется. Я распаковал его в программные файлы. Теперь перейдите еще раз ниже и загрузите основной zip-файл attiny. Откройте этот zip-файл и скопируйте крошечную папку. Теперь перейдите в папку Arduino 1.0.5, перейдите к оборудованию и вставьте сюда эту крошечную папку. Теперь вернитесь и запустите Arduino из этой папки.С помощью этого метода мы не повлияем на другую версию Arduino, которую мы уже установили.
ATtiny мастер:
ЧАСТЬ 2 – Сжигание предохранителей 8 МГц
Как, если вы перейдете к инструментам, доскам, вы увидите много досок ATTINY. Итак, мы готовы. Итак, когда я купил чип, у него был загрузчик с внутренним генератором 1 МГц. Но нам нужен 8МГц. для этого перейдите в файл, примеры, Arduino ISP и откройте этот пример. Перейдите к платам и выберите Arduino UNO, выберите com и загрузите этот код в Arduino.Теперь мы могли использовать программатор ISP.
Вернитесь к инструментам, платам и выберите плату внутреннего генератора ATTINY 85, 8 МГц. Снова перейдите к инструментам, программисту и выберите Arduino в качестве ISP. Выберите инструменты и запишите загрузчик. Вы увидите, что светодиоды часто мигают, и теперь на ATTINY 85 установлен загрузчик с частотой 8 МГц. Пора это запрограммировать. Перейдите к примеру, базовый и откройте пример мигания. Измените контакт, скажем, цифровой контакт 0 ATTINY 85. Убедитесь, что у вас выбрана плата ATTINY 85, и нажмите кнопку «Загрузить».Итак, вот, теперь светодиод мигает вместе с АТТИНИ. Нам больше не нужен Arduino.
ЧАСТЬ 3 – Датчик
Я хочу радиосвязь между двумя ATTINY. Чтобы сделать его простым и дешевым, я буду использовать два модуля 433 МГц. Я полностью изменил конструкцию модулей и сделал схемы как для передатчика, так и для приемника, а также сделал свои собственные платы, которые уже включают ATTINY, кнопки и схемы радиосвязи. Но сначала давайте сделаем этот проект с коммерческими модулями, которые стоят всего около 50 центов.
Это схема передатчика. У меня будет 4 кнопки с раскрывающимися элементами, подключенными к цифровым контактам 0, 1, 2 и 4 ATTINY. Цифровой вывод 3 – это вывод данных, который идет на радиопередатчик. Я также разместил стабилизатор напряжения AMS11 17 5V, чтобы я мог питать плату от батареи 9V. Позже я также разместил светодиод, чтобы уведомлять меня, когда передатчик включается, а также скользящий стежок.
Я сделал соединения на просверленной печатной плате с гнездами для микросхем ATTINY, а также припаял провод к модулю передатчика в качестве антенны для увеличения диапазона.Помните, что эти модули не рассчитаны на большие расстояния. Максимум 100 метров с использованием антенн.
Скачать код передатчика (4 комбинации):Скачать код передатчика (8 комбинаций):
ЧАСТЬ 4 – Ресивер
Это схема приемника. Это плата, которую я сделал для приемника, на ней есть ATTINY, радиоприемник, регулятор 5V и контакты для входа питания и выхода для 4 каналов. Выходы можно было подключить к чему угодно. В этом случае я позже подключу несколько светодиодов, чтобы показать вам результаты.Контакт D3 – это данные, поступающие от радиоприемника, и плата приемника готова.
Скачать код приемника (4 комбинации):
Скачать код приемника (8 комбинаций):
ЧАСТЬ 5 – Отправлен сигнал
Хорошо, ребята, эти модули отлично работают с виртуальным проводом. С Arduino, который работал нормально, у вас есть руководство по этому поводу на моей веб-странице. Я даже побеседовал между двумя ардуино, используя эти модули. Но по какой-то причине, используя ATTINY, я не мог заставить работать виртуальную проводную связь.Итак, я решил, что все будет проще. Это то чем я занимаюсь. Я создаю прямоугольную волну на выводе передатчика. В зависимости от того, какая кнопка нажата, я буду изменять частоту этого прямоугольного сигнала. На приемнике я измеряю частоту и в зависимости от значения активирую тот или иной выход. Здесь у меня есть сигнал приемника, подключенный к моему осциллографу. Как видите, для каждой кнопки у меня своя частота, и все, что мне нужно сделать сейчас, это определить диапазон.
Вот и все.Загрузите коды, как и раньше, с помощью щита Arduino UNO, и мы готовы. Как видите, теперь для каждой нажатой кнопки загорается отдельный светодиод. Обратной стороной этого контроллера является то, что он имеет только цифровые каналы. Если вам нужны аналоговые сигналы. Вам следует изменить передаваемый сигнал и использовать какую-то систему кодирования.
Следующая часть →
Помогите мне, поделившись этим постом
Как мне использовать AtTiny85 (или другой AtTiny) с Arduino?
1.Крошечный
ATtiny немного отличается от Arduino, не ожидайте, что он будет «полностью совместимым». Это микроконтроллер, который является частью Arduino, а не полноценным Arduino.
Это больше устройство для «продвинутых пользователей» и дает больше гибкости (за счет удобства использования). Вы можете легко добавить этот микроконтроллер на макетную плату, поскольку установка полноценного Arduino на макетную плату не имеет большого смысла.
1.1 USB?
Поскольку ATtiny является микроконтроллером (например, ATmega на Arduino), а не платой разработки (как Arduino), у него нет разъема USB.В серии ATtiny также нет аппаратного UART (Rx / Tx). Модель
Вам нужно будет позаботиться о стабильном питании вашего микроконтроллера, и программирование будет немного сложнее (подробности см. Ниже).
Однако можно использовать SoftwareSerial
и настроенный загрузчик. Мой ATtiny85 запускает программный последовательный порт с 115200 нормально, хотя я нашел сообщение, в котором говорится, что внутренний осциллятор должен быть настроен для надежного соединения.
1.2 RAM / память программ
ATtiny имеет меньше оперативной и программной памяти. По сути, это означает, что ваша программа не может быть такой «большой», как на обычном Arduino. Это также означает, что вы не можете использовать столько переменных. Программа для крошечных должна быть «маленькой» или очень эффективной.
1,3 “Скорость”
My ATtiny поставлялся с установленной внутренней тактовой частотой 1 МГц, но если вы замените бит предохранителя, вы можете заставить его работать на частоте 8 МГц. Стандартный Arduino имеет на плате тактовую частоту 16 МГц.Таким образом, ваш код будет работать в 16 раз медленнее по умолчанию и в 2 раза медленнее на «максимуме». Вы можете использовать внешние часы для ATtiny, но это съедает 2 контакта. Круто то, что когда вы устанавливаете его на 1 МГц, он может работать примерно на 2,7 В (сначала проверьте таблицу).
Arduino 16 МГц
ATtiny (стандартный) 1 МГц
ATtiny (комплект предохранителей) 8Mhz
ATtiny (внешний кристалл) до 20 МГц
Чем выше Mhz, тем быстрее. Имейте в виду, что 1 МГц – это примерно 1000000 инструкций в секунду, что по-прежнему невероятно быстро и достаточно для большинства случаев, особенно на таком крошечном устройстве.
2. Программирование Tiny
Большинство ATtiny не поставляются с настроенным (программным серийным) загрузчиком Arduino. По сути, это означает, что вам придется самостоятельно записать собственный загрузчик или использовать другой тип программатора. Вам действительно стоит посмотреть видео от Бена Хека. Он объясняет, что платы Arduino имеют встроенный USB-преобразователь и специальный код, который может «загружать» вашу Arduino. Но эти программисты ICSP / ISP используются для загрузки программ без подключения загрузчика / uart.
2.1 Программатор
У вас есть множество опций, проверьте пункт «Программист» на вкладке «Инструменты» в вашей Arduino IDE. Я использую USBasp, который можно купить на ebay всего за 3 евро. Вы должны получить тот, который имеет выбираемое напряжение (3,3 В и 5 В).
(Если ваш ATtiny85 уже имеет загрузчик, что маловероятно, вы можете использовать программные пины rx / tx для загрузки)
2.2 Подготовка
Проверьте свой микроконтроллер, если это действительно ATtiny85, у моего реселлера E-bay на самом деле был один ATtiny45, что приводило к «ошибке» при попытке загрузки.
Arduino IDE не знает «плату ATtiny», поэтому вы не можете легко ее выбрать. Вы должны сообщить среде IDE, что ATtiny также можно программировать.
Я нашел очень хорошее руководство, в котором описано, как это сделать.
- Откройте диалоговое окно настроек в программном обеспечении Arduino. Найди Поле «URL-адреса дополнительных плат» в нижней части диалогового окна.
- Вставьте следующий URL в поле (используйте запятую, чтобы отделить его от любых URL, которые вы уже добавили): https: // raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
- Нажмите кнопку ОК, чтобы сохранить обновленные настройки.
- Откройте диспетчер досок в меню «Инструменты> Доска».
- Прокрутите список до конца; вы должны увидеть запись «ATtiny».
- Щелкните запись ATtiny. Должна появиться кнопка установки.
- Нажмите кнопку установки. Слово «установлен» теперь должно появиться рядом с заголовком записи ATtiny.
- Закройте менеджер досок. Теперь вы должны увидеть запись для ATtiny в меню «Инструменты> Доска».
2.3 Изменение внутренних часов
В одном интересном сообщении, которое я нашел, мне говорилось, что вы можете изменить внутренние часы / генератор на 8 МГц, выбрав 8 МГц (внутренние) в качестве часов и нажав кнопку «Записать загрузчик». Это не приведет к прошивке загрузчика (так как это не имеет большого смысла на Tiny85), но изменит бит предохранителя.
2,4 Код
Стандартное руководство по миганию вам не обойдется. Он использует цифровой вывод 13 (у крошечного всего 8 контактов).
Имейте в виду, что вам, возможно, придется загрузить, используя Ctrl + Shift + U (или скетч-> Загрузить с помощью программиста).
Я использовал диаграмму ниже, чтобы проверить контакты (с сайта highlowtech.org)
3. Оборудование
Ваша «схема» не полная, я не вижу способа запрограммировать или включить микроконтроллер.И вы можете принять некоторые меры предосторожности.
Я лично считаю, что хорошо прорисованная схема лучше выглядит как «макет».
Подтягивающий резистор 10 кОм на выводе сброса не является обязательным на 100% в соответствии с таблицей данных. Но у Uno он есть в эталонном дизайне (который я использую как образец).
Есть два конденсатора, один “большой” конденсатор в качестве резервуара. Если одно устройство внезапно потребляет большой ток, конденсатор справится с этим. Конденсатор развязки меньшего размера будет гасить шум других ИС или импульсных источников питания.Он может работать и без них, но с ними ваша схема будет более надежной. Помните, что развязывающий конденсатор должен быть (физически) близко к ИС.
Вы можете запитать плату через программный заголовок, но имейте в виду, что вам понадобится плавное напряжение между (скорее всего) 3,3 В и 5 В. Если вы хотите запитать его большим напряжением (батарея 9 В), вам понадобится регулятор напряжения.
Программирование Atmel ATtiny2313 в Mac OS X
Для недавнего проекта мне нужно было управлять шестнадцатью или семнадцатью светодиодами с помощью микропроцессора.Я выбрал Atmel ATtiny2313, потому что он имеет 20 контактов с восемнадцатью выходами, может работать без внешнего генератора и стоит примерно 2 доллара за штуку.
Поскольку у меня есть ноутбук Mac и нет реального последовательного или параллельного порта, я выбрал решение для программирования на основе USB. Более того, я хотел программировать на C, а не на ассемблере, и использовать инструменты разработки с открытым исходным кодом. Поскольку я (в конце концов) преуспел в достижении всех этих целей, я подумал, что мне следует сделать несколько заметок об этом.
[ ОБНОВЛЕНИЕ , январь 2008 г. Эта статья в основном устарела. Хотя этот метод действительно работает, все стало намного проще. См. Этот пост для получения обновленного набора отправных точек. Среди прочего, хаки для исправления ошибок, описанные в этой статье, были добавлены в текущие версии инструментальной цепочки AVR.]
Я хотел бы сказать, что программирование микроконтроллера – это простая и понятная вещь, но, по моему опыту, всегда что-то может пойти не так.В моем случае несколько вещей пошли не так, поэтому, возможно, лучше считать это справочным руководством, а не практическим руководством.
Для программирования микроконтроллера требуется несколько вещей: сам микроконтроллер должен иметь питание и соединение с программистом, и должна быть программная «цепочка инструментов», которая переводит код C в машинный код, подготавливает двоичные объекты и загружает эти двоичные файлы. программисту. Но я забегаю вперед. По одному…
С чего начать…
Я начал с изучения набора инструкций Лии Бечли по программированию AVR на Mac.Ее решение заключалось в использовании последовательного USB-разъема и последовательного программатора Atmel AVR ISP, который, по-видимому, больше не доступен. Следующим лучшим вариантом изначально были младшие серийные программаторы, такие как Olimex AVR-PG1, $ 12 от Sparkfun electronics. Однако оказалось, что этот конкретный программатор не работает с преобразователями USB в последовательный порт, и прошло много времени с тех пор, как у меня был компьютер с «настоящим» последовательным портом.
После небольшого поиска я обнаружил, что Atmel заменила свой младший последовательный программатор, AVR ISP, настоящим USB-программатором, AVR ISP MkII, который можно приобрести за 34 доллара в компании Digi-key (номер детали.ATAVRISP2-ND). Это оказывается отличным решением по ряду причин. У него отличный дизайн: он простой, крошечный и поставляется в прочной, профессионально выглядящей коробке. (На фотографии Дня благодарения
это буква «E».)
Использование недорогого программатора от Atmel гарантирует, что очень большое количество других людей будет использовать того же самого программатора, а это значит, что он получит сильную поддержку со стороны сообщества разработчиков ПО с открытым исходным кодом. Наконец, оказывается, что «настоящих» USB-программистов немного легче настроить для программирования устройств (через avrdude), чем последовательных программистов.
(Если вы настоящий фанат открытого исходного кода, вы можете получить набор (за аналогичную цену) для создания собственного программатора с открытым исходным кодом, совместимого с AVR-ISP-MkII!)
Следующее, что мне потребовалось, это отладочная плата: плата для питания моего микроконтроллера и соответствующих подключений к программатору. Я нашел эту 20-контактную плату разработки AVR от Olimex за 16 долларов от Sparkfun. После того, как у меня были и программатор, и плата для разработки, я подумал, что могу попытаться соединить их вместе, и запрограммирует мне несколько микросхем .Однако оказывается, что AVR ISP MkII, наоборот, имеет новый тип 6-контактного разъема ISP (In System Programmable), который несовместим с 10-контактным разъемом ISP на коммутационной плате. (Вставьте звук того, как я бьюсь головой о стену здесь .)
К счастью, шесть контактов – это подмножество тех, что есть на 10-контактном разъеме, и можно сделать переходник. Соответствие можно найти на пятой странице этой заметки по применению Atmel. Чтобы по-прежнему иметь возможность использовать отладочную плату Olimex, я удалил оригинальный 10-контактный разъем ISP, добавил новый шестиконтактный разъем и проложил провода от шестиконтактного разъема к разъему, где был 10-контактный разъем. .Вы можете увидеть изображение модифицированной платы вверху. Оказывается, работает как шарм. Внизу фотографии вы можете увидеть шестиконтактный разъем, который я добавил, и вы также можете увидеть пучок проводов, идущих от этого разъема к отверстию, где был 10-контактный разъем.
Программное обеспечение
По большей части я следовал этим указаниям, данным Лией Бечли из CU Craft Technology Group.
Вы можете увидеть другие наборы инструкций для компиляции инструментальной цепочки AVR по следующим адресам:
Следуя указаниям Лии, все, казалось, работало гладко, пока я не добрался до той части, которая фактически пыталась запрограммировать устройство, где я получил код ошибки «avrdude был скомпилирован без поддержки USB.«Дох!
Путем быстрого поиска в Google я нашел эту страницу от людей, занимающихся Arduino, которые отмечают, что вам необходимо установить что-то под названием «libusb» для поддержки USB. (цифры.) Вы можете получить это здесь.
После установки libusb я вернулся в каталог avrdude и запустил sudo make uninstall, чтобы очистить старую установку, и снова запустил ./configure и sudo make install. (Если то, что я сказал, не имеет смысла, не волнуйтесь – это произойдет к тому времени, когда вы будете следовать указаниям Лии до этого момента!)
Следующая проблема: Скорость.Когда я впервые попытался установить связь с чипом, скорость была невыносимо медленной – несколько минут только для установления контакта. Оказывается, стандартная скорость программирования AVRISP MkII – это «ленивая улитка на барбитурах». По-видимому, это известная проблема, и есть две разные причины. Во-первых, при первом общении с устройством может быть большая задержка – минуты. Во-вторых, как только он начинает общаться, скорость все равно недопустима. Я нашел два исправления этих проблем, которые довели скорость до Чертовски быстро.
Как я узнал из этого источника, это предположительно можно исправить, вручную запрограммировав скорость программирования, напрямую связавшись с программистом. Для перехода в интерактивный режим введите на терминале
avrdude -p t2313 -c avrispmkII -P usb -tuF
Как только он (наконец) войдет в интерактивный режим (у меня это заняло около пяти минут), введите в командной строке «sck 10», а затем «quit», чтобы выйти из интерактивного режима.
Чтобы избавиться от начальной задержки, я нашел отличное предложение, заключающееся в том, чтобы вырезать часть кода, которая вызывала удивительно долгую задержку – что, по-видимому, можно сделать без каких-либо проблем.
После этого весь цикл компиляции и программирования занимает около пяти секунд. Хороший!
Теперь, когда у меня все настроено и работает, это действительно отличная система. Но с первого раза было немного сложно заставить его работать правильно.