Automatyczne sterowanie jasnością LCD + termometr DS18B20

Automatyczne sterowanie jasnością LCD + termometr DS18B20

Witajcie Majsterkowicze i Programiści, ponieważ zbliżają się wakacje to jest coraz “luźniej” w szkole, a co za tym idzie i w domu, dlatego zacząłem tworzyć i programować “moduły”. Będą one częścią większego projektu, który postaram się opisać po skończeniu :D .

Co to? W jakim celu jest to stworzone?

Chciałbym Wam dzisiaj zaprezentować jeden moduł. Jest to automatyczne sterowanie jasnością LCD podpiętego do Arduino. Normalnie podświetlanie jest dostosowane do jasności pomieszczenia. Po przyciśnięciu przycisku jasność jest równa 100% na określony czas przykładowo 6 sekund. No i każdy by w tym momencie mógł powiedzieć pff też tak umiem, no ale mój kod nie używa funkcji delay. Czyli to znaczy że nie “zatrzymuje” programu na czas podświetlenia ekranu (np. 6 sekund)

Jak to działa?

Arduino mierzy napięcie na środkowej nóżce dzielnika napięcia stworzonego z fotorezystora i rezystora. Przelicza wartość tego z 0-1024 na 5-255. Potem jeśli nie jest wciśnięty przycisk, za pomocą pinu PWM steruje podświetlaniem LCD. Natomiast jeśli jest wciśnięty to zapala maksymalne podświetlanie i wtedy zaczyna odliczać czas (tak jak w programie Blink Wiothout Delay). Po określonym wcześniej czasie podświetlanie jest “przełączane” na automatyczne.

 

Co będzie nam potrzebne?

może to być np. ten zestaw startowy

 

Dalej -> Zbudujmy sobie to i wgrajmy program najpierw podłączamy LCD:

  1. (pin od lewej) GND
  2.  +5V
  3. środkowa nóżka potencjometru
  4. Arduino pin 12
  5. GND
  6. Arduino pin 11
  7. Arduino pin 5
  8. Arduino pin 4
  9. Arduino pin 3
  10. Arduino pin 2
  11. Arduino pin 9
  12. GND

potem robimy dzielnik napięcia: 1 nóżka fotorezystora +5V 2 nóżka fotorezystora łączymy z nóżką rezystora > to podłączamy do Arduino pin A0 2 nóżka rezystora GND przycisk 1  nóżka +5V 2 nóżka Arduino pin A5 i przez rezystor 10k do GND a oto jak powinien wyglądać układ   lcd auto_bb potem wgrywamy program. stworzyłem go na podstawie kodu który znalazłem w sieci (tu) nie do końca go rozumiem ale trudno :/ czas podświetlania można ustawić w: #define LCD_LIGHT_ON_TIME 6000 (dokładniej zmieniając to 6000)

Ok, to chyba było by na tyle co do przygotowania. Teraz możemy  to przetestować. Termometr DS18B20 Pokażę Wam możliwość zastosowania tego kodu w praktyce. Przyda nam się termometr DS1820, a najlepiej dwa. Zapytać mogli byście czemu akurat ten. Odpowiedź jest prosta: taki dostałem w starter kicie :) Budujmy: najpierw zobaczmy jego wyprowadzenia: ds18b20 jak wiemy już jakie ma wyprowadzenia to podłączamy: 1 nóżkę do GND 2 nóżkę do Arduino pin 1 3 nóżkę do +5V teraz bardzo ważne, aby pomiędzy 2 i 3 nóżką dać rezystor ok. 5k dwa DS18B20 możemy podłączyć pod w Arduino jeden pin ponieważ każdy z nich ma własny unikalny numer :D lcd auto temp_bb no i znowu czas na kod ;) to jest to samo co przedtem + obsługa DS18B20

a i jeszcze zapomniałem że będziecie potrzebować kilku bibliotek do obsługi tego termometru, które są dostępne tutaj teraz możemy przetestować :)) Pod koniec kilka zdjęć IMG_20140606_185029IMG_20140606_185120

Na sam koniec…. PODZIĘKOWANIA

chciałbym podziękować Elektro Marasowi, za to że na moją prośbę próbował coś zrobić ale niestety nie udało mu się to :( , dzięki temu miałem motywację do dalszego poszukiwania i pisania. Następnie dziękuję Neonowi za to że pokazał mi Arduino i wskazał sposób jak próbować poprawić niedziałający kod :)) No i chyba to już wszystko co chciałbym Wam dzisiaj pokazać.     Zachęcam do komentowania. Postaram się odpowiedzieć na wszelkie pytania :)

Pytania:

Czy ktoś byłby zainteresowany sposobem pokazywania temperatury za pomocą Led RGB?

Czy ktoś byłby zainteresowany kasą dla dzieci? (interkatywna)


Edycja.

Załączam filmik przedstawiający działanie całego układu :D

 

Ocena: 4.09/5 (głosów: 99)

Podobne posty

50 komentarzy do “Automatyczne sterowanie jasnością LCD + termometr DS18B20

Odpowiedz

anuluj

Masz uwagi?