Часы на attiny2313: Простые часы на Attiny 2313

Содержание

ЧАСЫ НА ATTINY

   Представляю вашему вниманию очень простые часы на МК Attiny2313. Особо в них в тот момент не нуждался, но руки чесались что нибудь сделать на микроконтроллере, в плане освоения его работы. Итак, меньше слов — больше дела. Схемотехника часов проста как валенок, смотрим принципиальную схему (а если надо её увеличить, чтоб получше разглядеть — кликаем):


   Далее, идём за детальками, печатаем рисунок, гладим, травим, сверлим, лудим, паяем… всё как обычно. В результате получаем нечто похожее на такую конструкцию:


   Теперь нужно прошить наш МК, я делал это в CodeVisionAVR. Всё необходимое, в т.ч. и печатная плата — в архиве. Прошиваем, фьюзы прописываем вот таким образом:


   Для удобства работы, приобрёл семисегментный четырёхразрядный индикатор CC56-12YWA.


   Сразу оговорюсь, что для экспериментов купил индикаторы красного, зелёного и оранжевого цвета.
Красный выигрывает по яркости, зато оранжевый смотрится просто замечательно!


   Ну что, собрали и проверили? Всё работает? Отлично. Теперь встаёт вопрос о блоке питания. Порылся в закромах, нашёл небольшой тороидальный трансформатор, по внешнему виду ватт на 15. Вроде бы сначала вопрос показался решённым, но замеряя напряжение во вторичке, вольтметр выдал мне 12,7 вольт. Многовато для схемы, стабилизатор греться будет, а значит радиатор ставить придётся… В общем не обрадовала меня эта преспектива. Вскрывать трансформатор и сматывать провод тоже не стал. Торик маленький, аккуратненький, пригодится ещё. Да и вдруг после этого жужжать начнёт. Сидя в раздумьях и крутя в руках трансформатор, у меня начал жаловаться телефон, мол разряжусь я скоро, подпитаться бы… и в этот момент вспомнил, что где-то в своих коробках видел ненужный зарядник от старой мобилы NOKIA. 


   Порылся, оказалось память меня не обманула, и он действительно лежал там. Смотрю параметры на выходе: 5 V, 350mA. Вполне нормально для питания электронных часов, подумал я, и начал его ковырять.

   Вскрыл, включил, проверил — на выходе оказалось 5,07 вольт.

   Теперь собираем всё это во что-нибудь подходящее по размерам, долго с корпусом не мучился, на глаза попалась пластмассовая мыльница — её и приспособил, правда получилось не совсем аккуратно, но зато работает, как часы 🙂 Удачи в сборке, с вами был Fenix.

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

   Форум по обсуждению материала ЧАСЫ НА ATTINY




ПОЧЕМУ ПРОВОДА НАГРЕВАЮТСЯ

Почему электрические провода нагреваются, откуда берется вообще тепло и сколько энергии теряется из-за сопротивления?


ПРИКУРИВАТЕЛЬ ОТ USB

Устройство для использования разъёма USB в качестве прикуривателя — разборка и схема.



Самые простые цифровые часы на Attiny2313. Схема

Это, наверное, самые простые цифровые часы реального времени. Они отображают реальное время в форме ЧЧ.ММ. Часы построены на Atmel AVR микроконтроллере ATtiny2313 (ATTiny2313, ATTiny2313V). Прошивку на данные часы можно скачать в конце статьи. Ниже также приведены настройки битов конфигурации.

Время отражается на четырехзначном светодиодном дисплее. Катоды светодиодных индикаторов подключены к порту «B», аноды — к битам 0, 1, 4 и 5 порта «D».

Использование сверхъяркого светодиодного дисплея позволяет отказаться от коммутирующих транзисторов.

Дисплей управляется мультиплексным способом и подключается как обычно мультиплексные дисплеи. В прототипе были применены 2 двузначных дисплея DA56-11SRWA.

Настройка производится простым нажатием кнопок «часы» и «минуты». Резисторы R1 и R2 защищают микроконтроллер в случае, если выводы PD2 и PD3 были случайно запрограммированы как выходы. Теоретически их можно убрать после успешного прохождения теста.

Резисторы R3…R10 определяют текущий ток отдельных сегментов дисплея и, следовательно, его яркость. Они подобраны таким образом, чтобы ток не превышал максимальный выходной ток (40 мА) микроконтроллера.

Часы запитаны от блока питания на 5В. Ток потребления данных часов при 5 В составляет от 15 до 30 мА в зависимости от количества светящихся сегментов (большая часть — это потребление светодиодного дисплея).

Микроконтроллер ATTiny2313 работает от 2,7 В, а ATtiny2313А и ATTiny2313V уже работают от 1,8 В. При таком низком напряжении дисплей не светиться, и это удобно при обеспечении резервного питания.

Тестер транзисторов / ESR-метр / генератор

Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…

Часы тактируются внешним кристаллом с частотой 4 МГц (XTAL). Тактовую частоту можно точно настроить, изменив значения емкости конденсаторов C1 и C2 (меньшее значение увеличивает частоту быстрее).

Скачать прошивку (545 bytes, скачано: 51)

Часы за два дня на 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..»

Часы на ATtiny2313 и светодиодной матрице 8*8

Часы собранные на микроконтроллере ATtiny2313 и светодиодной матрице показывают время в 6-ти различных режимах.

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

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

Это хобби-проект, потому точность хода часов зависит лишь от калибровки внутреннего генератора контроллера. Я не использовал кварц в этом проекте, так как он занимал бы два нужных мне вывода ATtiny2313. Кварц может быть использован для повышения точности в альтернативном проекте (печатной плате).

Режимы отображения

Режим ЧЧ:ММ, прокрутка часов и минут, разделенными двоеточием.
Режим секунд, индикация только секунд.
Режим TIX, светодиодная матрица разделена на квадранты, верхние квадранты показывают часы в кодировке BCD (двоично десятичное кодирование). Они представлены количеством точек для обозначения цифр. Нижние квадранты показывают минуты в BCD. Для 9:36 в верхней половине 0 точек + 9 точек и 3 точки + 6 точек в нижней половине.
Режим игры в кости, светодиодная матрица разделена на два набора «кубиков». Верхняя пара, показывает часы от 1 до 12, нижняя пара игральных костей показывает минуты с шагом 5 минут. Для 9:45 кости отобразят 9 (верхний) + 9 (нижний) (9*5=45 мин).
Двоичный режим, часы, минуты и секунды отображаются в двоичном виде в разных строках светодиодной матрицы. Строки 0 и 1 (сверху) часы, строка 2 — пустая, строки 3 и 4 — минуты, строка 5 — пустая, строки 6 и 7 — секунды.
  Спящий режим используется чтобы продлить срок службы батареи, но из-за этого точность хода часов снижается. Сторожевой таймер 8 раз в секунду будит систему, чтобы обновить ход времени и определить нажата ли кнопка.

Схема устройства

ATtiny2313 работает на частоте 1 МГц, для этого нужно использовать следующие настройки битов конфигурации:

lfuse: 0x64
hfuse: 0xdf
efuse: 0xff

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

Видео работы устройства


Файлы к статье «Часы на ATtiny2313 и светодиодной матрице 8*8»
Описание:

Исходный код(Си), файлы прошивок микроконтроллера для матриц 788ASR и 1088AS

Размер файла: 9.77 KB Количество загрузок: 196 Скачать

Часы на микроконтроллере msp430. Часть 3. Объединяем периферию.

Ранее я описал методы работы микроконтроллера от Texas Instruments, msp430g2553 с различными устройствами. Это были устройства индикации (на контроллерах hd44780 и tm1638), датчик температуры ds18b20, и часы реального времени ds1394. Теперь настало время объединить эти девайсы. Так уж получилось, что у меня уже была плата, на которой добрыми китайцами собран 7-сегментный индикатор, управляемый контроллером tm1638, и, недолго думая, я решил изготовить плату, которая бы конструктивно подходила к плате индикации от добрых китайцев. Вот, что из этого у меня вышло:

Это — сама плата. Как водится, — прекрасно получилось её изготовить с помощью фоторезистивной технологии. Не обошлось без одной не очень приятной мелочи — после лужения оказался одна лишняя перемычка, которую почти не было видно, между двумя стабилизаторами — на 5 и на 3,3В, из-за этого микроконтроллер при включении питался от 5В, это его чуть не убило. Я сначала грешил на сам стабилизатор, даже пару раз его поменял, пока не обнаружил этот досадный волосок из припоя.

Получилась в итоге вот такая конструкция:

Сначала это было пассивное устройство, простые часы, которые показывали на светодиодном индикаторе день недели, дату, время и температуру в цикле, затем удалось написать для него меню, с помощью которого можно устанавливать часы, дату, время срабатывания будильника, в дальнейшем добавлена установка яркости светодиодного индикатора, благо она регулируется с помощью контроллера tm1638. Может быть позднее научу часики автоматически регулировать яркость индикатора.

Сопряжение индикатора, запитанного от 5В, с микроконтроллером msp43g2553, работающим от 3,3В, получилось просто, не пришлось городить никаких волшебных методов, так как у драйвера индикатора выход данных выполнен на внутреннем ключе с открытым истоком. Необходимо было только демонтировать подтягивающие резисторы на самой плате индикатора (выполнены сборкой, обозначенной «R1»). Необходимо только учесть, что в этом случае блок индикации может потреблять до 0,2А от источника на 5В. Если питать часы при этом от источника, скажем, на 12В, то стабилизатор будет неплохо греться (выделяемая мощность до 0,2*(12-5) = 1,4Вт)

Для управления внешней нагрузкой я сделал 2 выхода, каждый из которых может управлять нагрузкой до 0,1А, к ним можно подключать например реле, или как у меня, — светильник в виде шара. События, управляющие нагрузкой, пока можно менять, только изменяя программу, позднее в планах написать что-то более универсальное и чтобы управлялось непосредственно с часов. Напряжение питания внешней нагрузки можно менять с помощью джампера на плате часов, варианты — 5В и напряжение источника.

Также предусмотрены дополнительные выводы с контроллера на перспективу (их можно использовать например как входы) и разъём для программирования, кнопка сброса на плате.

Верхний разъём 3,5мм на плате — для подключения датчика ds18b20, нижние два — подключение нагрузки. Питание часов осуществляется с помощью бывшего зарядного устройства от мобильника (оно выдаёт около 6,8В и ток до 0,8А).

Добавил схему девайса:

Резисторы R11 и R12 не используются, вместо них — внутренние резисторы подтяжки. Так же на схеме нет индуктивности, которая установлена на плате в качестве перемычки. На плате предусмотрена возможность питания индикатора как от 5В, так и от 3,3. Для этого можно менять положение перемычки, идущей к питанию индикатора.

Исходный код проекта часов на микроконтроллере msp430g2553. Печатная плата в Sprint Layout.

Такая вот вундервафля-всё-в-одном.

Видео:

Это — реально простые часы на микроконтроллере msp430g2553, ака launchpad (ланчпад), которые может повторить каждый. Кроме того — я публикую исходный код, который отдаю по лицензии «делайте с этим что хотите». Часы имеют все основные функции часов, как то — показ дня недели, даты, времени, температуры, с программируемым будильником.

Простые электронные часы — Два выходных дня

Простые электронные часы были изготовлены на случай невозможности использовать для установки показаний времени спутниковую систему навигации (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 и индикатора с общим катодом находится здесь. Эта управляющая программа мною не проверялась.

 

 

 

 

Часы на микроконтроллере AVR с DS1307. Часы электронные светодиодные

Привет, geektimes! В первой части статьи были рассмотрены принципы получения точного времени на самодельных часах. Пойдем дальше, и рассмотрим, как и на чем это время лучше выводить.

Итак, у нас есть некая платформа (Arduino, Raspberry, PIC/AVR/STM-контроллер, etc), и стоит задача подключить к нему некую индикацию. Есть множество вариантов, которые мы и рассмотрим.

Сегментная индикация

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

Осторожно, траффик!

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

Есть 1001 статья как подключить светодиод к микроконтроллеру, гугл в помощь. Сложности начинаются тогда, когда мы захотим сделать большие часы — ведь смотреть на мелкий индикатор не особо удобно. Тогда нам нужны такие индикаторы (фото с eBay):

Они питаются от 12В, и напрямую от микроконтроллера просто не заработают. Тут нам в помощь приходит микросхема CD4511 , как раз для этого предназначенная. Она не только преобразует данные с 4-битной линии в нужные цифры, но и содержит встроенный транзисторный ключ для подачи напряжения на индикатор. Таким образом, нам в схеме нужно будет иметь «силовое» напряжение в 9-12В, и отдельный понижающий преобразователь (например L7805) для питания «логики» схемы.

Матричные индикаторы

По сути, это те же светодиоды, только в виде матрицы 8х8. Фото с eBay:

Продаются на eBay в виде одиночных модулей либо готовых блоков, например по 4 штуки. Управление ими весьма просто — на модулях уже распаяна микросхема MAX7219 , обеспечивающая их работу и подключение к микроконтроллеру с помощью всего лишь 5 проводов. Для Arduino есть много библиотек, желающие могут посмотреть код.
Плюсы: невысокая цена, хорошие углы обзора и яркость.
Минус: невысокое разрешение. Но для задачи вывода времени вполне достаточно.

ЖК-индикаторы

ЖК-индикаторы бывают графические и текстовые.

Графические дороже, однако позволяют выводить более разнообразную информацию (например график атмосферного давления). Текстовые дешевле, и с ними проще работать, они также позволяют выводить псевдографику — есть возможность загружать в дисплей пользовательские символы.

Работать с ЖК-индикатором из кода несложно, но есть определенный минус — индикатор требует много управляющих линий (от 7 до 12) от микроконтроллера, что неудобно. Поэтому китайцы придумали совместить ЖК-индикатор с i2c-контроллером, получилось в итоге очень удобно — для подключения достаточно всего 4х проводов (фото с eBay).


ЖК-индикаторы достаточно дешевые (если брать на еБее), крупные, их просто подключать, и можно выводить разнообразную информацию. Единственный минус это не очень большие углы обзора.

OLED-индикаторы

Являются улучшенным продолжением предыдущего варианта. Варьируются от маленьких и дешевых с диагональю 1.1″, до больших и дорогих. Фото с eBay.

Собственно, хороши всем кроме цены. Что касается мелких индикаторов, размером 0.9-1.1″, то (кроме изучения работы с i2c) какое-то практическое применение им найти сложно.

Газоразрядные индикаторы (ИН-14, ИН-18)

Эти индикаторы сейчас весьма популярны, видимо из-за «теплого лампового звука света» и оригинальности конструкции.


(фото с сайта nocrotec.com)

Схема их подключения несколько сложнее, т.к. эти индикаторы для зажигания используют напряжение в 170В. Преобразователь из 12В=>180В может быть сделан на микросхеме MAX771 . Для подачи напряжения на индикаторы используется советская микросхема К155ИД1 , которая специально для этого и была создана. Цена вопроса при самостоятельном изготовлении: около 500р за каждый индикатор и 100р за К155ИД1, все остальные детали, как писали в старых журналах, «дефицитными не являются». Основная сложность тут в том, что и ИН-хх, и К155ИД1, давно сняты с производства, и купить их можно разве что на радиорынках или в немногих специализированных магазинах.

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

Arduino

Самый простой вариант для начинающих. Готовая плата стоит недорого (около 10$ на eBay с бесплатной доставкой), имеет все необходимые разъемы для программирования. Фото с eBay:

Под Arduino есть огромное количество разных библиотек (например для тех же ЖК-экранов, модулей реального времени), Arduino аппаратно совместима с различными дополнительными модулями.
Главный минус: сложность отладки (только через консоль последовательного порта) и довольно-таки слабый по современным меркам процессор (2КБайт RAM и 16МГц).
Главный плюс: можно сделать много чего, практически не заморачиваясь с пайкой, покупкой программатора и разводкой плат, модули достаточно соединить друг с другом.

32-разрядные процессоры STM

Для тех кто захочет что-то помощнее, есть готовые платы с процессорами STM, например плата с STM32F103RBT6 и TFT-экраном. Фото с eBay:

Здесь мы уже имеем полноценную отладку в полноценной IDE (из всех разных мне больше понравилась Coocox IDE), однако понадобится отдельный программатор-отладчик ST-LINK с разъемом JTAG (цена вопроса 20-40$ на eBay). Как вариант, можно купить отладочную плату STM32F4Discovery, на которой этот программатор уже встроен, и его можно использовать отдельно.

Raspberry PI

И наконец, для тех кто хочет полной интеграции с современным миром, есть одноплатные компьютеры с Linux, всем уже наверное известные Raspberry PI. Фото с eBay:

Это полноценный компьютер с Linux, гигабайтом RAM и 4х-ядерным процессором на борту. С краю платы выведена панель из 40 пинов, позволяющая подключать различную периферию (пины доступны из кода, например на Python, не говоря о C/C++), есть также стандартный USB в виде 4х разъемов (можно подключить WiFi). Так же есть стандартный HDMI.
Мощности платы хватит к примеру, не только чтобы выводить время, но и чтобы держать HTTP-сервер для настройки параметров через web-интерфейс, подгружать прогноз погоды через интернет, и так далее. В общем, простор для полета фантазии большой.

С Raspberry (и процессорами STM32) есть одна единственная сложность — ее пины используют 3-вольтовую логику, а большинство внешних устройств (например ЖК-экраны) работают «по старинке» от 5В. Можно конечно подключить и так, в принципе заработает, но это не совсем правильный метод, да и испортить плату за 50$ как-то жалко. Правильный способ — использовать «logic level converter», который на eBay стоит всего 1-2$.
Фото с eBay:

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

ESP8266

Способ скорее экзотический, но довольно-таки перспективный в силу компактности и дешевизны решения. За совсем небольшие деньги (около 4-5$ на eBay) можно купить модуль ESP8266, содержащий процессор и WiFi на борту.
Фото с eBay:

Изначально такие модули предназначались как WiFi-мост для обмена по serial-порту, однако энтузиастами было написано множество альтернативных прошивок, позволяющих работать с датчиками, i2c-устройствами, PWM и пр. Гипотетически вполне возможно получать время от NTP-сервера и выводить его по i2c на дисплей. Для тех кто хочет подключить много различной периферии, есть специальные платы NodeMCU с большим числом выводов, цена вопроса около 500р (разумеется на eBay):

Единственный минус — ESP8266 имеет очень мало памяти RAM (в зависимости от прошивки, от 1 до 32КБайт), но задача от этого становится даже интересней. Модули ESP8266 используют 3-вольтовую логику, так что вышеприведенный конвертор уровней тут также пригодится.

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

Я в итоге остановился на использовании Raspberry PI с текстовым индикатором, настроенным на работу с псевдографикой (что вышло дешевле чем графический экран той же диагонали). Сфоткал экран настольных часов во время написания этой статьи.

Часы выводят точное время, взятое из Интернета, и погоду которая обновляется с Яндекса, все это написано на Python, и вполне работает уже несколько месяцев. Параллельно на часах запущен FTP-сервер, что позволяет (вкупе с пробросом портов на роутере) обновить на них прошивку не только из дома, но и из любого места где есть Интернет. Как бонус, ресурсов Raspberry в принципе хватит и для подключения камеры и/или микрофона с возможностью удаленного наблюдения за квартирой, или для управлением различными модулями/реле/датчиками. Можно добавить всякие «плюшки», типа светодиодной индикации о пришедшей почте, и так далее.

PS: Почему eBay?
Как можно было видеть, для всех девайсов приводились цены или фото с ебея. Почему так? К сожалению, наши магазины часто живут по принципу «за 1$ купил, за 3$ продал, на эти 2 процента и живу». В качестве простого примера, Arduino Uno R3 стоит (на момент написания статьи) 3600р в Петербурге, и 350р на eBay с бесплатной доставкой из Китая. Разница действительно на порядок, безо всяких литературных преувеличений. Да, придется подождать месяц чтобы забрать посылку на почте, но такая разница в цене думаю, того стоит. Но впрочем, если кому-то надо прямо сейчас и срочно, то наверно и в местных магазинах есть выбор, тут каждый решает сам.

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

Схема электрическая самодельных часов с термометром

Микроконтроллер PIC18F25K22 берёт на себя всю обработку данных и отсчёт времени, а на долю ULN2803A остаётся согласование его выходов со светодиодным индикатором. Небольшая микросхема DS1302 работает как таймер точных секундных сигналов, частота её стабилизирована стандартным кварцевым резонатором 32768 Гц. Это несколько усложняет конструкцию, зато вам не придётся постоянно подстраивать и корректировать время, которое будет неизбежно запаздывать или спешить, если обойтись случайным ненастроенным кварцевым резонатором на несколько МГц. Подобные часы скорее простая игрушка, чем качественный точный хронометр.

При необходимости, датчики температуры могут быть расположены далеко от основного блока — они соединяются с ним трёхпроводным кабелем. В нашем случае один температурный датчик установлен в блок, а другой расположен снаружи, на кабеле длинной около 50 см. Когда пробовали кабель 5 м, то тоже прекрасно функционировало.

Дисплей часов изготовлен из четырех больших светодиодных цифровых индикаторов. Первоначально они были с общим катодом, но изменены на общий анод в финальной версии. Вы можете ставить любые другие, потом просто подберёте токоограничительные резисторы R1-R7 исходя из требуемой яркости. Можно было разместить его на общей, с электронной частью часов, плате, но так гораздо универсальнее — вдруг вы захотите поставить очень большой LED индикатор, чтоб их было видно на дальнем расстоянии. Пример такой конструкции уличных часов есть тут.

Сама электроника запускается от 5 В, но для яркого свечения светодиодов необходимо использовать 12 В. Из сети, питание поступает через понижающий трансформатор адаптер на стабилизатор 7805 , который образует напряжение строго 5 В. Обратите внимание на небольшую зелёную цилиндрическую батарейку — она служит источником резервного питания, на случай пропадания сети 220 В. Её не обязательно брать на 5 В — достаточно литий-ионного или Ni-MH аккумулятора на 3,6 вольта.

Для корпуса можно задействовать различные материалы — дерево, пластик, металл, либо встроить всю конструкция самодельных часов в готовый промышленный, например от мультиметра, тюнера, радиоприёмника и так далее. Мы сделали из оргстекла, потому что оно легко обрабатывается, позволяет увидеть внутренности, чтоб все видели — эти часы собраны своими руками. И, главное, оно было в наличии:)

Здесь вы сможете найти все необходимые детали предлагаемой конструкции самодельных цифровых часов, в том числе схему, топологию печатной платы, прошивки PIC и

Светодиодные простые часы можно сделать на дешёвом контроллере PIC16F628A. Конечно, в магазинах полно различных электронных часов, но по функциям у них может или нехватать термометра, или будильника, или они не светятся в темноте. Да и вообще, иногда прото хочется что-то спаять сам, а не покупать готовое. Чтобы увеличить рисунок схемы — клац.

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


Все знают, что кварцевые резонаторы не идеальные по точности, и в течение нескольких недель набегает погрешность. Для борьбы с этим делом, в часах предусмотрена корекция хода, которая устанавливается параметрами SH и SL . Подробнее:

SH=42 и SL=40 — это вперёд на 5 минут в сутки;
SH=46 и SL=40 — это назад на 3 минуты в сутки;
SH=40 и SL=40 — это вперёд на 2 минуты в сутки;
SH=45 и SL=40 — это назад на 1 минуту в сутки;
SH=44 и SL=С0 — это вперёд на 1 минуту в сутки;
SH=45 и SL=00 — это корекция отключена.

Таким образом можно добится идеальной точности. Хотя придётся несколько раз погонять коррекцию, пока выставите идеально. А теперь наглядно показывается работа электронных часов:

температура 29градусов цельсия

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

На фото прототип, собранный мной для отладки программы, которая будет управлять всем этим хозяйством. Вторая arduino nano в верхнем правом углу макетки не относится к проекту и торчит там просто так, внимание на нее можно не обращать.

Немного о принципе работы: ардуино берет данные у таймера DS323, перерабатывает их, определяет уровень освещенности с помощью фоторезистора, затем все посылает на MAX7219, а она в свою очередь зажигает нужные сегменты с нужной яркостью. Так же с помощью трех кнопок можно выставить год, месяц, день, и время по желанию. На фото индикаторы отображают время и температуру, которая взята с цифрового термодатчика

Основная сложность в моем случае — это то, что 2.7 дюймовые индикаторы с общим анодом, и их надо было во первых как то подружить с max7219, которая заточена под индикаторы с общим катодом, а во вторых решить проблему с их питанием, так как им нужно 7,2 вольта для свечения, чего одна max7219 обеспечить не может. Попросив помощи на одном форуме я получил таки ответ.

Решение на скриншоте:


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

Для теста подключил один индикатор, все работает, ничего не дымит

Начинаем собирать.

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

Принцип крепления индикаторов оставил тот же, как и на .

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

Процесс разметки



Затем с помощью шаблона сверлим отверстия в нужных местах и примеряем все компоненты. Все встало безупречно.

Рисуем дорожки и травим.


купание в хлорном железе

Готово!
плата управления:


плата индикации:


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

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


плата управления сзади

Плата индикации сзади:

Ужасный монтаж смд:


Запуск

После припаивания всех шлейфов, кнопок и датчиков пришло время все это включить. Первый запуск выявил несколько проблем. Не светился последний большой индикатор, а остальные светились тускло. С первой проблемой расправился пропаиванием ножки смд-транзистора, со второй — регулировкой напряжения, выдаваемого lm317.
ОНО ЖИВОЕ!

Данные часы собранны на хорошо известном комплекте микросхем — К176ИЕ18 (двоичный счетчик для часов с генератором сигнала звонка),

К176ИЕ13 (счетчик для часов с будильником) и К176ИД2 (преобразователь двоичного кода в семисегментный)

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

времени следует нажать кнопку S4 (Time Set) и придерживая ее нажать кнопку S3 (Hour) — для установки часов или S2 (Min) — для установки

минут. При этом показания соответствующих индикаторов начнут изменяться с частотой 2 Гц от 00 до 59 и далее снова 00. В момент перехода

от 59 к 00 показания счетчика часов увеличатся на единицу. Установка времени будильника происходит так же, только придерживать нужно

кнопку S5 (Alarm Set). После установки времени срабатывания будильника нужно нажать кнопку S1 для включения будильника (контакты

замкнуты). Кнопка S6 (Reset) служит для принудительного сброса индикаторов минут в 00 при настройке. Светодиоды D3 и D4 играют роль

разделительных точек, мигающих с частотой 1 Hz. Цифровые индикаторы на схеме расположены в правильном порядке, т.е. сначала идут

индикаторы часов, две разделительные точки (светодиоды D3 и D4) и индикаторы минут.

В часах использовались резисторы R6-R12 и R14-R16 ваттностью 0,25W остальные — 0,125W. Кварцевый резонатор XTAL1 на частоту 32 768Hz —

обычный часовой, Транзисторы КТ315А можно заменить на любые маломощные кремниевые соответствующей структуры, КТ815А — на транзисторы

средней мощности со статическим коэффициентом передачи тока базы не менее 40, диоды — любые кремниевые маломощные. Пищалка BZ1

динамическая, без встроенного генератора, сопротивление обмотки 45 Om. Кнопка S1 естественно с фиксацией.

Индикаторы использованы TOS-5163AG зеленого свечения, можно применить любые другие индикаторы с общим катодом, не уменьшая при этом

сопротивление резисторов R6-R12. На рисунке Вы можете наблюдать распиновку данного индикатора, выводы показаны условно, т.к. представлен

вид сверху.

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

частотомером период колебаний 1 с на выводе 4 микросхемы U1. Настройка генератора по ходу часов потребует значительно большей затраты

времени. Возможно, придется также подстроить яркость свечения светодиодов D3 и D4 подбором сопротивления резистора R5, чтобы все

светилось равномерно ярко. Потребляемый часами ток не превышает 180 мА.

Часы питаются от обычного блока питания, собранного на плюсовом микросхемном стабилизаторе 7809 с выходным напряжением +9V и током 1,5A.

Двухдневные часы на 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-BSR) общий анод
  • 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 = Македек (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 .. »

Бинарные часы ATTINY | VLZQZ electronics

Бинарные часы, созданные с использованием ATTINY13, DS1302 и запрограммированные с использованием Arduino. Исходный код находится на GitHub.

Он основан на схемах RandomWatch, созданных людьми из RANDOM DATA.

Нажатие кнопки показывает время в течение нескольких секунд (минуты слева и часы справа), затем показывает дату и месяц (день слева и бабочка справа).

Описание цепи

Я следовал схеме, предоставленной людьми из RANDOM DATA. Он в основном подключает прибор к DS1302 и к светодиодной матрице через резисторы. Схема питается от плоского элемента питания 3.3В (CR2032).

Поскольку основным ограничением часов является пространство, я решил построить схему на печатной плате, хотя и односторонней, поскольку мне было легче ее протравить. Файлы pcb также есть на GitHub).

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

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

Из-за ограниченного пространства и одностороннего травления контакты ISP в часах нестандартны. Распиновка контактов часов:

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

Программное обеспечение

Код часов в основном заставляет ATTINY считывать (или устанавливать) время на DS1302 и включать соответствующие светодиоды для отображения времени и даты при нажатии кнопки. После этого часы переходят в спящий режим, когда их выводят из спящего режима еще одним нажатием кнопки.

Чтобы иметь возможность программировать ATTINY13 с Arduino, я использовал MicroCore MCUdude.

Для загрузки кода в часы необходим программист ISP. Если у вас его нет, вы можете использовать свой Arduino как один.Чтобы продлить срок службы батареи, я заставил ATTINY использовать внутреннюю частоту 128 кГц, поэтому требуется небольшая модификация в файле эскиза Arduino ISP.

Эту строку: #define SPI_CLOCK (1000000/6) следует заменить на эту: #define SPI_CLOCK (128000/6) .

Я использовал Charlieplexing, чтобы иметь возможность включать и выключать 10 светодиодов с помощью 4 контактов ATTINY.

Можно использовать любой ATTINY (с такой же распиновкой), поскольку код подходит для ATTINY13 и не использует никаких функций, специфичных для микросхемы.

Материалы

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

Вам понадобится: Для этой точной сборки:
1 x ATTINY13 лазерный резак и 3 мм прозрачный акрил
1 x DS1302 Винты 4 x 2 мм (высота прибл.10 мм)
1 x 32,768 кГц, кристалл Гайки 4 x 2 мм
1 кнопка Loctite (или любой суперклей)
1 батарейка CR2032 (без изображения) ремешок в стиле НАТО
1 батарейный отсек CR2032
2 8-контактных гнезда для микросхем (опция для бесстрашных)
4 резистора по 100 Ом
Светодиоды 10 x 3 мм
6 штифтов с вилкой (без изображения)
способ сделать печатную плату
Arduino (для использования в качестве ISP)
Механическая конструкция

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

Использование часов

Хотя конструкция работает и может использоваться в повседневной жизни, конструкция относительно хрупкая и не устойчива к воде или ударам. Вот некоторые соображения, которые следует учитывать при использовании часов.

Установка времени

Это один из основных недостатков данной конструкции. Чтобы установить время на часах, необходимо перезагрузить код. (поэтому вам нужно находиться рядом с компьютером, на котором установлена ​​Arduino IDE).

Срок службы батареи

Прямо сейчас бинарные часы attiny потребляют 44 мкА в спящем режиме. Это означает, что обычного CR2032 хватает примерно на 6 месяцев.

Заключение

В проекте требуется способ установки времени без использования компьютера и Arduino IDE.

Я более внимательно прочитал техническое описание DS1302 после того, как построил схему, и кажется, что подключение вывода 8 вместо вывода 1 к VCC значительно снизит энергопотребление (микросхема будет потреблять 200 нА вместо 15 мкА).

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

ATtiny — gr33 онлайн

Преамбула

Следуя примеру крошечной и используя плату для разработки ATtiny, я решил, что пришло время заставить работать плату DigiStump / DigiSpark ATtiny85 (которую я заказал более двух месяцев назад), поскольку мне не удалось получить ATtiny85. и совет по развитию, чтобы работать ранее.

На этот раз все было намного проще…

Читать далее Digistumped?

Преамбула

Что именно заставляет кристалл тикать?

Читать далее Crystal quest

Преамбула

Код, заставляющий ATtiny15 выводить тактовый сигнал 2 МГц.

Поскольку в таблице данных Atmel рекомендуются частоты не выше 1,75 МГц, вам нужно будет использовать ATtiny25 / 45/85 для частот выше этой.

Читать далее Крошечный осциллятор

Преамбула

Вслед за Frequency Abacuses, из Re: Ten Dollar Frequency Counter’s — Thread # 2, есть ссылка, Schaltungsbeschreibung ‘reziproker Frequenzzähler 0,0025Hz-50MHz’, на создание вашего собственного частотомера:

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

Вы умеете программировать ATtiny2313? Если да, вы можете использовать «fmeter20.zip» для получения частотомера 0,005 Гц — 1 МГц (до 200 МГц с предварительным делителем). При 20 МГц скорость передачи данных Xtal составляет 38400. ЖК-дисплей не нужен вообще.
http://mino-elektronik.de/fmeter/fmeter.htm

Другой низкочастотный счетчик можно найти на плате Arduino UNO с последовательным выводом данных. Первая версия 0,016 Гц — 250 кГц и 2. версия с внутренним предварительным делителем до 7 МГц: http: // mino-elektronik.de / fmeter / fm_software.htm # bsp7

Здесь показан простой 5-значный счетчик: http://mino-elektronik.de/fmeter/fm_software.htm#bsp13

Извините за немецкое описание.

Ниже немецкий перевод… а версия ATtiny2313 находится внизу страницы.

Продолжить чтение Создайте свой собственный частотомер ATtiny2313

Преамбула

Вслед за крошечной, наконец-то прибыла моя плата для разработки вместе с ATtiny85, и вот как ее использовать… и это не так просто, как могло бы показаться.

Эти инструкции и советы по устранению неполадок должны работать на ATtiny 85/45/25

Читать далее Использование платы для разработки ATtiny

Преамбула

В продолжение «Крошечного» и упущенной возможности посетить семинар и сделать 8-битный Mixtape Neo, я подумал, что посмотрю схему и код…

Neo — это простое устройство, которое воспроизводит ByteBeat и предоставляет механический интерфейс (два поворотных регулятора и несколько кнопок) для изменения текущего воспроизводимого ByteBeat, см. ByteBeat на Arduino.Как следует из названия, примерно половина устройства (и кода) предназначена для использования светодиодной библиотеки Adafruit NeoPixel. Изучив код 8Bit-Mixtape-NEO / Code / NEO_8Pixel-OneLiners / NEO_8Pixel-OneLiners.ino, левый поворотный регулятор управляет скоростью, правая рука просто изменяет визуальные эффекты, а кнопка выбирает, какой из семи байтовых битов является играет или играет одну мелодию в случае FamilyMart.ino.

Представленное изображение взято из Центра альтернативных исследований кокоса — 8Bit Mixtape Neo

Читать далее 8bit Mixtape Neo

Преамбула

Недавно меня заинтересовала серия ATtinyXX… в частности, ATtiny85, когда мой друг Павел из Bang Sue Electrix рассказал мне о 8BitMixtapeNEO.

Читать далее Крошечный

аттини — OSH Park

tl; dr Это фундамент для носимой платформы. Это ремешок для часов НАТО, продетый через печатную плату с держателем батарейки типа «таблетка» между печатной платой и ремешком. На этот раз я использую Attiny85, но его можно использовать с большинством чипов / плат для разработчиков. Это доказательство концепции, позволяющей устранить любые проблемы […]

через носимые устройства Attiny — Facelesstech

Носимый ATTiny от Facelesstech

В эту субботу, 2 сентября, у нас будет однодневный семинар по сборке наборов Tinusaur для тех, кто поддержал нашу краудфандинговую кампанию на Indiegogo.Он будет проходить в Варне, Болгария, нашим хозяином будет VarnaLab — местное хакерское пространство. Мы изучим основы электронных компонентов, микроконтроллеров, в частности ATtiny85 и, конечно же, […]

через Мастерскую: Сборка набора Тинусаур в Варне, Болгария — Проект Тинусаур

Мастер-класс: Сборка набора Тинусавр в Варне, Болгария

Из блога Стива Мэйза «Перезагрузка электроники»:

От прототипа до прототипа

В последней записи о контроллере синхронизированного светодиодного освещения я понял, что не существует рабочих примеров драйвера I²C для ATtiny20.Затем мне пришлось проработать лист данных, чтобы реализовать свой собственный. После этого я мог начать прошивку приложения и заставить плату действительно работать. Вот где мое доказательство концепции становится прототипом.

От подтверждения концепции до прототипа

Hackaday написал об изящном взломе Джо Гранда:

Зубная щетка [Joe Grand’s] воспроизводит не отстойную музыку

Это не слишком интересно, что у [Джо Гранда] есть зубная щетка, которая воспроизводит музыку в вашей голове.На самом деле это уловка, которую проделал производитель. Дело в том, что [Джо] дал своей зубной щетке слот для SD-карты, чтобы слушать музыку, которая не отстой. Донорское оборудование жертвы для этого проекта — детская зубная щетка под названием Tooth Tunes.…

Джо опубликовал полную документацию по проекту на своем сайте :

Печатная плата находится в общем на OSH Park:

Tooth Tunes Взлом


Джо описывает проект в этом видео:

Послушайте, как работает зубная щетка:

Музыкальная зубная щетка Джо Гранда

Lucky Resistor разработал этот программный адаптер для ATtiny13 и подобных чипов:

Универсальный адаптер для программирования ATtiny

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

Адаптер имеет небольшой 50-миллиметровый JTAG-разъем, через который Atmel ICE может быть подключен к плате. Также есть место для мини-разъема USB, который используется для питания MCU во время программирования. Небольшой двухпозиционный переключатель используется для питания MCU, а светодиодный индикатор размещен в качестве индикатора, чтобы увидеть, есть ли питание на MCU.

Один из адаптеров DIL / ZIF устанавливается поверх гнездовых разъемов.Большинство адаптеров для SO-8, SO-14 и SO-16 будут работать с этой платой.

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

Файлы дизайна доступны на GitHub:

LuckyResistor / ATtinyAdapter

LuckyResistor поделился платой в OSH Park:

Адаптер ATtiny


Универсальный адаптер для программирования ATtiny

Невен Боянов запустил новую кампанию Tinusaur на IndieGoGo:

Учись, учи и твори вместе с тинусавром

Tinusaur питается от микроконтроллера Atmel ATtiny85.

Мы хотим снизить стоимость базовых «облегченных» плат
до 3 долларов и позволить большему количеству людей получить их.

Доска Tinusaur за 3 доллара на IndieGoGo

DanR поделился этой платой ночного освещения с датчиком движения:

ATtiny45 Ночник с датчиком движения V1.2 D

Этот свет питается от ATtiny45 / 85, который включает 14 светодиодов, когда обнаруживается движение, и он находится в темной комнате.Датчик освещенности на плате не даст включиться свету, если он находится в достаточно освещенном помещении.

Он оснащен цилиндрической вилкой для подачи питания, в частности, эта модель с регулятором напряжения L7805CV.

ATtiny45 ночник с датчиком движения

Ура, еще один мини-проект с ATtiny10! Некоторое время назад я разработал схему для игры в электронные кости с двумя линиями ввода-вывода. Я наконец нашел время и мотивацию для создания небольшого дизайна, используя его как запись для hackaday 1k compo

via DICE10 — электронная игральная кость, управляемая двумя GPIO.- Блог Тима

DICE10: электронные кости, управляемые двумя GPIO

jonmash разработал эту простую плату с двумя процессорами ATTiny, питаемыми от разъема micro USB.

Вход питания Micro USB для двух микроконтроллеров ATTiny. На этой плате есть два разных ATTinys. ATTiny84 и ATTiny85. Эти микроконтроллеры хороши тем, что их можно использовать без дополнительных компонентов. Фактически, на этой плате единственными дополнительными компонентами являются конденсаторы фильтра для шины питания и заголовок для интерфейса программатора.

Я обнаружил множество медных контактных площадок для каждого контакта. Это упрощает добавление светодиодов или подключение практически к любому датчику.

jonmash поделился доской на OSH Park:

ATTiny-Widget


Смотрите два дня на attiny2313 и ds1307

Motive
Начнем с того, что каждый человек живет во времени, которое, к сожалению, невозможно остановить. А поскольку мы живем в этом мире, давайте смотреть на время и не терять ни минуты, теряя его.Для этого я сделал это замечательное устройство, названное clock .


Начнем!

На улице взошло солнце, нарисовал доску и поцарапал ее на ксероксе, чтобы распечатать гонорар

Тогда знающие, как делают платы, поймут, что я переводил рисунок утюгом на текстолит , травленые, луженые и т. д., а тем, кто не в курсе, читайте в Интернете о изготовлении плат по методу LUT — (Laser-iron technology).
Забыл результат взять, но думаю, что качество будет видно на готовой плате:
‘)

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

  • 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 = Порт вывода 1 = 1 Ожидание 10 Порт 1 = 0 Ожидание 70 Порт 1 = 1 Ожидание 10 Порт 1 = 0 Порт конфигурации 1 = Порт конфигурации вывода 0 = Порт конфигурации вывода 0 = Порт конфигурации вывода 2 = Порт конфигурации вывода 3 = Конфигурация вывода Portd.6 = Конфигурация вывода Sda = Portd.5 Конфигурация Scl = Portd.4 Конфигурация Pind.0 = Входной портd.0 = 1 Конфигурация Pind.1 = Входной портd.1 = 1 Конфигурация Таймер1 = Таймер, предварительное масштабирование = 64 Вкл. Timer1 Awake: Config Timer0 = Timer, Prescale = 64 On Ovf0 Refresh Dig1 Псевдоним Porta.0: Dig2 Псевдоним Portd.2: Dig3 Псевдоним Portd.3: Dig4 Псевдоним Portd.6 Разрешить прерывания Включить Ovf0 Разрешить таймер 1 Start Timer1 Hour = 0 Mine = 0 Если Pind.1 = 0 And Pind.0 = 0 Тогда 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 (мой) I2cstart I2cwbyte & HD0 I2cwbyte 1 I2cwbyte Mine I2cstop Hour & = Makebc2 I0mcbbyte I02 I0mwbbyte 1 час 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 Makec) Mine = Makedec, если 80 Тогда 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 Если Пинд.1 = 0 Тогда 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 Тогда 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 Затем Pointmem = Number (2) + 10 Portb = Lookup (pointmem, Digits) Else Portb = Lookup (number (count), Digits) End If Select Case Count Case 1: Установить 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 & B0000100011, & B0101 0010100, & B00010010, & B01000011 Data & B10000010, & B10000000, & B00001011, & B00000000, & B00000010 Data & B11111111  

Мы прошиваем почти 2 килобайта кода в микронах и наблюдаем, как только что появившееся устройство начало служить человеку.
Честно говоря, испытываю невероятное удовольствие от того, что могу создать что-то далекое и непонятное многим)
Похоже на устройство без кейса, кейс подойдет после написания статьи:

И так, часы готовы, а как они работают? Я показываю это в первой половине этого видео (я не прошу подписку или что-то еще, просто чушь)

Заключение

Таким образом, за 2 дня я сделал устройство, которое покажет мне, сколько Мне остается делать одно дело и переходить к другому, когда пора уходить или начинать что-то важное.
Ну вот и все, спасибо тем, кто дочитал до конца, успехов в ваших проектах и, как говорится: «Да ну, 47, до встречи на других частотах! QRZ .. «Схема проигрывателя Wav

с Atmel ATtiny2313 — Electronics Projects Circuits

Схема микроконтроллера ATtiny2313 с подключением к ПК MAX232 может быть создана на основе компьютерной программы с файлом wav, загружающим выход усилителя мощности TDA2003, интегрированный усилитель Atmel Wav Player Circuit Test Электронная схема это ATtiny2313-mas * mikrovezérlo… Electronics Projects, Схема проигрывателя Wav с Atmel ATtiny2313 «AVR Project, Микроконтроллер Проекты», Дата 2019/08/01

Схема микроконтроллера ATtiny2313 с подключением MAX232 к ПК может быть создана на основе компьютерной программы с файлом wav, загружающим выходной сигнал усилителя мощности TDA2003, интегрированный усилитель

Тест цепи проигрывателя Atmel Wav

Электронная схема ATtiny2313-mas * mikrovezérlo, что из круга строится.AVR-hez * IC памяти (AT45DB4161) делитель напряжения прикреплен с сопротивлениями, так как память максимум 3,6V-ot * может выдержать это. Согласно этому Z-diódás со стабилизатором 3.3V-ra * напряжение питания изображено для IC. От IC это adatvzeték * AVR re подключается напрямую, так как он AVR 3.3V-ot * H может воспринимать его как уровень.

Цифровой код, равный звуковому AVR single R-2R, превращает его в аналогичный знак с сетью, в основном из-за экономической эффективности, и я решил это из-за простоты этого решения.За этим следует степень усиления. Для усиления IC TDA2003-mat * выделил в основном его простую связь, его цену и аналог, ок. 10W-os * из-за его отпускной производительности.

Поставить звук для аппарата, удалить на высшем уровне с помощью компьютера. Электронная схема sorosporttal * прикреплена к компьютеру, это тип MAX232, следующая установка выполняет это через IC

Источник: hobbielektronika.hu/ Схема Wav-плеера pcb асхематический исходный код Альтернативная ссылка:

СПИСОК ССЫЛКИ ДЛЯ ЗАГРУЗКИ ФАЙЛОВ (в формате TXT): LINKS-1024.zip

Сравнение микросхем ATmel — The Wandering Engineer

У меня есть несколько проектов, над которыми я работаю. , и думаю, что это не имеет смысла для Arduino как по размеру, так и по причинам стоимости. Изначально этот пост должен был быть о том, как программировать и ATtiny с помощью Arduino IDE (не волнуйтесь, я скоро к этому вернусь). Когда я писал это, я начал сравнивать чипы и понял, что различия не так очевидны, как я думал. Таким образом, вместо этого в этом посте будет сравниваться некоторые из популярных чипов Atmel: ATmega328, используемый в Arduino Uno, ATmega2560, используемый в Arduino Mega, ATtiny84, ATtiny85 и ATtiny2313.

Когда я начал это сравнение, все, что я знал, это то, что серия ATtiny была мельче, чем серия ATmega. Процитирую любимого телевизионного персонажа: Привет и / или Дух! Я также предположил, что, поскольку крошечные устройства были намного меньше, они будут работать медленнее, потреблять меньше ресурсов и будут намного дешевле. Большинство из них были неправильными. Я не сравнивал версии этих микросхем для поверхностного монтажа, так как я еще не на этом уровне. Компоненты для поверхностного монтажа кардинально меняют разницу в размерах между самым большим и самым маленьким из этих чипов и делают выбор в пользу более крупного чипа гораздо более привлекательным.

Сходства

Хотя эти микросхемы имеют много различий, у них также есть несколько общих черт. Самое главное, что все они работают от 1,8 — 5,5 вольт. Все они также имеют внутренний генератор на 8 МГц (некоторые микросхемы по умолчанию работают на 1 МГц, но их можно изменить, установив предохранитель). Также важно отметить, что все они могут работать на частоте до 20 МГц при использовании внешнего генератора. 8 МГц достаточно быстро для последовательной передачи данных, но могут возникнуть проблемы, поскольку точность внутреннего генератора составляет всего 10%. I2C и другие синхронные коммуникации должны быть нормальными, если они соответствуют максимальной и минимальной длительности.

Отличия

На изображении ниже показаны размеры ATtiny85, ATtiny84, ATtiny2313 и ATmega328 соответственно (извините за низкое качество — я никогда не преуспел в Photoshop, я предпочитаю работать с векторными изображениями). Разница в размерах довольно очевидна, и это уже хорошая причина выбрать именно тот чип для проекта, над которым вы работаете. Я не стал включать ATmega2560, так как он не доступен для монтажа в сквозное отверстие. Эта разница в размерах связана как с количеством контактов ввода-вывода, так и с внутренней схемой.

В приведенной ниже таблице показаны все данные, которые меня интересовали, когда я смотрел на эти чипы.

ATtiny2313 ATtiny84 ATtiny85 ATmega328 ATmega2560
Стоимость

$ 3,13

$ 3,53

$ 2,65

$ 3,70

$ 16.75

Счетчик выводов

20

14

8

32

100

Макс.количество контактов ввода-вывода

18

12

6

23

86

Флэш-память

2 Кб

8 Кб

8 Кб

32 Кб

256 Кб

EEPROM

128 байт

512 байт

512 байт

1 Кб

4 Кб

каналов АЦП

0

8

4

6 (8 на SMD)

16

Каналы ШИМ

4

4

6

6

15

Таймеры

1 8 бит

1 16 бит

1 8 бит

1 16 бит

2 8 бит

2 8 бит

1 16 бит

2 8 бит

4 16 бит

SRAM 128 байт

512 байт

512 байт

2 Кб

8 Кб

Аппаратное обеспечение Серийный номер

Да — 1

Да — 4

Аппаратное обеспечение I2C

Есть

Есть

Внешние прерывания 2 (8 PCINT)

1 (12PCINT)

1 (6 PCINT)

2 (23 PCINT)

8 (32 PCINT)

Здесь мы видим, что единственное правильное предположение, которое я сделал, заключалось в том, что в крошечной серии меньше выводов.Я был очень удивлен, что разница в цене между ATmeg328 и ATtiny85 была такой небольшой. Я ожидал, что ATmega328 будет намного дороже, так как у него больше контактов и вспышки. Могу только предположить, что это дешевле из-за своей популярности и экономии за счет масштаба. Мне также кажется интересным, что, хотя ATtiny2313 больше, чем ATtiny84, у него меньше флэш-памяти, меньше EEPROM и нет аналого-цифрового преобразователя. Но я думаю, если вас интересуют только контакты ввода-вывода, это может быть чип для вас.

Для моих целей ATtiny85 идеально подходит, так как мне нужно всего несколько контактов ввода-вывода, и меня больше всего беспокоят размер и стоимость. В следующем посте будет рассказано, как запрограммировать ATtiny из среды разработки arduino, используя Arduino в качестве программиста.

РЕДАКТИРОВАТЬ: 5/3/2013 — Обновленная диаграмма для подробного описания типов таймеров и включения SRAM.

РЕДАКТИРОВАТЬ: 15/5/2015 — Обновленная таблица включает внешние прерывания, I2C, аппаратный последовательный порт и обновленную стоимость.

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

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