imadeself.com! » електроника » Arduino »Часовник с термометър на Attiny

Часовник термометър Attiny

Часовник термометър Attiny



Здравейте на всички и имайте хубав ден или вечер. Този път ще споделя инструкциите за направата на стаен часовник с термометър. Изчислителният център на часовника ще бъде Attiny85, сглобен на дъска от Digispark. За показване на часовника - Oled дисплей. Термометър - добре познатият ds18b20. За захранване вземаме li-ion 18650 (те могат да бъдат получени от стара батерия от лаптоп). И добавете дисплей на нивото на батерията. Както във всичките ми предишни часовници, ние ще се справим без модула RTC (часовник в реално време).

Ние събираме всичко необходимо:

- Digispark Attiny85 (микро USB версия)
- ds18b20 (в пластмасов калъф)
- Oled екран с разделителна способност 128x64, I2C
- 2бр 18650 батерии или стара Li-ion батерия за лаптоп
- Резистори (3.3 kΩ, 4.7 kΩ, 10 kΩ)
- Тънка пластмаса (за корпус)
- Свързване на проводници от различни цветове
- ISP програмист (или който и да е Arduino срещу заплащане)
- Бутон
- Съединители Dupont 2,54 мм "майка", "баща"
- канцеларски нож, двустранна лента, електрическа лента, топла стопилка
- Всичко за запояване (поялник, колофон, спойка)

Стъпка 1 случай.
Бъдещият калъф за часовник ще бъде направен от тънка пластмаса. Можете да закупите лист от такава пластмаса в специализиран магазин или да поръчате на aliexpress. И можете (да не чакате и да не погледнете) да отидете до канцеларията и да си купите папка от пластмасова хартия с любимия си цвят. Размери на бъдещия часовник: ширина - 40 мм, дебелина - 30 мм, височина - 70 мм. Според схемата по-долу изрязахме сканиране от пластмаса:


Нарязваме по дебели линии, леко се огъваме по тънки линии. Изрязваме правоъгълника в средата с помощта на чиновнически нож, това е прозорец за показване. В резултат на това получаваме сканиране на пластмаса:


Преминаваме към Attiny.

Стъпка 2 Attiny + Oled.
Както казах, в сърцето ни домашно ще бъде Attiny 85. Най-добре е да закупите този чип, веднага запоен към платката, заедно с регулатор на напрежението и сбруя. Digispark Attiny85 е много подходящ. Изберете версията с micro-USB на дъската. Други модификации на дъската няма да се поберат по размер. Случва се тази платка да се продава с вече споени „мъжки“ конектори на Dupon. Ако е така, спойка всички съединители. Ние събираме цветни проводници. Нужни са ни 10 сантиметра в различни цветове. Ние ги спояваме в Attiny и записваме на кой провод, на кое заключение съответства. Проводниците P0 и P2 трябва да бъдат споени в две проводници. Втората двойка е необходима за свързване на екрана Oled. Получаваме следното:


На телта написах следната схема:


Екранът е малък (за да съответства на контролера), но изглежда красив. OLED (органичен светодиод) е графичен дисплей. Няма подсветка и вместо това всеки пиксел е независим светодиод. Размери на екрана - 0,96 инча.Резолюция 128x64. Свързан чрез I2C шина. Използва само два проводника за свързване с Attiny. Те се предлагат в различни цветове, изберете по ваш вкус. Хареса ми синьото с жълта ивица в горната част. Ние действаме подобно на Digispark. Ако има споени съединители - спойка ги. Припой, засега, само захранващите проводници:


Внимавайте при запояване, не повреждайте кабела с поялник на дисплея:


Свързваме дъските с помощта на двустранна лента:


Ние спояваме дисплея Digispark Attiny и Oled заедно според схемата (цветовете на проводниците могат да варират, основното е да не се забърквате със заключенията):


За удобство и поръчка събираме всички жици заедно. Можете да ги завъртите с електрическа лента, за да не се объркате:


В края на всички проводници, ние прикрепяме конектора "майка" на Dupont, вкарваме го в изолаторите и навиваме всичко заедно с електрическа лента, за да направим конектора. Записваме също и щифта на конектора:


Изходът трябва да е такъв, тъй като в бъдеще ще свържем проводник за фърмуер или други елементи на часовника към конектора.
Лепим получената структура в кутията и не забравяйте да залепите самия калъф, оставяйки един стон да не е залепен, за по-нататъшни манипулации:


Когато лепете, обърнете внимание, че екранът е равномерен:


Стъпка 3 Мощност.
За мощност ще използваме два Li-йонни елемента. Напишете 18650. Можете да ги закупите отделно. В този случай ги спойкайте паралелно, изолирайте и изведете конектора за свързване и последващо зареждане:


Много от тях имат по-стари лаптопи. Дали те вече не работят или работят през времето. Дори ако батерията на лаптопа вече е лоша и не е подходяща за предназначението й, тя може да се използва за всички видове домашно приготвени продукти. В нашия случай за часовник. Вземаме батерията от лаптопа:


Основното е, че той е Li-ion. Ние внимателно го разглобяваме, трябва да отворите пластмасовия калъф, за да не повредите елемента вътре. Най-често батерията е разделена на два елемента, свързани паралелно. Изваждаме ги и отделяме един чифт от останалите:


Най-добре е да спойкате на контактните подложки:


Залепете тази двойка на гърба на часовника:


Стъпка 4 Определяне на заряда на батерията.
Удобна функция на часовника е да посочва заряда на батерията. Ще определим степента на заряд по напрежение. Минималното напрежение за тези батерии е 2,4 V. Не може да се разрежда допълнително. Максималното напрежение е 4.2 V.

Измерването на напрежението в аналоговия порт винаги е относително към някакво друго напрежение. Не можем да използваме AREF щифт на микроконтролера, който служи за настройка на референтното напрежение. Също така е невъзможно да се измери напрежението спрямо захранващото напрежение (съотношението винаги ще бъде едно и също). Следователно ще определим напрежението във връзка с вътрешното референтно напрежение или Vbg (референтно напрежение на Bandgap). Това е 1,1 V. Сега трябва да изчислим делителя на напрежението за нашата батерия, така че при максимално зареждане (4,2 V) разделителят да е имал (1,1 V). Можете да изчислите по формулата:



Или използвайте

R1 приема номинална стойност от 10 kOhm. Тогава R2 получаваме 3,55 KOhm, най-близкият от стандартните стойности 3,3 KOhm, и го вземаме. Измерванията се правят между вътрешното напрежение и GND, така че резисторът от 3.3 KΩ се споява до минус, а 10 KΩ - към плюс. Поставяме резисторите върху батерията, изтегляме жицата от разделителя.


Изолираме всички контакти, за да избегнем късо съединение:


Проводникът от разделителя ще бъде свързан към PB4.

Стъпка 5 Измерете температурата.
Отлично допълнение към часовника е измерването на стайната температура. Ще използваме интегрирания температурен датчик DS18B20. За да работите с него, е необходим само един проводник (много полезен, когато използвате Attiny 85). Всички измервания са направени сами, централният контролер не се притеснява (Attiny 85 също има отлична памет и толкова малко), трябва само да даваме команди и да получаваме резултати. Има няколко различни схеми за свързване на този сензор, ще използваме опцията, която е оптимална за този случай, според мен.Използване на външно захранване и 4.7 kΩ резистор:


Спойка малки проводници и закрепете конекторите


Проводникът от DQ сензора е свързан към PB 3.

Стъпка 6 Бутон
Имаме малко заключения, но има много изисквания към часовниците. Ще използваме един бутон, за да настроим времето. Не можем да разчитаме на повече. Полейте проводниците към бутона, един контакт от него към GND. Комбинирайте с нашия температурен датчик:


Вторият контакт от бутона е свързан към PB 1.

Стъпка 7 Подготовка на средата за развитие
За по-нататъшна работа със скицата, както и за нейното редактиране и попълване се нуждаем от ID на Arduino. Изтеглете тази програма от:

Сега добавете поддръжка за Attiny 85 в сряда. Отворете ID на Arduion и продължете по пътеката:
Файл - Настройки - „Допълнителни URL адреси на мениджър на дъски“ поставете връзката:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


Щракнете върху OK.
Към:
Инструменти - Board - Управителен съвет влезте Attiny и кликнете върху „attiny by David A. Mellis“. Кликнете върху „Инсталиране“ и оставете да сложите кафето.
А сега за библиотеките. Те се нуждаят от две:

За работа с дисплея Oled

Контрол на температурен датчик

След като изтеглите тези архиви, разопаковайте ги в папката „библиотеки“, което е лесно да намерите, като продължите по инсталационния път на Arduino IDE.

Стъпка 8 Програмист.
Digispark Attiny 85 е страхотна дъска. Предназначен за свързване към USB компютър. И чрез него може да се програмира. Но Attiny използва софтуерен USB, който от своя страна заема 2 KB от 8 KB памет. Това не ни устройва и затова ще прокараме Attiny 85 през ISP интерфейса. И тук имаме нужда от ISP програмист. Ако го няма - няма значение. Вземете Arduino. В моя случай Arduino UNO:


Можете да вземете всяка друга съвместима дъска от линията Arduino. Свързваме се към компютъра, отваряме ID на Arduino, избираме com порта, към който е свързан Arduino платката, отваряме скицата в примерите, Arduino ISP и я попълваме в дъската. Имаме нужда и от проводник, за да се свържем бързо с Attiny.


Връзката е следната:

D11 - P0
D12 - P1
D13 - P2
D10 - P5

Не забравяйте за храненето Attiny.

Стъпка 9 Редактирайте и попълнете скицата.

Изтеглете скица

Преди да попълните, трябва да редактирате скицата.
Вграденият сензор ds18b20, както бе споменато по-горе, работи с помощта на протокола One Wire. Всеки сензор има свой уникален 64-битов адрес. Трябва да намерите адреса на вашия сензор и да го напишете в скица. Отворете ID на Arduino, следвайте пътя:
Файл - Примери - Температура в Далас - OneWireSearch.

Напълнете скицата в Arduino. Отворете монитора на порта. Трябва да видите адресите на всички свързани сензори и техните показания за температурата. Записваме вашия адрес. Отворете моята скица и променете адреса на свой собствен в реда:

байт addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};


За да регулирате хода на часовника, използвайте следната константа:

if (micros () - prevmicros> gt; [b] 497000 [/ b]) 


Колкото по-голяма е тази стойност, толкова по-бавен е часовникът.
За контрол, на екрана се показват секунди:

OzOled.printNumber ((long) sec, 0, 7); // изходни секунди за точна настройка 


Коментирайте този ред, за да премахнете секунди.
Сега свързваме програмиста или Arduino като програмист, избираме com-port, избираме нашата дъска в менюто Tools и задаваме следните параметри:
Борд: Attiny 25/45/85
Процесор: Attiny 85
Часовник: вътрешен 16
След това изберете в същото меню:
Инструменти - Програмист - "Arduino като ISP".
И накрая:
Скица - Изтеглете чрез програмиста

Стъпка 10 Финален монтаж и стартиране.
Изключете програмиста и свържете сензора, захранването и бутона:


Докато не бъде конфигуриран точният ход на часовника, можете да затворите кутията с помощта на банкова гума. Когато сте готови, можете да го залепите.


Гледайте рейтинг
Общо гласове: 13
10
10
10

Добавете коментар

    • усмихвамусмивкиxaxaдобреdontknowYahooНеа
      шефдраскотинаглупакдаДа-даагресивентайна
      съжалявамтанцувамdance2dance3извинениепомощнапитки
      спиркаприятелидобърgoodgoodсвиркаприпадамезик
      димплясканеCrayдеклариратподигравателендон-t_mentionизтегляне
      топлинасърдитlaugh1MDAсрещаmoskingотрицателен
      not_iпуканкинаказвамчетаплашаплашитърсене
      присмехthank_youтоваto_clueumnikостърСъгласен
      лошоbeeeblack_eyeblum3изчервяванесамохвалствоскука
      цензурираншегаsecret2заплашвампобедаюsun_bespectacled
      ShokРеспектхахаprevedдобре дошълkrutoyya_za
      ya_dobryiпомощникne_huliganne_othodifludзабранаблизо
9 коментар
Авторът
Идеята е страхотна. Направих нещо по въпроса. Само на една ръка разстояние беше 5 kΩ променлива. Включих го в долното рамо. И след това се заменя с най-подходящия постоянен. Но в инструкциите за производство, мисля, че писането не е излишно. Защо да не направите тези измервания няколко пъти.
Не видях нужда да пиша за досадни и дълги изпитания.
Няма нужда да правите нищо дълго и досадно. Включете резистора (2.7 ... 3) kOhm в долната част на ръката, последователно с него тример за 1 kOhm. От регулируем източник на захранване въвеждате крайните стойности на контролираното напрежение към входа, регулирате работната точка, след това, ако желаете, можете да измерите съпротивлението на тримера и да го замените с постоянен резистор.
Авторът
При честота от 8 MHz не се опитах да стартирам часовника и съответно измервах точността на курса. Всички измервания бяха направени на 16 отвътре. Не мога да кажа и за месеца. Досега, без да се изключват, те работеха максимум седмица. Експерименти и подобрения все още са в процес.
Авторът
По отношение на делителя на напрежение наистина има много нюанси и грешки. И разсейването на съпротивлението на резисторите и разсейването на еталонното напрежение. Пробвах всичко на практика. Когато използвате резистор от 3.6 kΩ, дори и при напрежение на батерията от 3,9 V, аналоговият порт Attiny показва 1023 (при преобразуване в 100% процента). Когато използвате резистор от 3.3 kΩ, стойността на аналоговия порт намалява вече при 4.1 V на батерията. Затова написах, че показанията са получени по-точно, просто не видях нужда да пиша за скучни и дълги изпитания.
Авторът
Поставих часовника за седмица, коригирах напредъка му всеки ден или по-често. В резултат на стойност 497343 те се втурват около 10 секунди седмично.
Честотата може да бъде намалена. Не промених параметъра, нямаше нужда
Е, и каква е точността на 8-MHz RC-часовника? На месец?
и защо Часовник: вътрешен 16?
По-добре е да изберете по-малко, тогава показанията са по-точни.
Не по-точно, но просто входното напрежение трябва да бъде по-малко от референтното. Освен това в разсъжденията си изобщо не вземате предвид разсейването на параметрите: резисторите, най-вероятно, ще имате пет процента, Vbg = (1.0 ... 1.2) V. Така че 3.3 kOhm може да е твърде голям, т.е. и може би 3,6 kOhms ще направят.
Авторът
Ако използвате 3.6 изходно напрежение, получаваме 1.11. Макар и не много, но повече референтно напрежение. При използване на 3.3 - 1.04. По-добре е да изберете по-малко, тогава показанията са по-точни.
А що се отнася до О, прав си, просто не обърнах внимание на тази незначителна подробност.
След като залепите кутията, достъпът до гнездото за зареждане и бутоните може да бъде получен от долната част на часовника, като отрежете долния капак или просто не го залепите.
Тогава R2 получаваме 3,55 KOhm, най-близкият от стандартните стойности от 3,3 KOhm,
Изобщо не. Най-близкият Е24 в стандартния обхват е 3,6 kOhm. И между другото, не "KOhm, а" KOhm.
Докато не бъде конфигуриран точният ход на часовника, можете да затворите кутията с помощта на банкова гума. Когато сте готови, можете да го залепите.
Как ще зареждаме батерията?
И как да манипулирате бутона?

Съветваме ви да прочетете:

Предайте го за смартфона ...