» Elektronika » Arduino »Zegarek Arduino z czujnikiem temperatury i bez RTS

Zegarek Arduino z czujnikiem temperatury i bez RTS

Zegarek Arduino z czujnikiem temperatury i bez RTS

Dzień dobry, dziś podzielę się instrukcjami, jak zrobić zegarek z termometrem pokojowym. Zegarek działa Arduino Ekran graficzny UNO, WG12864B służy do wyświetlania czasu i temperatury. Jako czujnik temperatury - ds18b20. W przeciwieństwie do większości innych zegarków, nie będę używać RTS (zegar czasu rzeczywistego), ale postaram się obejść bez tego dodatkowego modułu.

Do tego domowej roboty Wymagane są następujące elementy:
- Arduino UNO (lub dowolna inna płyta kompatybilna z Arduino)
- Ekran graficzny WG12864B
- czujnik temperatury ds18b20
- Rezystor 4,7 Kom 0,25 W.
- Rezystor 100 omów 0,25 W.
- Komora baterii na 4 baterie AA „palcowe”
- Odpowiednie pudełko
- Mały plik
- Lakier do paznokci (czarny lub w kolorze nadwozia)
- Trochę cienkiego plastiku lub kartonu
- taśma elektryczna
- przewody łączące
- płytka drukowana
- Przyciski
- lutownica
- Lut, kalafonia
- Taśma dwustronna

Krok 1 Przygotowanie obudowy.
Nasze zegarki powinny być gdzieś zlokalizowane. Musisz znaleźć odpowiednie pudełko. Najważniejsze jest to, że mieści się w nim ekran WG12864B, Arduino i mała płytka drukowana z przyciskami. Minimalny rozmiar pudełka to 7 x 7 x 10 cm. Jeśli używasz małej płyty Arduino, możesz włożyć ją do pudełka i mniejszej, ale opiszę proces na przykładzie Arduino UNO. Materiał, z którego wykonane jest pudełko, jest najlepiej plastikowy, jeśli, podobnie jak mój, jest to żelazo, warto dbać o izolację, aby nie było w niej „skracania”. Preferowany jest plastik, ponieważ jest łatwiejszy do cięcia. Zdecydował, że z pudełkiem jest w przypadku naszych zegarków. Teraz należy wyciąć okno pod ekranem o wymiarach 6,5 x 4 cm. Jeśli pudełko jest żelazne, niezwykle trudno jest to zrobić ostrożnie. Bez względu na to, jak spróbujesz, w pobliżu rany pojawi się odprysk i farba. Dlatego najpierw go wycinamy, w tym celu można użyć „szlifierki”, wiertarki z dyszą do cięcia lub ogólnie frezu do wyboru, z tym, co masz pod ręką. Następnie czyścimy krawędzie za pomocą pliku. Malujemy wszystkie rozdrobnione farby lakierem do paznokci o odpowiednim kolorze. Wynik powinien być następujący:


Krok 2 Przygotuj ekran graficzny.
Po podłączeniu ekranu na pierwszy rzut oka pojawia się wiele problemów i trudności. Ale jeśli najpierw poradzisz sobie z ich typami, stanie się to znacznie łatwiejsze i bardziej zrozumiałe. Istnieje wiele odmian i typów ekranów w kontrolerze ks0107 / ks0108.Wszystkie ekrany są zwykle podzielone na 4 typy:
Opcja A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Opcja B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Wyświetla AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J-1Y, QY
Opcja C: Shenzhen Jinghua Displays Co Ltd. Jm12864
Opcja D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Lista nie jest kompletna, jest ich dużo. Najpopularniejszy i, moim zdaniem, wygodny WG12864B3 V2.0. Wyświetlacz można podłączyć do Arduino przez port szeregowy lub równoległy. W połączeniu z Arduino UNO lepiej jest wybrać połączenie z portem szeregowym - wtedy potrzebujemy tylko 3 wyjść mikrokontrolera, zamiast minimum 13 linii, gdy są podłączone przez port równoległy. Wszystko jest połączone po prostu. Jest jeszcze jeden niuans, dwa rodzaje wyświetlaczy można znaleźć w sprzedaży, z wbudowanym potencjometrem (do regulacji kontrastu) i bez niego. Wybrałem i radzę zrobić to samo z wbudowanym.


Zmniejsza to liczbę części i czas lutowania. Warto również umieścić podświetlenie opornika ograniczającego prąd o wartości 100 omów. Podłączając bezpośrednio 5 woltów, istnieje ryzyko poparzenia podświetlenia.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5 V.
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - przez rezystor - + 5 V.
20 (BLK) - GND

Najwygodniej jest zebrać wszystko za ekranem i wyprowadzić z niego 5 przewodów, aby połączyć się z Arduino UNO. Wynik powinien być mniej więcej taki:


Dla tych, którzy nadal wybierają połączenie równoległe, podam tabelę połączeń.


A układ dla ekranów opcji B:


Krok 3 Podłącz czujnik temperatury.
Jak powiedziałem, będziemy używać zintegrowanego czujnika DS18B20 do pomiaru temperatury. Wybrałem go ze względu na jego wysoką dokładność pomiaru, błąd nie przekracza 0,5 ° C. Czujnik jest kalibrowany w momencie produkcji; nie są wymagane żadne dodatkowe ustawienia. Zakres pomiaru temperatury -55 ... + 125 ° C. Istnieją dwa tryby działania: z zewnętrznym źródłem zasilania i „mocą pozorną”. Podczas pracy w trybie zewnętrznego zasilania połączenie jest następujące:


Podczas korzystania z „energii pozornej” czujnik odbiera energię z linii komunikacyjnej. W tym trybie wystarczą dwa przewody, aby podłączyć ds18b20 do mikrokontrolera. Wewnętrzny kondensator czujnika jest ładowany z powodu energii na linii komunikacyjnej na niskim poziomie w magistrali. Tryb „pasożytniczego odżywiania” ma wiele funkcji i dlatego nie polecam go używać. Ale jeśli nadal zdecydujesz się go użyć, oto schemat:


Lub możesz użyć ulepszonego schematu połączeń, gdy używasz „fałszywej mocy”:


Kilka czujników może być dołączonych do jednej linii komunikacyjnej. Do naszych zegarków wystarczy. Drut łączymy z pinu „DQ” ds18b20 z „pin 5” Arduino UNO.

Krok 4 Przygotowanie tablicy z przyciskami.
Aby ustawić godzinę i datę na zegarku, użyjemy trzech przycisków. Dla wygody przylutuj trzy przyciski na płytce drukowanej i wyjmij przewody.


Łączymy się w następujący sposób: przewód wspólny dla wszystkich trzech przycisków jest podłączony do Arduino „GND”. Pierwszy przycisk służy do przejścia do trybu ustawiania czasu i przełączania czasu i daty, podłącz do „Pin 2”. Drugi przycisk do zwiększenia wartości to „Pin 3”, a trzeci przycisk do zmniejszenia wartości to „Pin 4”.

Krok 5 Złóż to wszystko razem.
Aby uniknąć zwarcia, zaizoluj ekran. W kółko owijamy taśmą elektryczną, a z tyłu zapinamy na dwustronną taśmę, przyciętą na wymiar, pasek materiału izolacyjnego. Odpowiedni jest gruby karton lub cienki plastik. Użyłem plastiku z papierowego tabletu. Okazało się, że:


Z przodu ekranu wzdłuż krawędzi przyklejamy dwustronną taśmę na bazie pianki, najlepiej czarnej.


Podłączamy ekran do Arduino:


Dodatkowo łączymy komorę baterii z „VIN” Arduino, minus do „GND”. Umieszczamy go za Arduino. Przed instalacją w obudowie nie zapomnij podłączyć czujnika temperatury i płyty za pomocą przycisków.


Krok 6 Przygotuj i wypełnij szkic.
Czujnik temperatury potrzebuje biblioteki OneWire.
onewire.rar [16.75 Kb] (pliki do pobrania: 154)


Dane wyjściowe na ekranie są przez bibliotekę U8glib:
u8glib.rar [906.95 Kb] (pliki do pobrania: 156)


Aby edytować i wypełnić szkic, zainstaluj te dwie biblioteki. Można to zrobić na dwa sposoby. Po prostu rozpakuj te archiwa i umieść rozpakowane pliki w folderze „bibliotek” znajdującym się w folderze z zainstalowanym Arduino IDE.Lub drugą opcją jest instalacja biblioteki bezpośrednio w środowisku programowania. Bez rozpakowywania pobranych archiwów w Arduino IDE wybierz menu Szkic - Połącz bibliotekę. Na samej górze listy rozwijanej wybierz element „Dodaj .Zip Library”. 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.

Czujnik temperatury działa zgodnie z protokołem One Wire i ma unikalny adres dla każdego urządzenia - kod 64-bitowy. Za każdym razem szukanie tego kodu jest niepraktyczne. Dlatego najpierw musisz podłączyć czujnik do 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 Arduino_WG12864B_Term, poszukaj linii:

bajt addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // adres mojego czujnika 


Zapisujemy adres twojego czujnika pomiędzy nawiasami klamrowymi, zastępując adres mojego czujnika.

Zapas:

//u8g.setPrintPos (44, 64); u8g.print (sek); // Wydrukuj sekundy, aby sprawdzić poprawność kursu


Wyświetla sekundy obok „Dane”. Jest to konieczne, aby dokładnie ustawić bieg czasu.
Jeśli zegar się spieszy lub opóźnia, należy zmienić wartość w wierszu:

if (micros () - prevmicros> 494000) {// zmiana na inną w celu dostosowania wyniosła 500 000


Eksperymentalnie określiłem liczbę, przy której zegar idzie całkiem dokładnie. Jeśli twój zegarek się spieszy, powinieneś zwiększyć tę liczbę; jeśli jestem z tyłu, zmniejsz ją. Aby ustalić dokładność kursu i potrzebować sekund wnioskowania. Po dokładnej kalibracji liczby sekundy można skomentować, a tym samym usunąć z ekranu.

Wypełnij szkic.
arduino_wg12864b_term.rar [3.64 Kb] (pliki do pobrania: 314)

7
9
5.3

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

Radzimy przeczytać:

Podaj go do smartfona ...