Witam! W tym artykule chciałbym wam przybliżyć jak podłączyć LCD HD44780 na 3 pinach.
Po co? Otóż czasem przy projekcie potrzebujemy wyświetlacza LCD ale użycie go odbiera nam na starcie aż 6 pinów. Aby nie zajmować ich tak dużo, gdyż zapewne mogą nam się przydać później, możemy zredukować tę liczbę do 3. Dokonać tego możemy przy pomocy Rejestru Przesuwnego 74HC595 i biblioteki ShiftLCD.
Potrzebne elementy:
- Arduino Uno R3 [Link]
- Rejestr przesuwny 74HC595 [Link]
- Wyświetlacz LCD zgodny z HD44780 [Link]
- Kabelki połączeniowe [Link]
- Płytka prototypowa [Link]
- Potencjometr 10k lub rezystor 470 ohm [Link]
Schemat połączeniowy:
Po podłączeniu wszystkiego według schematu przystępujemy do pisania kodu z wykorzystaniem biblioteki ShiftLCD.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <ShiftLCD.h> ShiftLCD lcd(2, 4, 3); void setup() { lcd.begin(16, 2); } void loop() { lcd.setCursor(1, 0); lcd.print("LCD HD44780"); lcd.setCursor(0, 1); lcd.print(" NA 3 PINACH"); } |
Gotowy Układ:
Proste prawda? :) Mam nadzieję, że pomogłem niektórym z was i teraz wasza praca będzie prostsza i efektywniejsza.
Ocena: 4.14/5 (głosów: 110)
Świetny tutek, na pewno sie przyda! :D
Raczej “taki sobie”, niż “świetny”. Czego mu brakuje do “świetności”?
Nie chodzi bowiem o to, aby jedynie sklecić jakieś “gizmo” – ale i o to, aby rozumieć, co się właściwie dzieje.
Bardzo fajne! Zakup Ardiuno przedemna ale juz teraz wiem ze wroce do tego tematu.
A komentarz na dole.. nie wiem co tacy ludzie robią na majsterkowo;/
Mam nadzieje ze Łukasz szybko usunie te wulgaryzmy.
Polecam Arduino Pro Mini i jego klony na eBay – można je dorwać za śmieszne ceny, np:
http://www.ebay.pl/itm/Pro-Mini-atmega328-Replace-ATmega128-5V-16M-For-Arduino-Compatible-Nano-Module-/131000843270?pt=LH_DefaultDomain_0&hash=item1e80423c06&_uhb=1
Trzeba mieć jednak przejściówkę USB-UART (która prędzej czy później i tak będzie Ci potrzebna) albo programator.
Np. taką? http://www.ebay.com/itm/141049228591
Które piny należy z tej przejściówki podłączyć? RX, TX, GND wiadomo.
Potem, z konwertera +5V do VCC na Pro Mini? (Czy od razu ten konwerter zasili Pro Mini?) Czy 3V3 z konwertera też trzeba gdzieś podłączać?
Co do przejściówki – nie mam pojęcia, nigdy nie używałem układu CP2102. Większość ludzi chwali sobie FT232, ale ja (jak i wiele innych osób) stosuje znacznie tańszy PL-2303, np:
http://www.ebay.pl/itm/New-1PCS-PL2303HX-USB-To-TTL-Auto-Converter-Adapter-Module-unit-For-arduino-/141150349286?pt=LH_DefaultDomain_0&hash=item20dd3767e6&_uhb=1
Co do zasilania – to zależy od Ciebie, jak chcesz zasilać Arduino, ale najczęściej jest to 5V. Podpinasz tylko jeden kabelek – ALBO 5V, ALBO 3.3V.
Czy kupujac tego klona bedzie on rowniez wyswietlal w programie konsoli wartosci z pinów analogowych?
A dlaczego by nie? Jeżeli tylko klon ma wyprowadzone piny analogowe, to tak :).
Nie miałeś problemu z takim błędem: avrdude: stk500_getsync(): not in sync: resp=0x00? Wczoraj doszedł do mnie ten klon i męczę sie cały czas z tym błędem..
Nie miałem takiego błędu.
Parę porad: jak najkrótsze kabelki, (dotyczy to też USB), sprawdź czy wybrałeś dobrą płytkę w IDE, przetestuj przejściówkę USB-UART (zepnij razem RX i TX i sprawdź, czy jest echo, tzn czy wraca to, co wysyłasz)
Ale co mam wpisac? Coś konkretnego czy obojętnie?
Obojętne
Rezystor do podswietlenia niepotrzebny? Przydalby sie tutek jak podlaczyc lcd po I2C przez konwerter. Daje 5
Niepotrzebny. Wyświetlacz ma rezystory przylutowane na płytce. Ale zawsze trzeba sprawdzić, czy się tam znajdują.
Tutek na pewno przydatny dla osób, które nie spotkały się z rejestrami. Arduino-opornych może zainteresować ten link:
http://mikrokontrolery.blogspot.com/2011/03/lcd-hd44780-na-3-pinach-74hc595.html
O, nawet nie wiedziałem że tak można :) Super!
Widziałem kiedyś coś podobnego, ale na jakimś innym scalaku (trudno dostępnym), a tu taka niespodzianka – tani rejestr przesuwny, dostępny prawie wszędzie :) Artykuł świetny
Można zrobić jeszcze inaczej posługując się specjalnym wyświetlaczem https://www.sparkfun.com/products/9394 niestety cena jest dość wygórowana. Jest do niego też bibloteka i nie trzeba robić płytki.
Można też na jednym pinie!
Jakiś czas temu to zrobiłem, pomysł nie jest mój, tylko go zaadoptowałem.
Link do opisu tego rozwiązania: http://forum.atnel.pl/topic4330.html
PS. to przykład w czystym C bo arduino nie używam ale dla kogoś chcącego nie stanowi problemu przeniesienie na inną platformę.
Gratuluje. Kto by się spodziewał że da się to zrobić prościej. W moich założeniach potrzebowałem:
– powielacza napięcia do generowania znaczników
– komparatora z ogranicznikiem napięcia do wykrywania znaczników
– licznika zliczającego bity ramki
A wystarczyło wykorzystać dwa układy RC wprowadzające inercje ;).
A da się podłączyć do takiego zestawu następny rejestr przesuwny, bo od dawna mam już w moim projekcie wyświetlacz lcd na rejestrze a chciał bym podłączyć wyświetlacz 7 seg 4 cyfrowy tez na rejestrze?
http://pastebin.com/Kqedks5j
i
http://pastebin.com/p5gVg58v
Można też sterować 1 pinem używając (1-wire) DS2408 http://ep.com.pl/files/4146.pdf
Nareszcie coś co działa na arduino leonardo! Dzięki!