» Elektronika » Arduino »Zegarki Oled na Attiny85

Zegarki Oled na Attiny85

Dzień dobry i znowu jestem z moimi zabawkami. Dzisiaj przedstawiam wam instrukcje tworzenia małych, ale uroczych zegarków z czujnikiem temperatury w pomieszczeniu.
Zegarki Oled na Attiny85


Lista potrzebnych rzeczy:
- Digispark Attiny85
- Wyświetlacz Oled 128x64 I2C
- czujnik temperatury ds18b20
- Rezystor 4,7 Kom 0,25 W.
- programista ISP lub Arduino Płyta z oprogramowaniem Digispark Attiny85
- Plastikowy tablet z spinaczem lub cienkim plastikiem
- przewody
- Złącza „żeńskie” Dupont 2,54 mm
- Przyciski 2 szt.
- Mała płytka drukowana lub małe wykończenie
- lutownica
- Lut, kalafonia
- nożyczki
- nóż biurowy
- Pistolet do klejenia na gorąco
- Gorący klej

Krok 1 Wybór komponentów.
Jako główny kontroler użyjemy Digispark Attiny85. Istnieje kilka ich rodzajów. Potrzebujemy płyty ze złączem micro USB. Reszta nie zmieści się w etui do zegarka.

Do wyświetlenia potrzebujemy wyświetlacza Oled 128x64 I2C. Występują w różnych kolorach: białym, niebieskim, niebieskim z żółtym. Zwracam uwagę! Termin „dwukolorowy” w opisie lub tytule tego ekranu oznacza pasek jednego koloru u góry ekranu, a drugi kolor całego pozostałego ekranu, a nie możliwość wyświetlania dwóch kolorów na tym ekranie! Wszystkie ekrany tego typu wyświetlają tylko jeden kolor, a na górze pasek jednego koloru na dole - inny. Jak na przykład ten, którego użyję. Pasek powyżej jest żółty, reszta ekranu jest niebieska. Możesz wybrać dowolny kolor.
Potrzebujemy również zintegrowanego czujnika temperatury DS18B20. Nie został wybrany przypadkowo. Po pierwsze, DS18B20 komunikuje się z mikrokontrolerem za pomocą jednoprzewodowej linii komunikacyjnej z wykorzystaniem protokołu interfejsu 1-Wire. W naszym przypadku jest to ważne, ponieważ wniosków Attiny85 bez czujnika jest niewiele. Po drugie, ten czujnik jest cyfrą, to znaczy, że sam wykonuje wszystkie pomiary i po prostu przesyła dane temperatury, nie zużywając zasobów obliczeniowych Attiny85.

Co do reszty, myślę, że nie będzie pytań, przejdźmy więc do produkcji skrzynki.

Krok 2 Montaż obudowy.
Obudowa zegarka będzie wykonana z cienkiego plastiku. Na rękach miałem plastikowy tablet z spinaczem do papieru. Jest wystarczająco twardy, aby utrzymać swój kształt, a jednocześnie można go ciąć zwykłymi nożyczkami i nożem biurowym. Podszedł idealnie.Jeśli nie jest pod ręką, możesz kupić tablet w sklepie z artykułami biurowymi lub znaleźć odpowiedni plastik do zastąpienia tabletu. Wykonujemy oznaczenia na plastiku zgodnie ze schematem:


Wytnij wszystkie ciągłe linie. Kropkowane - lekko cięte nożem biurowym. Kropkowane linie to linie zagięcia. Jak już zrozumiałeś, jest to zwykły układ kostki. Następnie musisz przylutować przewody do ekranu, najlepiej wziąć wielobarwne i zapisać, co prowadzi do czego. Przyklej ekran na kleju topliwym na środku, aby przednia strona wychodziła z tyłu. Jak widać, zamknęliśmy oznaczenia pinów ekranu. Dlatego konieczne było ich spisanie. Lekko podałem nóż, a tym samym odciąłem dolną część ciała. Nie ma w tym nic złego, wszystko można skleić. Ale lepiej nie powtarzać moich błędów.



Wynik powinien wyglądać następująco:


W tej sprawie jest gotowy. Nadal możesz wyciąć tylną pokrywę z tego samego plastiku, ale jest to opcjonalne.

Krok 3 Lutujemy.
Nasza sprawa jest niewielka i musimy tam dużo wcisnąć. Dlatego bierzemy kawałek płytki drukowanej nie większej niż 2,8 x 2,8 mm i lutujemy w dwóch przyciskach, czujnik ds18b20, rezystor i kilka styków. Zgodnie z następującym schematem:


Nie jest konieczne lutowanie przewodów bezpośrednio do Attiny, ponieważ konieczne jest odłączenie wszystkiego w przypadku oprogramowania układowego. Wynik powinien być mniej więcej taki:



Do ustawienia godziny potrzebne są przyciski. Zasilanie można pobierać z portu USB komputera. Łącząc odpowiednio plus i minus:


Jeśli chcesz obejść się bez przewodów, musisz znaleźć małą baterię litowo-jonową. Oto na przykład:


Bateria mieści się w obudowie. Konieczne jest jedynie przedstawienie wniosków dotyczących ładowania akumulatora.

Krok 4 Przygotowanie programatora.
Digispark Attiny85 można zaprogramować za pomocą złącza micro USB na płycie, używając Arduino IDE jako środowiska programowania. Ale musisz poświęcić 2 KB pamięci dla programu ładującego. Attiny 85 ma w sumie 8 KB Flash. Mój szkic nie pasuje do bootloadera, więc muszę programować za pomocą programatora ISP. Nie mam takiego programatora, ale jest płyta Arduino Uno, której będę używać jako programisty. Jeśli masz programistę ISB, możesz pominąć ten element. Otwórz Arduino IDE i wypełnij nasz szkic ArduinoISP w naszym Arduino Uno. Można go znaleźć tak: Plik - Przykłady - Arduino ISP. Szkic rozpoczyna się od podpowiedzi, jak podłączyć Arduino do programowalnego kontrolera. Zamiast Arduino Uno może istnieć dowolna inna tablica Arduino.
// 10: reset slave
// 11: MOSI
// 12: MISO
// 13: SCK


Schemat połączenia z Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5


Krok 5 Przygotowanie środowiska programowania.
Aby edytować oprogramowanie wewnętrzne i wypełnić szkic w Attiny 85, musisz przygotować nie tylko programistę, ale także samo środowisko programowania. Aby to zrobić, zainstaluj Arduino IDE z oficjalnej strony Arduino.cc, a także zainstaluj dodatek Attiny dla mikrokontrolerów za pośrednictwem Boards Managera.

Uruchom Arduino IDE, a następnie Plik - Ustawienia - w polu Adresy URL Menedżera dodatkowych tablic wklej link:

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


kliknij OK (w tym polu możesz wprowadzić kilka łączy oddzielonych przecinkiem). Dalej Narzędzia - Zarząd - Zarząd desek w polu filtra, wpisz Attiny i kliknij „attiny by David A. Mellis”. Kliknij Zainstaluj i poczekaj na zakończenie pobierania. Teraz w menu Narzędzia wybierz:
Zarząd - Attiny 25/45/85
Procesor - Attiny 85
Zegar - wewnętrzny 16
i wybierz port szeregowy, do którego jest podłączony programator ISP lub Arduino.
Próbowałem wielu różnych bibliotek do pracy z ekranem. Moim zdaniem najwygodniejszy i działający na Attiny85: TinyOzOLED.
tinyozoled-master.rar [15.99 Kb] (pliki do pobrania: 477)


Czujnik temperatury potrzebuje biblioteki OneWire.
onewire.rar [16.75 Kb] (pliki do pobrania: 263)


Zainstaluj te dwie biblioteki. Możesz zainstalować biblioteki innych firm bezpośrednio w środowisku programowania. Bez rozpakowywania pobranych archiwów w Arduino IDE wybierz menu Szkic - Połącz bibliotekę. U góry listy rozwijanej wybierz element biblioteki Dodaj .Zip. W wyświetlonym oknie dialogowym wybierz bibliotekę, którą chcesz dodać. Otwórz ponownie menu Szkic - Połącz bibliotekę. Na samym dole listy rozwijanej powinieneś zobaczyć nową bibliotekę. Teraz biblioteki można używać w programach. Nie zapomnij zrestartować Arduino IDE po tym wszystkim.Jeśli to nie pomoże, po prostu rozpakuj archiwa do folderu „bibliotek” znajdującego się w folderze z zainstalowanym Arduino IDE.

Krok 6 Edytuj i wypełnij szkic.
Czujnik temperatury działa zgodnie z protokołem One Wire i ma unikalny adres dla każdego urządzenia - kod 64-bitowy. Zasoby Attiny nie wystarczą, aby za każdym razem szukać tego kodu. Dlatego musisz najpierw podłączyć czujnik do dowolnej płyty Arduino, wypełnić szkic znajdujący się w menu Plik - Przykłady - Temperatura Dallas - OneWireSearch. Następnie uruchom Narzędzia - Monitor portów. Arduino powinien znaleźć nasz czujnik, wpisać jego adres i aktualne odczyty temperatury. Kopiujemy lub po prostu zapisujemy adres naszego czujnika. Otwórz szkic Attiny85_Oled_SPI_Term_2, poszukaj linii:

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


Zapisujemy adres twojego czujnika pomiędzy nawiasami klamrowymi, zastępując adres mojego czujnika. Następnie podłącz Attiny do programisty lub Arduino jako programista (opisano to w kroku 4) i wypełnij szkic. Pozostaje odłączyć programator i podłączyć wszystko zgodnie ze schematem w 3 krokach. Zespół okazuje się mniej więcej taki:


Ekran jest mały, nie można ustawić czasu i temperatury, aby był widoczny. Dlatego zegar zmienia czas z odczytem temperatury co 10 sekund.
attiny85_oled_spi_term_2.rar [2.33 Kb] (pliki do pobrania: 574)

Attiny 85
Głosujących ogółem: 118
9.3
10
8.7

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
13 komentarze
Vseslav
Dzięki, dzięki!
Autor
Dobry wieczór Nie korzystałem z biblioteki Digispart. Mają zbyt duży program ładujący, a wraz z nim szkic zegara nie pasował. Użyłem biblioteki TinyOzOLED. Ona nie ma rosyjskiego. Ogólnie rzecz biorąc, z Attiny 85 jest to trudne, jest za mało pamięci.
Vseslav
Dobrze przemyślana i zrobiona, jedna drobna wada - napisy w języku Aglitsky. Czy można je po prostu wymienić na rosyjski, czy też Digispark ma takie trudności?
Autor
Dzień dobry Zegary czasu rzeczywistego zajmują wystarczająco dużo miejsca, nie mieszczą się w tym przypadku.
Hmm .. dlaczego nie umieścić zegara czasu rzeczywistego zamiast czujnika temperatury?
Autor
Kolejna wskazówka: dioda LED jest podłączona do Digispar Attiny 85 P1, jeśli używasz tego pinu, rozważ jego obecność. Nazwę tę diodą nałożyłem na swoją płytkę, ponieważ moim zdaniem to tylko przeszkadza.
Autor
Dzień dobry Nie ma potrzeby wykonywania podciągania za pomocą rezystora, ponieważ zawieszenie wbudowane w Attiny jest uwzględnione w szkicu. Zdejmij szelki i spróbuj ponownie.
Możesz także wypróbować inny szkic z moich innych zegarków, mają one ten sam kontroler i ekran, a konfiguracja odbywa się za pomocą jednego przycisku:
https://plm.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Gość Roman
Dzień dobry Dziękuję za pomysł i pracę. Tylko albo moje ręce nie są takie, albo nie rozumiem. Przyciski ustawiania czasu nie działają normalnie. Próbowałem zarówno twojego skecha, jak i mojego, w moim tylko dodałem tryb pinów przycisków wejściowych i naciągnąłem od 10k do 5V. I w tym iw tym, że przycisk nie rozumiał, jak nacisnąć, aby zmienić. Albo wpadam w opóźnienia lub coś jest nie tak z przyciskami, zwykłym zegarem.
fajny ekran. Ale żarłoczny. RAM dużo je.
Jesteś mistrzem! ściśnij w tinku85 takie.
Autor
Masz rację, zrobiłem literówkę, 2,8 x 2,8 cm
Cytat: maxim0512
Nie pasuje już tylko do obudowy.
Według obszaru możesz sto razy więcej niż proponowałeś.
Autor
Nie pasuje już tylko do obudowy. Są tylko dwa przyciski, rezystor i czujnik temperatury. Wszystko po prostu pasuje.
... przycięta płytka drukowana nie większa niż 2,8 x 2,8 mm
To nie wystarczy. )))

Radzimy przeczytać:

Podaj go do smartfona ...