Arduino Pro Mini to wspaniały mini moduł z mikrokontrolerem. Bardzo małe rozmiary pozwalają zainstalować go wszędzie tam gdzie większe Arduino po prostu nie daje się. Taka mała konstrukcja wymusza jednak szukania optymalnych rozwiązań w zakresie podłączanie na raz wielu elementów elektronicznych np. wyświetlacza. Pod uwagę należy brać przy tym kilka czynników :
- wygoda instalacji, mało kabelków, przejrzysty układ
- koszty podłączania elementów, potrzebny np. dodatkowy konwerter I2C lub rejestr przesuwny
- wielkość pamięci zajmowanej przez wymagane do działania biblioteki i program
I. Podłączenie bezpośrednie LCD HD44780 do pinów digital
Zdecydowanie najtańszy ale i najmniej przejrzysty sposób podłączenia wyświetlacza do Arduino.
- zajętość pinów digital 6 / 9 (3 wolne)
- zajętość pinów analogowych 0 / 8 (8 wolnych
- zajętość pamięci 1996 / 30720 bajtów (6%)
1.Schemat podłączenia:
- piny D2,D3,D4,D5 Arduino odpowiednio do pinów D7,D6,D5,D4 wyświetlacza
- piny D6,D7 Arduino odpowiednio do pinów E,RS wyświetlacza
- do lewej nóżki potencjometra leżącego VCC Arduino,do prawej GND,do środkowej wyjście na pin 3 (VO) wyświetlacza
- do pin 15 (A) wyświetlacza VCC Arduino, do pin 16 (K) GND Arduino
- do pinów VSS,RW wyświetlacza -> GND Arduino
- do pinu VDD wyświetlacza -> VCC Arduino
2.Kod testowy do wyświetlania: Witaj!
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <LiquidCrystal.h> LiquidCrystal lcd(7, 6, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print("Witaj!"); } void loop() { } |
II.Rejestr przesuwny 74HC595 czyli LCD HD44780 na 3 pinach
Tani sposób na podłączenie wyświetlacza dający 3 dodatkowe piny w stosunku do pkt. I poprzez użycie układu rejestr przesuwny 74HC595 . Optymalny również ze względu na niskie użycie pamięci.
- zajętość pinów digital 3 / 9 (6 wolnych)
- zajętość pinów analogowych 0 / 8 (8 wolnych
- zajętość pamięci 2130 / 30720 (6%)
1.Schemat podłączenia
- piny D2,D3,D4 Arduino odpowiednio do pinów 14(DS),12(ST_CP),11(SH_CP) rejestru przesuwnego
- piny D7,D6,D5,D4 wyświetlacza odpowiednio do pinów 15(Q0),1(Q1),2(Q2),3(Q3) rejestru przesuwnego
- do pinów E,RS wyświetlacza odpowiednio 6(Q6),7(Q7) rejestru przesuwnego
- do lewej nóżki potencjometra leżącego VCC Arduino,do prawej GND,do środkowej wyjście na pin 3 (VO) wyświetlacza
- do pin 15 (A) wyświetlacza VCC Arduino, do pin 16 (K) GND Arduino
- do pinów VSS,RW wyświetlacza -> GND Arduino
- do pinu VDD wyświetlacza -> VCC Arduino
2.Kod testowy do wyświetlania: Witaj!
1 2 3 4 5 6 7 8 9 10 11 |
#include <ShiftLCD.h> ShiftLCD lcd(2, 4, 3); void setup() { lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print("Witaj!"); } void loop() { } |
III. Podłączenie HD 44780 przez konwerter I2C
Najdroższy ale i najbardziej przejrzysty sposób podłączenia wyświetlacza do Arduino.
- zajętość pinów digital 0/9 (9 wolnych)
- zajętość pinów analogowych 2 / 8 (6 wolnych)
- zajętość pamięci 3774 / 30720 (12 %)
1. Schemat podłączenia
- konwerter wpinamy w płytkę prototypową dokładnie na przeciwlegle wyświetlacza pin w pin
- VCC i GND konwertera I2C do szyny zasilającej ARDUINO
- SDA konwertera I2C do pinu A4 Arduino
- SCL konwertera I2C do pinu A5 Arduino
2.Kod testowy do wyświetlania: Witaj!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Addr, En, Rw, Rs, d4, d5, d6, d7, backlighpin, polarity void setup() { lcd.begin(16,2); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Witaj!"); } void loop() { } |
wymagana instalacja biblioteki: LiquidCrystal_V1.2.1.zip z https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
Podsumowanie:
Jeśli planujemy wykorzystać kilka(naście) sztuk Arduino Pro Mini w projekcie i wyposażyć je wszystkie w wyświetlacze to najbardziej optymalny finansowo i konfiguracyjnie sposób to podłączenie przez rejestr przesuwny. Jeśli nie musimy liczyć się z kosztami i zależy nam na jak największej przejrzystości układu (mało kabelków) wybierzmy podłączenie przez konwerter I2C.
Warto zobaczyć:
http://akademia.nettigo.pl/lcd_znakowy/
http://majsterkowo.pl/74hc595-lcd-hd44780-3-pinach/
https://magnusglad.wordpress.com/2013/03/16/arduino-lcd/
https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
http://www.dave-auld.net/index.php?option=com_content&view=article&id=95:arduino-digital-out-lcd-display&catid=53:arduino-input-output-basics&Itemid=107
Arduino, ekran i konwerter do kupienia w:
http://botland.com.pl/arduino-moduly-glowne/1595-arduino-pro-mini-328-5v-16mhz.html
http://botland.com.pl/konwertery-pozostale/2352-konwerter-i2c-dla-wyswietlacza-lcd-hd44780.html
http://botland.com.pl/wyswietlacze-alfanumeryczne/224-wyswietlacz-lcd-2×16-znakow-niebieski.html
http://botland.com.pl/uklady-logiczne/1660-rejestr-przesuwny-8-bitowy-74hc595-.html