» електроника » Arduino »Oled часовници на Attiny85

Oled часовници на Attiny85

Добър ден и отново съм с играчките си. Днес ви представям инструкции за изработка на малки, но сладки часовници със сензор за стайна температура.
Oled часовници на Attiny85


Списък на това, от което се нуждаем:
- Digispark Attiny85
- Дисплей с олед 128x64 I2C
- сензор за температура ds18b20
- Резистор 4.7 Kom 0.25 W
- ISP програмист или Arduino Digispark Attiny85 съвет на фърмуера
- Пластмасов таблет с щипка или лист от тънка пластмаса
- проводници
- конектори Dupont 2,54 мм „женски“
- Бутони 2 бр.
- Малка платка или малка тапицерия
- поялник
- спойка, колофон
- ножица
- чиновнически нож
- Пистолет за горещо лепило
- горещо лепило

Стъпка 1 Избор на компоненти.
Като основен контролер ще използваме Digispark Attiny85. Има няколко вида от тях. Нуждаем се от платка с микро USB конектор. Останалото няма да се побере в кутията на часовника.

За показване се нуждаем от Oled 128x64 I2C дисплей. Те се предлагат в различни цветове: бяло, синьо, синьо с жълто. Обръщам вашето внимание! Понятието "двуцветен" в описанието или заглавието на този екран означава лента от един цвят в горната част на екрана, а вторият цвят целият останал екран, а не възможност за показване на два цвята с този екран! Всички екрани от този тип показват само един цвят, или в горната част лента от един цвят в долната част - друг. Като например този, който ще използвам. Лентата отгоре е жълта, а останалата част от екрана е синя. Можете да изберете всеки цвят, който харесвате.
Нуждаем се и от вградения сензор за температура DS18B20. Не е избран случайно. Първо, DS18B20 комуникира с микроконтролера чрез едножична комуникационна линия, използвайки протокола за интерфейс 1-Wire. В нашия случай това е важно, тъй като изводите на Attiny85 без сензор са малко. На второ място, този сензор е цифра, тоест той сам извършва всички измервания и просто предава данни за температурата, без да изразходва изчислителните ресурси на Attiny85.

Що се отнася до останалите, мисля, че няма да има въпроси, така че нека да преминем към производството на случая.

Стъпка 2 Монтаж на корпуса.
Калъфът за часовник ще бъде направен от тънка пластмаса. Имах пластмасов таблет с хартиена щипка на ръцете си. Той е достатъчно здрав, за да държи формата си, а в същото време може да бъде изрязан с обикновени ножици и офис нож. Той излезе идеално.Ако не е под ръка, можете да си купите таблет в магазин за офис консумативи или да намерите подходящата пластмаса, която да замени таблета. Ние правим маркировки върху пластмаса по схемата:


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



Резултатът трябва да бъде такъв:


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

Стъпка 3 Ние спойка.
Нашият случай е малък и там трябва да се набием много. Затова вземаме парче от платката не по-голямо от 2,8 х 2,8 мм и спойка с два бутона, датчик ds18b20, резистор и няколко контакта. Съгласно следната схема:


Не е необходимо да спойкате проводници директно към Attiny, тъй като е необходимо да изключите всичко за фърмуера. Резултатът трябва да е нещо подобно:



Бутоните са необходими за определяне на времето. Захранването може да се вземе от USB порта на компютъра. Комбиниране съответно на плюс и минус:


Ако искате да направите без проводници, трябва да намерите малка литиево-йонна батерия. Ето едно, например:


Тази батерия се побира в кутията. Необходимо е само да предоставите заключения за зареждането на батерията.

Стъпка 4 Подготовка на програмиста.
Digispark Attiny85 може да се програмира чрез микро USB конектор на платката, като се използва Arduino IDE като среда за програмиране. Но в същото време трябва да пожертвате 2 KB памет за зареждащото устройство. Attiny 85 има общо 8 KB Flash. Скицата ми не пасва на зареждащия инструмент, така че трябва да програмирам чрез ISP програмиста. Нямам такъв програмист, но има борд на Arduino Uno, който ще използвам като програмист. Ако имате ISB програмист, можете да пропуснете този елемент. Отворете Arduino IDE и попълнете нашата скица, наречена ArduinoISP, в нашето Arduino Uno. Можете да го намерите като този файл - Примери - Arduino ISP. Скицата започва с намек за това как да свържете Arduino към програмируемия контролер. Вместо Arduino Uno може да има всяка друга дъска на Arduino.
// 10: нулиране на роб
// 11: MOSI
// 12: МИСО
// 13: SCK


Схема на връзка с Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5


Стъпка 5 Подготовка на програмната среда.
За да редактирате фърмуера и да попълните скицата в Attiny 85, трябва да подготвите не само програмиста, но и самата среда за програмиране. За да направите това, инсталирайте Arduino IDE от официалния уебсайт на Arduino.cc, а също така инсталирайте добавката за микроконтролери Attiny чрез диспечера на дъските.

Стартирайте Arduino IDE, след това File - Settings - в полето URL адреси на Additional Board Manager, залепете връзката:

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


щракнете върху OK (можете да въведете няколко връзки, разделени със запетая в това поле). Следващи инструменти - Board - Boards Manager в полето за филтри, въведете Attiny и кликнете върху „attiny by David A. Mellis“. Щракнете върху Инсталиране и изчакайте изтеглянето да приключи. Сега в менюто Инструменти изберете:
Борд - Attiny 25/45/85
Процесор - Attiny 85
Часовник - вътрешен 16
и изберете серийния порт, към който е свързан ISP програмистът или Arduino като програмист.
Опитах много различни библиотеки за работа с екрана. Според мен най-удобният и работещ на Attiny85: TinyOzOLED.
tinyozoled-master.rar [15.99 Kb] (изтегляния: 477)


Датчик за температура се нуждае от библиотеката на OneWire.
onewire.rar [16.75 Kb] (изтегляния: 263)


Инсталирайте тези две библиотеки. Можете да инсталирате библиотеки на трети страни директно в среда за програмиране. Без да разопаковате изтеглените архиви, в Arduino IDE изберете менюто Sketch - Connect Library. В самия връх на падащия списък изберете елемента Добавяне. Zip библиотека. В диалоговия прозорец, който се показва, изберете библиотеката, която искате да добавите. Отворете отново менюто Sketch - Connect Library. В самото дъно на падащия списък трябва да видите нова библиотека. Сега библиотеката може да се използва в програми. Не забравяйте да рестартирате Arduino IDE след всичко това.Ако това не помогне, просто разархивирайте архивите в папката „библиотеки“, разположена в папката с инсталирания Arduino IDE.

Стъпка 6 Редактирайте и попълнете скицата.
Температурният сензор работи съгласно протокола One Wire и има уникален адрес за всяко устройство - 64-битов код. Ресурсите на Attiny не са достатъчни, за да търсите този код всеки път. Затова първо трябва да свържете сензора към която и да е платка на Arduino, да попълните скицата, разположена в менюто Файл - Примери - Температура на Далас - OneWireSearch. След това стартирайте Tools - Port Monitor. Arduino трябва да намери нашия сензор, да напише неговия адрес и текущите показания на температурата. Копираме или просто записваме адреса на нашия сензор. Отворете скицата Attiny85_Oled_SPI_Term_2, потърсете реда:

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


Записваме адреса на вашия сензор между скоби, замествайки адреса на моя сензор. След това свържете Attiny с програмиста или Arduino като програмист (това е описано в стъпка 4) и попълнете скицата. Остава да изключите програмиста и да свържете всичко по схемата в 3 стъпки. Сглобката се оказва нещо подобно:


Екранът е малък, невъзможно е да се постави както времето, така и температурата, така че да се вижда. Следователно часовникът променя времето с отчитане на температурата на всеки 10 секунди.
attiny85_oled_spi_term_2.rar [2.33 Kb] (изтегляния: 574)

Attiny 85
Общо избиратели: 118
9.3
10
8.7

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

    • усмихвамусмивки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забранаблизо
13 коментар
Vseslav
Благодаря, благодаря!
Авторът
Добър вечер Не използвах библиотеката от Digispart. Те имат твърде голям зареждащ механизъм, заедно с него скицата на часовника не пасваше. Използвах библиотеката TinyOzOLED. Тя няма руски език. Като цяло с Attiny 85 е трудно, има твърде малко памет.
Vseslav
Добре обмислен и направен, един дребен недостатък - надписите в Аглицки. Могат ли те просто да бъдат разменени за руски или е трудно за Digispark да направи това?
Авторът
Добър ден Часовете в реално време заемат достатъчно място, те няма да се впишат в този случай.
Хм .. защо да не поставите часовник в реално време вместо датчик за температура?
Авторът
Друг съвет, LED е свързан към Digispar Attiny 85 P1, ако използвате този щифт, помислете за неговото присъствие. Аз нарекох този диод на дъската си, тъй като според мен той само се намесва.
Авторът
Добър ден Не е необходимо да правите издърпване с резистор, тъй като окачването, вградено в Attiny, е включено в скицата. Махнете своя суспендър и опитайте отново.
Можете също да опитате друга скица от другите ми часовници, те имат същия контролер и екран, а конфигурацията се извършва с един бутон:
https://bgm.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Гост Роман
Добър ден. Благодаря ви за идеята и работата. Само че ръцете ми не са такива, или не разбирам. Бутоните за настройка на времето не работят нормално. Опитах както вашият скеч, така и моят, в единствения ми добавен пинов режим на входните бутони и издърпах през 10k до 5V. И в това, и в това бутонът не разбра как да натисне, за да се промени. Или изпадам в закъснения или нещо не е наред с бутоните, обичайния часовник.
готин екран. Но лакомо. RAM яде много.
Ти си майстор! изстискайте в тинку85 такава.
Авторът
Прав сте, направихте печатна грешка, 2,8 х 2,8 см
Цитат: maxim0512
Вече не просто се вписват в случая.
По площ можете сто пъти повече, отколкото сте предложили.
Авторът
Вече не просто се вписват в случая. Има само два бутона, резистор и температурен датчик. Всичко просто пасва.
... подрязана платка не по-голяма от 2,8 х 2,8 мм
Няма да е достатъчно. ))

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

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