Problem z LCD 4x40

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Problem z LCD 4x40

Post autor: M@ciej » 12 kwie 2008, 12:57

Witam serdecznie :)

Zakupiłem niedawno w firmie Artronic wyświetlacz 4x40. LInk do strony z informacjami jest Tutaj . Powiedziano mi,że ten wyświetlacz jest kompatybilny z większością wyświetlaczy, jednak tak nie jest. Opisywany wyświetlacz ma sterownik KS0066, podczas gdy Bascom obsługuje wyświetlacze z KS077.

Czy jest możliwość poprawnego sterowania tego wyświetlacza?

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 12 kwie 2008, 15:04

Witam!
Mógłbyś konkretnie powiedzieć co się dzieje?
Ja co prawda pracowałem pod BASCOMem z wyświetlaczem 20*4 (tzn. to jest największy jakiego używałem), ale też na początku dziwnie się zachowywał. Okazało się bowiem ze nie działały mi polecenia: SECONDLNE, THIRDLINE, LOWERLINE itp. Po wydaniu np. polecenia LOWERLINE kursor nie przeskakiwał z pierwszej linijni do drugiej tylko do trzeciej!
Zastosowanie polecenia LOCATE x, y załatwiło sprawę.
Nie jestem pewien ale w nowszych BASCOMach jest biblioteka do obsługi wyświetlaczy- może tam znajdziesz pomoc. Pozdrawiam.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 12 kwie 2008, 16:19

Właściwie to nic sie nie dzieje, na wyświetlaczu nic się nie pokazuje. Po podłączeniu zwykłego 2x16 wszystko gra.
Na tym dużym 4x40 piszę:

Kod: Zaznacz cały

Locate 1,1 : LCD "Linia1"
Locate 2,1 : LCD "Linia2"
Locate 3,1 : LCD "Linia3"
Locate 4,1 : LCD "Linia4"
... i nic się nie wyświetla.

Inna sprawa to podłączenie wejścia Vo. Wg. opisu ze strony Artronic, każą dać potencjometr 20k pomiędzy Vo a masę. Ja zawsze dla uproszczenia łączę od razu Vo z masą, ale to w "małych" wyświetlaczach, tutaj kręcenie potencjometrem nic nie daje.

Awatar użytkownika
kris74
Użytkownik
Posty: 270
Rejestracja: 16 sie 2006, 17:36
Lokalizacja: Gorzów Wielkopolski

Post autor: kris74 » 12 kwie 2008, 18:05

A jak podłączyłeś ten potencjometr do regulacji kontrastu tego wyświetlacza?

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 12 kwie 2008, 18:41

Podłączyłem tak, jak pokazali to na stronce Atrtonic'a, czyli jeden z odczepów i suwak do masy,a drugi odczep do Vo. W najgorszym przypadku skręcenie potencjometru na minimum odpowiadałoby zwarciu Vo do masy, co bez problemu sprawdza się w "małych" wyświetlaczach typu 2x16.

Awatar użytkownika
kris74
Użytkownik
Posty: 270
Rejestracja: 16 sie 2006, 17:36
Lokalizacja: Gorzów Wielkopolski

Post autor: kris74 » 12 kwie 2008, 19:35

Teraz wiem dlaczego nie działa, potencjometr ma trzy końce, jeden do masy, środkowy do Vo a trzeci do +5 voltów. Kupowałem wyświetlacze od tego sprzedawcy Atrtonic'a i tak właśnie podłączałem kontrast i zawsze działało.

Teraz dopiero sprawdziłem, bo moje wyświetlacze to 16x2 i w ich notach też jest błąd, jak zrobisz tak jak napisałem wyżej musi zadziałać. Ja budując układ na tych wyświetlaczach spisałem z noty, która noga za co odpowiedzialna, a na kontrast nie zwróciłem uwagi, bo zawsze robię tak samo.

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 12 kwie 2008, 19:59

Napięcie matrycy (zwane Vo, jednak sterownik LCD potrzebuje 6 napięć, z których pierwsze wynosi VCC, a każe następne pochodzi z drabinki rezystorowej, której końcem jest właśnie Vo) należy podłączyć do środka potencjometru, jeden jego koniec przyłączyć do napięcia dodatniego, a drugi do napięcia ujemnego.
W nowych, małych wyświetlaczach wystarcza napięcie z przedziału 0 - 5V.
W większych wyświetlaczach najprościej podłączyć potencjometr między 5V i układ max232 (on generuje napięcie ok. -10V i +10V potrzebne do pracy interfejsu rs232).

Jeśli zapytasz się gogli o KS0066 to znajdziesz odpowiedni plik (pdf).

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 12 kwie 2008, 20:11

Ciekawe, jak to jest zrobione?Na pokładzie mam MAX232, więc jakby co,to pokombinuje z ujemnym,ale czy nie wystarczy między + a masę? Ja zawsze podłączałem do masy i było dobrze widać. Myślę, że problem tkwi także w niekompatybilności sterowników KS0066,jaki jest w wyświetlaczu i KS077,jaki obsługuje Bascom.

[ Dodano: 2008-04-13, 10:22 ]
Udało się uruchomić sam wyświetlacz przez konfigurację potencjometru,jak radził jeden z Kolegów. Suwak dałem do Vo a odczepy wpiąłem między Vcc a GND i przy skręceniu potencjometru na minimum,wyświetlacz ożył, ale....

Gdy piszę taki kod:

Kod: Zaznacz cały

Config Lcd = 40 * 4
Config Lcdpin = Pin , Db4 = Portb.6 , Db5 = Portb.3 , Db6 = Portb.5 , Db7 = Portb.4 , E = Portb.1 , Rs = Portb.0
Dim A As Byte

Do
 For A = 1 To 4
  Locate A , 1 : Lcd "Linia " ; A
  Waitms 800
  Cls
 Next A
Loop

End    
wyświetlacz wariuje. Pokazuje się coś takiego:
krok1:

Linia 1
{puste}
Linia 1
{puste}

krok2:

{puste}
Linia 2
{puste}
Linia2

krok3:

→ Linia 3
→ {puste}
→ Linia 3
→ {puste}

Krok 4:

→ {puste}
→ Linia 4
→ {puste}
→ Linia 4

Zapis "{puste}" należy rozumieć, że w tym miejscu i w tej linii nic nie jest wyświetlane, strzałki oznaczają przesunięcie tekstu do kolumny 20 (chyba tyle). Być może trzeba pogrzebać w rejestrach wyświetlacza,co nieco było napisane w HELPie do Bascoma,ale nie bardzo to zrozumiałem.

[ Dodano: 2008-04-14, 10:35 ]
Dzwoniłem do Artronic'a i dowiedziałem się dlaczego tak jest. Wyświetlacz 4x40 ma w sobie 2 oddzielne sterowniki KS0066. Każdy z KS0066 steruje 2 liniami po 40 znaków i tak:

1 sterownik steruje 1 i 3 linią i uaktywnia się go wykwaterowując linię E1
2 sterownik steruje 2 i 4 linię i uaktywnia się go wykwaterowując linię E2

Jak skonfiguruję go poprawnie, to dam znać jak wyszło.

[ Dodano: 2008-04-17, 00:00 ]
Zrobiłem prosty układ przełączający sygnał E z procka na sygnały albo E1, albo E2,ale to nie poprawiło problemu. Jak załącza się E1, to wyświetla tylko w pierwszych dwóch linijkach, jak załącza się E2, to wyświetla jedynie krzaki w 3-ciej linijce. Powoli tracę zdrowie co do tego wyświetlacza.
Załączniki
przel.jpg
przel.jpg (9.16 KiB) Przejrzano 10593 razy

KLIWAT5
-
Posty: 24
Rejestracja: 30 gru 2007, 9:30
Lokalizacja: WLKP

Post autor: KLIWAT5 » 18 sie 2008, 9:43

Witam
Ja mam wyświetlacz 4x40 i wszystko działa wyśmienicie mam jednak problem z:
- zrobiłem ostatnio 3 znaki programem LCD designer i o dziwo LCD nie wyświetla
pozostawia puste miejsca kompilator 1.11.9.1
- sprawdzałem na typowych LCD 2x16/2x20 i jest wszystko OK

Proszę o podpowiedz co jest

Awatar użytkownika
kris74
Użytkownik
Posty: 270
Rejestracja: 16 sie 2006, 17:36
Lokalizacja: Gorzów Wielkopolski

Post autor: kris74 » 18 sie 2008, 21:06

W bascomie jest specjalna dyrektywa dla obsługi wyświetlacza o 4 liniach. Jutro napiszę dokładnie jaka to dyrektywa.

ZbeeGin

Post autor: ZbeeGin » 19 sie 2008, 20:36

Żadnej dyrektywy takiej nie ma. Chyba pomyliło ci się z biblioteką.

Awatar użytkownika
kris74
Użytkownik
Posty: 270
Rejestracja: 16 sie 2006, 17:36
Lokalizacja: Gorzów Wielkopolski

Post autor: kris74 » 20 sie 2008, 14:35

Biblioteka nazywa się lcd4.lbx, w niej również zawarty jest opis jak podłączyć wyświetlacz do mikrokontrolera. Dyrektywą $lib "lcd4.lbx" informujemy kompilator z jakiej biblioteki ma skorzystać. Więc pomyliłem się tylko w połowie ZbeeGin. :)

ODPOWIEDZ