» Elektronika » Arduino »Zegar z termometrem na Attiny

Zegarek Attiny z termometrem

Zegarek Attiny z termometrem



Witam wszystkich i życzę miłego dnia lub wieczoru. Tym razem podzielę się instrukcją wykonania zegara pokojowego za pomocą termometru. Centrum obliczeniowym zegarka będzie Attiny85, zmontowane na płycie Digispark. Aby wyświetlić zegar - wyświetlacz Oled. Termometr - dobrze znany ds18b20. Aby uzyskać energię, bierzemy litowo-jonowy 18650 (można je uzyskać ze starej baterii z laptopa). I dodaj wyświetlacz poziomu naładowania baterii. Jak we wszystkich moich poprzednich zegarkach, obejdziemy się bez modułu zegara czasu rzeczywistego RTC.

Zbieramy wszystko, co konieczne:

- Digispark Attiny85 (wersja micro USB)
- ds18b20 (w plastikowej skrzynce)
- Ekran Oled o rozdzielczości 128x64, I2C
- 2 sztuki baterii 18650 lub stara bateria litowo-jonowa do laptopa
- Rezystory (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- Cienki plastik (do obudowy)
- Łączenie przewodów w różnych kolorach
- programista ISP (lub dowolny Arduino opłata)
- Przycisk
- Złącza Dupont 2,54 mm „matka”, „ojciec”
- Nóż biurowy, taśma dwustronna, taśma elektryczna, topliwy
- Wszystko do lutowania (lutownica, kalafonia, lut)

Krok 1 Sprawa.
Przyszłe etui będzie wykonane z cienkiego plastiku. Możesz kupić arkusz takiego plastiku w specjalistycznym sklepie lub zamówić na aliexpress. Możesz też (nie czekać i nie patrzeć) udać się do biura duchownego i kupić teczkę z tworzywa sztucznego w ulubionym kolorze. Wymiary przyszłego zegarka: szerokość - 40 mm, grubość - 30 mm, wysokość - 70 mm. Zgodnie z poniższym schematem wycinamy skan z plastiku:


Tniemy wzdłuż grubych linii, delikatnie zginamy wzdłuż cienkich linii. Wycinamy prostokąt w środku za pomocą noża biurowego, jest to okno do wyświetlenia. W rezultacie otrzymujemy skan plastiku:


Przechodzimy do Attiny.

Krok 2 Attiny + Oled.
Jak powiedziałem, w naszym sercu domowej roboty będzie Attiny 85. Najlepiej jest kupić ten układ, natychmiast wlutowany na płytkę wraz z regulatorem napięcia i wiązką przewodów. Digispark Attiny85 jest dobrze dostosowany. Wybierz wersję z micro-USB na płycie. Inne modyfikacje płyty nie będą pasować do rozmiaru. Zdarza się, że ta płytka jest sprzedawana z lutowanymi „męskimi” złączami Dupon. Jeśli tak, przylutuj wszystkie złącza. Zbieramy kolorowe druty. Potrzebujemy 10 centymetrów w różnych kolorach. Lutujemy je w Attiny i zapisujemy, który drut, którego wniosek odpowiada. Przewody P0 i P2 należy przylutować dwoma przewodami. Druga para jest potrzebna do podłączenia ekranu Oled. Otrzymujemy następujące:


Na drutie napisałem następujący schemat:


Ekran jest mały (pasujący do kontrolera), ale wygląda pięknie. OLED (organiczna dioda elektroluminescencyjna) to wyświetlacz graficzny. Nie ma podświetlenia, a zamiast tego każdy piksel jest niezależną diodą LED. Rozmiary ekranu - 0,96 cala.Rozdzielczość 128x64. Podłączony przez magistralę I2C. Do połączenia z Attiny używa tylko dwóch przewodów. Występują w różnych kolorach, wybierz według własnego gustu. Podobał mi się niebieski z żółtym paskiem u góry. Działamy podobnie do Digispark. Jeśli są zlutowane złącza - przylutuj je. Na razie przylutuj tylko przewody zasilające:


Zachowaj ostrożność podczas lutowania, nie niszcz kabla za pomocą lutownicy na wyświetlaczu:


Łączymy płyty za pomocą dwustronnej taśmy:


Lutujemy razem wyświetlacz Digispark Attiny i Oled zgodnie ze schematem (kolory drutów mogą się różnić, najważniejsze jest to, aby nie zepsuć wniosków):


Dla wygody i porządku zbieramy wszystkie przewody razem. Możesz przekręcić je taśmą elektryczną, aby się nie pomylić:


Na końcu wszystkich przewodów podłączamy „żeńskie” złącze Dupont, wkładamy je do izolatorów i owijamy je taśmą elektryczną, aby utworzyć złącze. Rejestrujemy również wyprowadzenie złącza:


Pinout powinien być taki, ponieważ w przyszłości podłączymy przewód do oprogramowania układowego lub innych elementów zegarka do złącza.
Przyklejamy powstałą strukturę do skrzynki i nie zapomnij przykleić samej obudowy, pozostawiając jeden jęk bez klejenia, do dalszych manipulacji:


Podczas klejenia zwróć uwagę, że ekran jest równomierny:


Krok 3 Moc.
Do zasilania użyjemy dwóch elementów litowo-jonowych. Wpisz 18650. Możesz je kupić osobno. W takim przypadku należy je przylutować równolegle, odizolować i wyprowadzić złącze do podłączenia i późniejszego ładowania:


Wiele ma starsze laptopy. Niezależnie od tego, czy przestają pracować, czy pracują w czasie. Nawet jeśli bateria laptopa jest już zła i nie nadaje się do zamierzonego zastosowania, może być używana do wszelkiego rodzaju domowych produktów. W naszym przypadku na zegarek. Bierzemy baterię z laptopa:


Najważniejsze, że jest on Li-ion. Starannie go demontujemy, należy otworzyć plastikową obudowę, aby nie uszkodzić elementu wewnątrz. Najczęściej bateria jest podzielona na dwa elementy połączone równolegle. Wyjmujemy je i oddzielamy jedną parę od reszty:


Najlepiej przylutować do styków:


Przyklej tę parę do tylnej części zegarka:


Krok 4 Określanie poziomu naładowania baterii.
Wygodną funkcją zegarka jest wskazywanie poziomu naładowania baterii. Stopień naładowania określimy na podstawie napięcia. Minimalne napięcie dla tych akumulatorów wynosi 2,4 V. Nie można go dalej rozładowywać. Maksymalne napięcie wynosi 4,2 V.

Pomiar napięcia w porcie analogowym zawsze odnosi się do jakiegoś innego napięcia. Nie możemy użyć styku AREF mikrokontrolera, który służy do ustawienia napięcia odniesienia. Niemożliwe jest również zmierzenie napięcia w stosunku do napięcia zasilania (stosunek zawsze będzie taki sam). Dlatego określimy napięcie w stosunku do wewnętrznego napięcia odniesienia lub Vbg (napięcie odniesienia Bandgap). Jest to 1,1 V. Teraz musimy obliczyć dzielnik napięcia dla naszej baterii, aby przy maksymalnym naładowaniu (4,2 V) dzielnik miał (1,1 V). Możesz obliczyć według wzoru:



Lub użyj

R1 przyjmuje wartość nominalną 10 kOhm. Następnie R2 otrzymujemy 3,55 KOhm, najbliższy odpowiedni ze standardowych wartości 3,3 KOhm, i weźmy go. Pomiary są dokonywane między napięciem wewnętrznym a GND, więc rezystor 3,3 KΩ jest przylutowany do minus, a 10 KΩ do plus. Umieszczamy rezystory na baterii, wyciągamy drut z dzielnika.


Izolujemy wszystkie kontakty, aby uniknąć zwarcia:


Przewód z dzielnika zostanie podłączony do PB4.

Krok 5 Zmierz temperaturę.
Doskonałym uzupełnieniem zegarka jest pomiar temperatury pokojowej. Użyjemy zintegrowanego czujnika temperatury DS18B20. Do pracy z nim wymagany jest tylko jeden przewód (bardzo przydatny podczas korzystania z Attiny 85). Wszystkie pomiary są wykonywane przez niego, centralny kontroler nie przeszkadza (Attiny 85 ma również doskonałą pamięć i tak mało), musimy tylko wydawać polecenia i uzyskiwać wyniki. Istnieje kilka różnych schematów podłączenia tego czujnika, użyjemy opcji optymalnej dla tego przypadku, moim zdaniem.Korzystanie z zewnętrznego źródła zasilania i rezystora 4,7 kΩ:


Przylutuj małe przewody i przymocuj złącza


Przewód z czujnika DQ jest podłączony do PB 3.

Krok 6 Przycisk.
Mamy kilka wniosków, ale istnieje wiele wymagań dotyczących zegarków. Użyjemy jednego przycisku, aby ustawić czas. Nie możemy liczyć na więcej. Przylutuj przewody do przycisku, jeden styk z niego do GND. Połącz z naszym czujnikiem temperatury:


Drugi styk z przycisku jest podłączony do PB 1.

Krok 7 Przygotowanie środowiska programistycznego
Do dalszej pracy ze szkicem, a także jego edycji i wypełniania potrzebujemy IDE Arduino. Pobierz ten program z:

Teraz dodaj obsługę Attiny 85 w środę. Otwórz Arduion IDE i idź ścieżką:
Plik - Ustawienia - „Dodatkowe adresy URL menedżera tablic” wstaw link:

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


Kliknij OK.
Idź do:
Narzędzia - Zarząd - Zarząd desek, wpisz Attiny i kliknij „attiny by David A. Mellis”. Kliknij „Zainstaluj” i odstaw kawę.
A teraz o bibliotekach. Potrzebują dwóch:

Do pracy z wyświetlaczem Oled

Kontrola czujnika temperatury

Po pobraniu tych archiwów rozpakuj je do folderu „bibliotek”, który można łatwo znaleźć, przechodząc wzdłuż ścieżki instalacyjnej Arduino IDE.

Krok 8 Programator.
Digispark Attiny 85 to świetna deska. Zaprojektowany do podłączenia do komputera USB. I może być przez to programowany. Ale Attiny korzysta z oprogramowania USB, które z kolei zajmuje 2 KB z 8 KB pamięci. To nam nie odpowiada i dlatego sflashujemy Attiny 85 poprzez interfejs ISP. I tutaj potrzebujemy programisty ISP. Jeśli go nie ma - nie ma to znaczenia. Weź Arduino. W moim przypadku Arduino UNO:


Możesz wziąć dowolną inną kompatybilną płytę z linii Arduino. Podłączamy się do komputera, otwieramy Arduino IDE, wybieramy port com, do którego podłączona jest płyta Arduino, otwieramy szkic w przykładach, Arduino ISP i wypełniamy go na płycie. Potrzebujemy również drutu, aby szybko połączyć się z Attiny.


Połączenie jest następujące:

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

Nie zapomnij o odżywianiu Attiny.

Krok 9 Edytuj i wypełnij szkic.

Pobierz szkic

Przed wypełnieniem musisz edytować szkic.
Zintegrowany czujnik ds18b20, jak wspomniano wcześniej, działa z wykorzystaniem protokołu One Wire. Każdy czujnik ma swój unikalny 64-bitowy adres. Musisz znaleźć adres czujnika i zapisać go na szkicu. Otwórz Arduino IDE, podążaj ścieżką:
Plik - Przykłady - Temperatura Dallas - OneWireSearch.

Wypełnij szkic do Arduino. Otwórz monitor portów. Powinieneś zobaczyć adresy wszystkich podłączonych czujników i ich odczyty temperatury. Zapisujemy twój adres. Otwórz mój szkic i zmień adres na swój w linii:

bajt addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};


Aby dostosować przebieg zegara, użyj następującej stałej:

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


Im większa ta wartość, tym wolniejszy zegar.
Dla kontroli sekundy są wyświetlane na ekranie:

OzOled.printNumber ((long) sek, 0, 7); // wyjściowe sekundy dla dokładnego strojenia 


Skomentuj ten wiersz, aby usunąć sekundy.
Teraz podłączamy programator lub Arduino jako programator, wybierz port, wybierz naszą płytkę w menu Narzędzia i ustaw następujące parametry:
Zarząd: Attiny 25/45/85
Procesor: Attiny 85
Zegar: wewnętrzny 16
Następnie wybierz w tym samym menu:
Narzędzia - Programista - „Arduino as ISP”.
I wreszcie:
Szkic - Pobierz za pomocą programatora

Krok 10 Ostateczny montaż i uruchomienie.
Wyłącz programator i podłącz czujnik, zasilanie i przycisk:


Dopóki nie zostanie skonfigurowany dokładny przebieg zegara, możesz zamknąć obudowę za pomocą gumki bankowej. Po zakończeniu możesz go przykleić.


Obejrzyj ocenę
Głosów: 13
10
10
10

Dodaj komentarz

    • uśmiechnij sięuśmiecha sięxaxaoknie wiemyahoonea
      szefiezadrapaniegłupiectaktak-takagresywnysekret
      przepraszamtańczyćdance2dance3przebaczeniepomocnapoje
      przestańprzyjacieledobrzegoodgoodgwizdaćomdlećjęzyk
      palićklaskanierakdeklarowaćdrwiącydon-t_mentionpobierz
      ciepłożałujęśmiech 1mdaspotkaniemoskingnegatywne
      niepopcornukaraćczytaćprzestraszyćstraszyszukaj
      drwinadziękujętoto_clueumnikostryzgadzam się
      źlepszczołablack_eyeblum3rumienić sięchwalić sięnuda
      ocenzurowaneuprzejmośćsekret2grozićzwycięstwoyusun_bespectacled
      shokrespektlolprevedwitamykrutoyya_za
      ya_dobryipomocnikne_huliganne_othodifludzakazzamknij
9 komentarze
Autor
Pomysł jest świetny. Zrobiłem coś z tym. Tylko na wyciągnięcie ręki znajdowała się zmienna 5 kΩ. Włączyłem go w dolne ramię. A następnie zastąpiony przez najbardziej odpowiedni stały. Ale myślę, że w instrukcjach produkcyjnych pisanie nie jest konieczne. Dlaczego nie wykonać tych pomiarów kilka razy.
Nie widziałem potrzeby pisania o żmudnych i długich próbach.
Nie musisz robić nic długiego i żmudnego. Włącz rezystor (2,7 ... 3) kOhm w przedramieniu, kolejno z nim trymer 1 kOhm. Z regulowanego źródła zasilania wprowadzasz ekstremalne wartości kontrolowanego napięcia na wejście, dostosowujesz punkt pracy, a następnie, w razie potrzeby, możesz zmierzyć rezystancję trymera i zastąpić go stałym rezystorem.
Autor
Przy częstotliwości 8 MHz nie próbowałem uruchomić zegara i odpowiednio zmierzyć dokładność kursu. Wszystkie pomiary wykonano od 16 od wewnątrz. Nie mogę też powiedzieć o miesiącu. Do tej pory bez zamykania pracowali maksymalnie tydzień. Nadal trwają eksperymenty i ulepszenia.
Autor
Jeśli chodzi o dzielnik napięcia, naprawdę jest wiele niuansów i błędów. I rozproszenie rezystancji rezystorów i rozproszenie napięcia odniesienia. Próbowałem wszystkiego w praktyce. Podczas korzystania z rezystora 3,6 kΩ, nawet przy napięciu akumulatora 3,9 V, port analogowy Attiny pokazuje 1023 (po konwersji na 100% procent). Przy zastosowaniu rezystora 3,3 kΩ wartość portu analogowego spada nawet przy 4,1 V na akumulatorze. Dlatego napisałem, że zeznania są uzyskiwane dokładniej, po prostu nie widziałem potrzeby pisania o nudnych i długich próbach.
Autor
Ustawiam zegar na tydzień, dostosowuję jego postęp codziennie lub częściej. W rezultacie przy wartości 497343 pędzą przez około 10 sekund tygodniowo.
Częstotliwość można zmniejszyć. Nie zmieniłem parametru, nie było takiej potrzeby
A jaka jest dokładność zegara RC 8 MHz? Na miesiąc?
i dlaczego Zegar: wewnętrzny 16?
Lepiej wybrać mniej, wtedy odczyty są dokładniejsze.
Nie bardziej precyzyjnie, ale po prostu napięcie wejściowe powinno być niższe niż wartość odniesienia. Ponadto, w swoim rozumowaniu wcale nie bierzesz pod uwagę rozproszenia parametrów: rezystory, najprawdopodobniej będziesz miał pięć procent, Vbg = (1,0 ... 1,2) V. Tak więc 3,3 kOhm może być zbyt duże, i może zrobi to 3,6 kilooma.
Autor
Jeśli użyjesz napięcia wyjściowego 3.6, otrzymamy 1,11. Chociaż niewiele, ale więcej napięcia odniesienia. Podczas korzystania z 3,3 - 1,04. Lepiej wybrać mniej, wtedy odczyty są dokładniejsze.
A co do Oh, masz rację, po prostu nie zwróciłem uwagi na ten drobny szczegół.
Po przyklejeniu etui dostęp do gniazda ładowania i przycisków można uzyskać od spodu zegarka, odcinając dolną pokrywę lub po prostu nie przyklejając jej.
Następnie R2 otrzymujemy 3,55 KOhm, najbliższy ze standardowych wartości 3,3 KOhm,
Wcale nie Najbliższy E24 w standardowym zakresie wynosi 3,6 kOhm. A tak przy okazji, nie „KOhm, ale” KOhm.
Dopóki nie zostanie skonfigurowany dokładny przebieg zegara, możesz zamknąć obudowę za pomocą gumki bankowej. Po zakończeniu możesz go przykleić.
Jak będziemy ładować baterię?
I jak manipulować przyciskiem?

Radzimy przeczytać:

Podaj go do smartfona ...