

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ć.


