Skocz do zawartości

Podłączenie wyświetlacza LCD do ekspandera z shielda (Kurs o robotach)


Pomocna odpowiedź

Napisano

Witam,

Chcę podłączyć wyświetlacz lcd (z zestawu do kursów arduino) do ekspandera z shielda (z zestawu do kursu budowania robotów).

Proszę o pomoc jak przekazać adresy pinów z ekspandera.

#include <LiquidCrystal.h> //Dołączenie bilbioteki
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Informacja o podłączeniu nowego wyświetlacza

Z góry dzięki za pomoc.

(edytowany)

Chodzi o ekspander i2c?? Jeśli tak to podajesz ilość wierszy i kolumn i do tego adres ekspandera...

lcd(16,2,0x07);

(Może i na odwrót te parametry...nie pamiętam)

No i korzystasz z biblioteki i2c

Edytowano przez farmaceuta

Dzięki za podjęcie tematu.

Ekspander z shieldu to MCP2308,

"Na pokładzie naszego shielda znajduje się układ MCP2308, który komunikuje się z Arduino za pomocą interfejsu I2C wyprowadzonego na pinach A4 oraz A5."

a wyświetlacz to :

https://botland.com.pl/wyswietlacze-alfanumeryczne-i-graficzne/19738-wyswietlacz-lcd-2x16-znakow-zielony-justpi-5903351243063.html

 

@keram167 Tak zrobiłem zgodnie ze wskazówkami z kursu. Natomiast teraz chciałem podłączyć wyświetlacz do ekspandera z shieldu.

 

@farmaceuta A jak wskazuje które piny z ekspandera wykorzystałem?

 

Z góry dzięki za pomoc!

 

A zapoznałeś się z opisem tego shielda - tutaj. Masz tam dokładnie rozrysowane i opisane jak korzystać ze znajdującego się na tej nakładce MCP2308.

Tak na marginesie to ja zamiast rzeźbić ten układ z Twoim wyświetlaczem zainwestowałbym w wyświetlacz z wbudowanym konwerterem I2C np. ten, a ten expander MCP2308 z shielda wykorzystałbym do innych celów.

(edytowany)
1 godzinę temu, szuwar88 napisał:

 

@keram167

@farmaceuta A jak wskazuje które piny z ekspandera wykorzystałem?

 

Tym już się zajmuje magia biblioteki😉 i ty tego wiedzieć nawet nie musisz...

Edit... myślałem że to pcf jest...to może zamiast czarować i kombinować lepiej kupić dedykowany konwerter?

Edytowano przez farmaceuta
(edytowany)

@farmaceuta Nie kwestionuje tego że lepsze może być inne rozwiązanie. Mam to co kupiłem w zestawach i chciałem testowo sprawdzić czy wyjdzie to co wymyśliłem. Żeby lepiej zrozumieć co się dzieje....

3 godziny temu, farmaceuta napisał:

Tym już się zajmuje magia biblioteki😉 i ty tego wiedzieć nawet nie musisz...

Ok. To jak zrobić połączenie pomiędzy ekspanderem a wyświetlaczem (elektroniczne)?

Edytowano przez szuwar88
Uzupełnienie

Nawet taka odpowiedź że się nie da jest super odpowiedzią. Dzięki za pomoc.

Może ktoś ma jakiś pomysł.

Przekazanie przez referencje. Przerobienie biblioteki. Jakieś konkretne wskazówki. Bardziej chodzi o cel.... Satysfakcje... Rozpoznanie możliwości

(edytowany)
8 godzin temu, szuwar88 napisał:

Bardziej chodzi o cel.... Satysfakcje...

No to jeśli chcesz odkrywać świat na nowo to rozpocznij od szczegółowego poznania układu HD44780 - nota katalogowa.

W poznaniu obsługi HD44780 może ci pomóc ten artykuł - zobacz.

Wiedząc jak działa ten układ, do czego służą piny tego wyświetlacza będziesz wiedział co i w jakiej kolejności musisz wysłać do swojego shielda z expanderem. Pozostanie więc stworzenie własnej biblioteki (procedury) do obsługi wyświetlacza za pośrednictwem MCP2308. Możesz oczywiście wzorować się na istniejących rozwiązaniach - tylko po co? Wykorzystaj ten expander z shielda do innych celów, a wyświetlacz wymień na taki jak sugerowałem.

Edytowano przez Belferek
  • 2 lat(a) później...
(edytowany)
#include <Wire.h>

#include <hd44780.h>                       

#include <hd44780ioClass/hd44780_I2Cexp.h>           // wybór właściwej klasy biblioteki przy obsłudze HD44780 przez MCP23008

// hd44780_I2Cexp lcd(addr, chiptype,    rs,[rw],en,d4,d5,d6,d7,bl,blLevel);

hd44780_I2Cexp lcd(0x20, I2Cexp_MCP23008, 6, 5, 4, 0, 1, 2, 3, 7, HIGH);   //  tu jest opis podłączenia poszczególnych pinów ekspandera

 

void setup() {

lcd.begin(16, 2);

lcd.print("A jednak sie da");

}

 

void loop() {

}

Cześć. Zetknąłem się z podobnym problemem, tj. integracji wyświetlacza HD44780 z ekspanderem MCP23008, który znajduje się na płytce forbota i szukając w internecie rozwiązania, jednak udało mi się je znaleźć. Wiem, że minęło trochę czasu od powyższej dyskusji, ale rozwiązanie może się jednak komuś przyda, tym bardziej, że nie tak łatwo na nie wpaść.

A więc tak: Jak najbardziej jest możliwa obsługa wyświetlacza HD44780 za pomocą ekspandera z tej płytki. To była raczej dla mnie sprawa oczywista już zanim się zabrałem za rozwikłanie tej zagadki. Trzeba przy tym pamiętać, że ekspander na płytce forbota ma na stałe zlutowane do masy piny A0, A1 i A2 w związku z tym "chodzi" na sztywno na adresie I2C - 0x20. To pierwsza sprawa. 

Do obsługi można wykorzystać uniwersalną bibliotekę hd44780 napisaną przez Billa Perry'ego. Jest to bardzo duża biblioteka za pomocą której można obsłużyć wiele różnorakich połączeń wyświetlacza hd44780 do płytki Arduino, w tym także za pomocą ekspandera MCP23008. Biblioteka jest dostępna w ArduinoIDE i bez problemu można ją zainstalować i włączyć do projektu. Warto też dokładnie poczytać dokumentację, ale uwaga jest tam bardzo dużo wariantów skorzystania z biblioteki i należy wybrać właściwy. Trzeba też pamiętać o właściwym podłączeniu wyświetlacza do wyprowadzeń ekspandera znajdujących się na płytce forbota. Sposób podłączenia powinien rozjaśnić się w prostej załączonej implementacji biblioteki

 

lcd.jpg

Edytowano przez Lestek
poprawka wstawienia kodu

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...