Lcd часы на attiny2313

Содержание

Lcd часы на attiny2313

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

Источник: http://www.pvsm.ru/svoimi-rukami/113668

Часы LED-ATtiny2313-DS1307

Источник: http://c2.at.ua/publ/skhemy/chasy_led_attiny2313_ds1307/1-1-0-29

Часы на ATtiny (с печатной платой)

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

Нам понадобятся: Кварцевый резонатор на 16 МГц, микроконтроллер ATTINY2313, 2 кнопки, 2 конденсатора на 22 пф, конденсатор на 220 нф, линейный стабилизатор питания 7805, 4 транзистора КТ817Б, ну и четыре семисегментных светодиодных индикатора, у меня это SA15–11GWA (высота цифр 38 мм) и горстка резисторов.

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

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

Итак, имеющиеся компоненты: Микроконтроллер обошелся в 41 руб, индикаторы по 52,8 руб за штуку. Всего получается 252,2 руб. Остальное было извлечено из запасов, но в любом случае бюджет бы не превысил бы 300 рублей.

Микроконтроллер тактируется кварцем с частотой 16 МГц. В качестве счетчика времени, внутри микроконтроллера запущен 16 битный таймер с предделителем 256 (т.е. частота отсчетов таймера 62500 Гц), настроенный на создание прерывания по достижении счетчиком значения 625. Таким образом, мы получаем прерывания ровно 100 раз в секунду.

Значение времени хранится в глобальных переменных, и каждое прерывание мы увеличиваем значение миллисекунд на 1. Если количество миллисекунд достигает 100, то мы увеличиваем на 1 значение секунд, а значением миллисекунд сбрасываем. И так далее вплоть до десятков часов, которые сбрасываются по достижении 24 без увеличения следующего разряда.

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

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

Быстро переключая порт B, к которому подключены катоды и быстро переключая аноды мы можем создать видимость, что у нас работают все 4 цифры, хотя единовременно работает только одна.

Иными словами, если текущее время 12:51, то мы выводим цифру 1 на первый индикатор, спустя малый промежуток времени (у меня 1 мс) выводим цифру 2 на второй индикатор, спустя 1 мс выводим 5 на 3 индикатор, спустя 1 мс выводим 1 на 4 индикатор и так далее по кругу. Кнопки опрашиваются после каждого цикла отображения (примерно 40 раз в сек), обработка нажатия снабжена антидребезгом и «защелкой» в виде флага, что позволяет считать именно нажатия не отвлекаясь на удержание.

Листинг:

/***************************************************** This program was produced by the CodeWizardAVR V1.25.7 beta 5 Professional Automatic Program Generator © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Simple AVR Clock Version : Date : 01.05.2008 Author : Spiritus Sancti Company : licrym.

org Comments: Chip type : ATtiny2313 Clock frequency : 16,000000 MHz Memory model : Tiny External SRAM size : 0 Data Stack size : 32 *****************************************************/ #include #include #define digit_display_time 1 unsigned char milliseconds, seconds, ten_seconds, minutes, ten_minutes, hours, ten_hours; bit button_pressed1, button_pressed2; // Timer 1 output compare A interrupt service routine interrupt [TIM1_COMPA] void timer1_compa_isr(void) //Прерывание происходит 100 раз в сек, сохраняем в глобальные переменные текущее время { milliseconds++; TCNT1H=0x00; TCNT1L=0x00; if (milliseconds >= 100 ) { milliseconds = 0; seconds++; }; if (seconds >= 10) { seconds = 0; ten_seconds++; }; if (ten_seconds >= 6) { ten_seconds = 0; minutes++; }; if (minutes >= 10) { minutes = 0; ten_minutes++; }; if (ten_minutes >= 6) { ten_minutes = 0; hours++; }; if (hours >= 10) { hours = 0; ten_hours++; }; if (ten_hours >= 2 && hours == 4) { ten_hours = 0; hours=0; }; } void main(void) { unsigned char digits[10] = {18, 159, 56, 28, 149, 84, 80, 31, 16, 20}; //массив для генерации цифр. Какой элемент массива будет отправлен в порт, такая цифра и загорится. // Crystal Oscillator division factor: 1 CLKPR=0x80; CLKPR=0x00; // Input/Output Ports initialization // Port A initialization // Func2=In Func1=In Func0=In // State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1 PORTB=0xFF; DDRB=0xFF; // Port D initialization // Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=In Func0=In // State6=0 State5=0 State4=0 State3=0 State2=0 State1=P State0=P PORTD=0x03; DDRD=0x7C; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0A output: Disconnected // OC0B output: Disconnected TCCR0A=0x00; TCCR0B=0x00; TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 62,500 kHz // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: On // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x04; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x02; OCR1AL=0x71; OCR1BH=0x00; OCR1BL=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // Interrupt on any change on pins PCINT0-7: Off GIMSK=0x00; MCUCR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x40; // Universal Serial Interface initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; // Global enable interrupts #asm(“sei”) while (1) { PORTD |=1

Источник: http://nauchebe.net/2012/10/chasy-na-attiny-s-pechatnoj-platoj/

Часы – таймер на DS1307,ATtiny2313,74hc595+4LED + Энкодер

Предлагаем вашему вниманию  проект с часами_таймером для духовки (можно как склерозник на кухню ) на ATtiny2313 +74hc595 + 4LED +DS1307 + энкодер для перевода времени .

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

Принцип действия их основан на часовом механизме , приводимом в действие пружиной , от степени завода которой зависит промежуток времени до останова .

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

Незадолго до конца завода ставим контакт и (или) звонок . Слушая нервное тиканье маятника убеждаемся , что таймер запущен

и работает .

Работает он до первой поломки , а если ломаться упорно не хочет — до надоедания от при-

митивности .У меня он не сломался , а стал застревать посередине , и никакая

смазка и т.п .ему не помогала. Вот так и родилась идея сделать его электронный аналог .

Минимум органов управления и аналогичный функционал – требования к проекту.

Исходя из первого требования подошел энкодер , у него нет упора и его не скрутишь.

Читайте также:  Сигнализатор поклевки на pic

Вместо тиканья — мигающая точка , вместо шкалы–цифровой индикатор , ну и звонок

меняем на пищалку с генератором . Вместо контакта цепляем реле или симистор .

А раз есть индикатор , то почему бы не сделать еще и часы , естественно , с автономным

ходом . Ну еще максимальная простота — тоже не помешает .

При включении , устройство показывает текущее время .В режим настройки времени входим после 5-ти секундного нажатия и удержания ручки-кнопки энкодера .Миганют минуты и вращением ручки выставляем минуты .Если опять удержать5 секунд , то мигают часы , выставляем часы .Через 15 секунд после отпускания ручки устройство выходит из

режима настройки времени .

Для инициализации таймера надо повернуть ручку по часовой стрелке .При этом на

индикаторе появляется надпись «on» и время таймера ,подается «1» на выход управления и начинается обратный отсчет минут .Вы можете добавлять или отнимать выдержку

вращением ручки как и в механическом аналоге .При достижении значения 1 на табло

пишется «оFF» , прерывисто пищит сигнал и на выход управления подается «0».

Через минуту переходит на индикацию времени .Во время сигнала вращение ручки в

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

Во время работы таймера кратковременное нажатие ручки приводит к переключению

индикации на текущее время и наоборот .

В данной прошивке на один щелчок энкодера происходит 2-х минутное изменение

выдержки времени таймера в ту или другую сторону.

Сколько на щелчок минут или секунд – под конкретное изделие легко подгоняется , даже реакцию на поворот можно сделать нелинейной ,к примеру (от 1 до 5 -по 1 , до15 -по2 , от 15- по 5 и т.д) .Ну это – для желающих .

Схема с добавлениями:

Ну а что получилось посмотрите : 

Коротко о деталях . Индикатор на 4 цифры с Общим Анодом .Энкодер – Pec-12 , 16 или

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

Пищалка на 5 вольт с встроенным генератором .

На время передачи в регистр разряды откл. , так что можно применить и CD4015 и другие I2c регистры без защелки данных (просто не подлючать выход Тини ).
Если делать разъем внутрисхемного программирования( для SMD и не только) , то его подключите напрямую к ТИНИ , а к другие объекты схемы к этим 3-м (кроме RST ) ногам через 1ком. последовательно .

Устройство в корпусе и с двухцветным светодиодом. 

автор Haimovich

Источник: http://radio-hobby.org/modules/news/article.php?storyid=977

Часы за два дня на attiny2313 и ds1307

AtTiny 2313 — 8ми битный микроконтроллер. ds 1307 — микросхема-счётчик с неплохой точностью. часовой кварц на 32.768кГц. 2 резистора на 10 КОм. AdBlock Plus за два дня обошёл блокировку на Facebook. А потом ещё раз 51,3k 30 387.

Часы за два дня на attiny 2313 и ds 1307 – www.pvsm.ru

Заключение. Таким образом, за 2 дня я сделал устройство, которое покажет мне, сколько мне осталось заниматься одним делом и переходить к другому, когда пора идти, или начать что-то важное.

Ну а на этом всё, спасибо тем, кто дочитал до конца, успехов вам в ваших проектах, и как говорится: «треска вам, 47, и до встречи на других частотах! Игральный кубик на Attiny 2313 .

Умные часы обогнали по продажам часы швейцарских брендов.

Часы за два дня на attiny 2313 и ds 1307 | Роботы и робототехника – robot-russia.ru

AtTiny 2313 — 8ми битный микроконтроллер. ds 1307 — микросхема-счётчик с неплохой точностью. часовой кварц на 32.768кГц. Заключение.

Таким образом, за 2 дня я сделал устройство, которое покажет мне, сколько мне осталось заниматься одним делом и переходить к другому, когда пора идти, или начать что-то важное.

Ну а на этом всё, спасибо тем, кто дочитал до конца, успехов вам в ваших проектах, и как говорится: «треска вам, 47, и до встречи на других частотах!

Часы за два дня на attiny 2313 и ds 1307 | SavePearlHarbor – savepearlharbor.com

AtTiny 2313 — 8ми битный микроконтроллер. ds 1307 — микросхема-счётчик с неплохой точностью. часовой кварц на 32.768кГц. Заключение.

Таким образом, за 2 дня я сделал устройство, которое покажет мне, сколько мне осталось заниматься одним делом и переходить к другому, когда пора идти, или начать что-то важное.

Ну а на этом всё, спасибо тем, кто дочитал до конца, успехов вам в ваших проектах, и как говорится: «треска вам, 47, и до встречи на других частотах!

Часы за два дня на attiny 2313 и ds 1307 – itnan.ru

AtTiny 2313 — 8ми битный микроконтроллер. ds 1307 — микросхема-счётчик с неплохой точностью. часовой кварц на 32.768кГц. Заключение.

Таким образом, за 2 дня я сделал устройство, которое покажет мне, сколько мне осталось заниматься одним делом и переходить к другому, когда пора идти, или начать что-то важное.

Ну а на этом всё, спасибо тем, кто дочитал до конца, успехов вам в ваших проектах, и как говорится: «треска вам, 47, и до встречи на других частотах!

Часы за два дня на attiny 2313 и ds 1307 – PCNEWS.RU – pcnews.ru

Часы за два дня на attiny 2313 и ds 130701.03.2016 08:07. Мотив. Начну с того, что каждый человек живёт во времени, которое, к огромному сожалению, не возможно остановить.

И раз мы живём в этом мире, то давайте следить за временем и не упускать ни минуты, тратя её впустую. AtTiny 2313 — 8 ми битный микроконтроллер. ds 1307 — микросхема-счётчик с неплохой точностью.

часовой кварц на 32.768кГц. 2 резистора на 10 КОм.

Часы за два дня на attiny 2313 и ds 1307 | Все новости – geektimes.mirtesen.ru

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

Часы за два дня на attiny 2313 и ds 1307 – PCNEWS.RU – pcnews.ru

Часы за два дня на attiny 2313 и ds 130701.03.2016 08:07. Мотив. Начну с того, что каждый человек живёт во времени, которое, к огромному сожалению, не возможно остановить.

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

Начнём! На улице встало солнце, я нарисовал плату и почесал на ксерокс, дабы напечатать плату.

LED часы на ATtiny 2313 и DS 1307 – cxem.net

LED часы на ATtiny 2313 и DS 1307 . Всем привет! Накануне праздник 8 марта, вы уже придумали что подарить? Да/Нет? Можно конечно купить готовый подарок, но лучший подарок, это подарок сделанный своими руками. Алексей 04.03.2016 15:52 #. Как оказалось, часы идут два дня , затем показывают 72 часы , пока заново время не перевести. Ответить.

Часы за два дня на attiny 2313 и ds 1307 – Версия – PVSM.RU – www.pvsm.ru

AtTiny 2313 — 8ми битный микроконтроллер. ds 1307 — микросхема-счётчик с неплохой точностью. часовой кварц на 32.768кГц. Заключение.

Таким образом, за 2 дня я сделал устройство, которое покажет мне, сколько мне осталось заниматься одним делом и переходить к другому, когда пора идти, или начать что-то важное.

Читайте также:  P-cad

Ну а на этом всё, спасибо тем, кто дочитал до конца, успехов вам в ваших проектах, и как говорится: «треска вам, 47, и до встречи на других частотах!

Часы за два дня на attiny 2313 и ds 1307 – m.geektimes.ru

Мне самому больше stm32 нравится, но тоже в 2008 году начинал с attiny 2313 ). Это было довольно интересно, учитывая, что жало у меня — нож hakko t12. Подарил бы мне кто-то жало или два )

Простые часы на ATtiny 2313 и DS 1307 | Форум – www.tehnari.ru

Нажатие только кнопки + часы – меняет значение ” часы ” Нажатие только кнопки +минуты – меняет значение “минуты” Одновременное нажатие двух кнопок- меняет значение корректировки секунд в сутки Это будет не вариант, а совсем другое устройство (коих, впрочем, не мало. Например – Простые часы на ATtiny 2313 . Версия 1.0 и 2 .0 ). Так как 1307 – и есть часы .

Часы за два дня на attiny 2313 и ds 1307 / СоХабр – sohabr.net

AtTiny 2313 — 8ми битный микроконтроллер. ds 1307 — микросхема-счётчик с неплохой точностью. часовой кварц на 32.768кГц. Заключение.

Таким образом, за 2 дня я сделал устройство, которое покажет мне, сколько мне осталось заниматься одним делом и переходить к другому, когда пора идти, или начать что-то важное.

Ну а на этом всё, спасибо тем, кто дочитал до конца, успехов вам в ваших проектах, и как говорится: «треска вам, 47, и до встречи на других частотах!

Источник: http://odnako.su/hi-tech/pc-hardware/-482070-chasy-za-dva-dnya-na-attiny2313-i-ds1307/

Часы с термометром на микроконтроллере

ПодробностиКатегория: МикроконтроллерыОпубликовано 15.06.2016 13:34Автор: AdminПросмотров: 1377

Простые часы с термометром на микроконтроллере AVR ATtiny2313 с выводом информации на семисегментный индикатор. Часы используют для отсчета времени микросхему DS1307 – часы реального времени и источником резервного питания в 3 В. Температура измеряется при помощи датчика температуры DS18B20.

 Текущее значение времени и температуры происходит поочередно сначала время а потом температура с нтервалом в 4 секунды. Формат отображения времени ЧЧ.ММ (часы,минуты). Первый ноль не отображается. О ходе отсчета времени сигнализирует мигающая точка.

 Точность отображения температуры составляет десятые доли градуса. Погрешность в интевале температуры от -10 до 85 градусов составляет порядка +/- 0.5. В другом диапазоне точность уже +/- 2 градуса.

Температура замеряется 1 раз в минуту. Измеренное значение отправляется в память контроллера в которой может хранится пять послених измеренных значения.

Измеренная температура округляется до целого значения.

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

 Если нажать на кнопке “меньше” то на дисплее сразу отобразится время.

Если кнопку “больше” то отобразится температура последнего измеренного значения и начнется новый процесс измеерения температуры и новое значение отобразиться на дисплее в этом случае точность составит десятые доли и в таком формате будет отображатся в течении минуты. Если датчик температуры неисправен или отсутсвует подключение то будет оторажаться только время.

Схема часов с термометром на микроконтроллере

Представленные схемы отличаются только общим выводом индикатора анод и катод. Индикаторы работают в динамической индикации. Динамическая индикация раелизована программно. Каждый семисегментный индикатор включается с интервалом 100 раз за 1 секунду. остальное время выключен. 

Прошивка для микроконтроллера

В архиве имеются файлы Proteus и сама прошивка написана на ассемблере. Прошивка может работать для двух вышеприведенных схем, для схемы с индикатором с общим катодом и схемы индикатора с общим анодом. При прошивке микроконтроллера важно выствыить fuse-биты: CKSEL3, CKSEL1, CKSEL0, SUT0, BODLEVEL1, BODLEVEL0.

Скачать: прошивка микроконтроллера

Вход в режим усановки времени осуществляется нажатием и удерживанием кнопки “ввод”. После того как пройдет 3 секунды начнется режим установки минут. Для того чтобы устаноыить новое значение времени нужно использовать кнопки “больше” и “менеше”.

Для того чтобы перейти в режим установки часов необходимо нажать на кнопку “ввод”. Для того чтобы сохранить выбранное время нужно также нажать и удерживать кнопку “ввод” после этого программа выйдет из режима установки времени.

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

Для устройства необходимы две печатные платы из одностороннего стеклотекстолита который имеет размеры 50 на 100 мм, на одной плате устанавливаются индикатор с кнопками, а на другой сами часы. Равзодка платы в формате SpringLayout.

Индикатор или дисплей собран на двух семисегментных индикаторах FYD-8021BS-11, каждый имеет 2 разряда и имеют общий анод.

Вместо указаных на схеме вернхних включающих транзисторов платы можно использовать другие к примеру KT361B.

Исходник статьи: Часы-термометр

Источник: http://www.radio-magic.ru/microcontrollers/376-chasy-s-termometrom

LED часы на Attiny2313 и DS1307

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

И так, составим список что нужно для сборки часов:

1. Микроконтроллер Attiny2313 (с любыми буквенными индексами, в DIP корпусе) – 1шт.
2. Микросхема DS1307 (в DIP корпусе) – 1шт.
3. Панелька DIP-20 – 1шт.
4. Панелька DIP-8 – 1шт. 
5. Часовой кварц на 32768 Гц – 1шт.
6. Пенал для двух пальчиковых батареек типа AAA – 1шт.

7. Пальчиковые батарейки 1,5v AAA – 2шт.
8. Резисторы 4,7 кОм – 2шт.
9. Резисторы 1 кОм – 4шт.
10. Резисторы 10 кОм – 3шт.
11. Резистор 150 Ом – 1шт.
12. Резисторы 10 Ом – 7шт.
13. Транзисторы КТ315 – 4шт.
14.

Семисегментные индикаторы REC-S12101AG с общим анодом – 4шт.
15. Конденсатор электролитический 100 мкф – 1шт.
16. Конденсатор керамический 100 нф – 1шт.
17. Кнопки тактовые, без фиксации – 2шт.
18. Корпус пластмассовый (по желанию) – 1шт.
19. ИБП RS-25-5 – 1шт.
20.

Сетевой шнур с вилкой – 1шт.
21. Текстолит (для ПП)

Собрал я всё на печатных платах, семисегментные индикаторы разместил на одной плате, всё остальное на другой. Платы лудил сплавом розе и в конце покрывал цапон лаком. Печатные платы делал с помощью ЛУТа. Чертил в программе Sprint Layout 4.0. Вот фото платы с семисегментными индикаторами:

Платы вместе соединял шлейфом, вот так:

В ход можно пустить компьютерный IDE шлейф. Вот фото основной платы:

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

Как вы уже заметили внутри корпуса я закреплял всё с помощью термо клея. После сборки часов необходимо прошить микроконтроллер  прошивкой ClockFirmware.HEX. Как прошить микроконтроллер и сделать программатор я писал тут и тут. После прошивки не забудьте установить следующие фьюз-биты:

Для программы SinaProg:

Я прошивал микроконтроллер с помощью программатора USBtiny и программы SinaProg. Программу (прошивку) для часов писал в среде BASCOM-AVR, исходник прилагается. У меня часы работают уже почти неделю и не на секунду не отстают. Точность хода часов зависит от кварца, его лучше купить новый.

Яркость часов зависит от резисторов R1-R8, чтобы уменьшить яркость увеличьте сопротивление этих резисторов, но следует учесть, что резисторы необходимо ставить с сопротивлением не меньше 10 Ом а резистор R3 не менее 100 Ом.

 При первом включении часов либо после смены батареи резерного питания, зажмите обе кнопки S1, S2 и включите часы. Часы сбросятся на 00:00 и начнут идти.

Кстати, ночью часы смотрятся просто отлично:

Источник: http://kibermedved.at.ua/load/led_chasy_na_attiny2313_i_ds1307/1-1-0-2

Источник

Спасибо за ваше внимание к сайту нашим новым публикациям.