Wyświetlacz LCD na RS-232


7.75
Ocena: None Średnia: 7.8 (4 głosujących)

Układ jest uniwersalnym wyświetlaczem LCD sterowanym za pośrednictwem portu RS-232. Dzięki zastosowaniu mikrokontrolera ATTINY2313 oraz konwertera poziomow MAX232 układ może być bezpośrednio podłączony do komputera. Sterowanie wyświetlaczem odbywa się za pomocą programu przesyłającego kody ASCI oraz specjalne instrukcje sterujące położeniem kursora i włączaniem podświetlania, na port RS-232 (zamiast specjalnego programu może być dowolny terminal). Dodatkowo układ może wspołpracować z innym mikrokontrolerem i służyć mu jako wyświetlacz sterowany tylko za pomocą jednej linii sygnałowej. Jest to przydatne szczegolnie gdy chcemy zamontować wyświetlacz kilkanaście metrow od głownego systemu mikroprocesorowego. Ponieważ układ wyświetlacza posiada dwukierunkowy interfejs szeregowy, istnieje możliwość podłączenia klawiatury i przesyłanie rozkazow sterujących pracą urządzenia (od wyświetlacza do urządzenia) za pomocą dodatkowego przewodu.

Działanie:

Schemat ideowy układu został przedstawiony na rysunku poniżej:

Sercem układu jest mikrokontroler U1 (ATTINY2313) wraz z rezonatorem kwarcowym X1 (16MHz) i dwoma kondensatorami C1 (22pF) i C2 (22pF). Potencjomatr P1 (10k) umożliwia regulację kontrastu wyświetlacza LCD W1 (16x2). Tranzystor T1 (BC556) wraz z rezystorami R1 (3,3k) i R2 (3,3k) umożliwia sterowanie podświetlaniem LCD. Rezystor R3 (47R) ogranicza prąd obwodow podświetlania wyświetlacza W1. Kondensatory C7 (100uF) i C8 (100nF) filtrują napięcie zasilania mikrokontrolera. Układ U2 (MAX232) jest konwerterem napięć, dostosowuje on stany logiczne występujące na porcie RS-232 do standardow obsługiwanych przez mikrokontroler. Kondensatory elektrolityczne C3 - C6 (1uF) są konieczne do poprawnej pracy układu U2. Złącza RxD_G oraz TxD_Vcc umożliwiają podłączenie zasilania i przewodow sygnałowych portu RS-232. Ponieważ port szeregowy jest dwukierunkowy istnieje możliwość podłączenie klawiatury i sterowania drugim mikrokontrolerem lub programem komputerowym. Do tego celu służy złącze GP1(wymaga modyfikacji programu). Do zaprogramowania mikrokontrolera służy złącze Prog a dodatkowo jego dwa piny (nie podłączone do wyświetlacza W1) mogą być wykorzystane w dowolny sposob (po zaprogramowaniu mikrokontrolera)

Budowa:


Wyświetlacz można zbudować w oparciu u płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym można pobrać tutaj. Montaż należy rozpocząć od wlutowania trzech zworek. Kondensatory elektrolityczne C3- C7 należy zamontować w pozycji leżącej, tak aby zmieściły się pod wyświetlaczem LCD, znajdującym się nad całą płytką drukowaną. Złącza Prog i GP1 mogą być w wersji "kątowej", ułatwi to podłączenie po zamontowaniu wyświetlacza. Rezonator kwarcowy musi być w wersji niskiej z tego samego powodu co leżące kondensatory. Pod mikrokontroler i układ U2 należy zastosować podstawki. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj

Wykaz Elementów:

2x Złącze Śrubowe ARK2(podwójne)
2x Listwa Goldpin 1x4 (GP1)

2x 3,3k
1x 47R
1x Potencjometr Montażowy 10k

2x 22pF
1x 100nF
4x 1uF Elektrolit
1x 100uF Elektrolit

1x Rezonator Kwarcowy 16MHz
1x BC556
1x Mikrokontroler ATTINY2313 + Podstawka
1x Konwerter Napięć MAX232
1x Wyświetlacz LCD 16x2

Programowanie:

Mikrokontroler został zaprogramowany w wersji demo programu BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej:

'************* Konfiguracja uC *****************
'***********************************************
$regfile = "attiny2313.dat"
$crystal = 16000000
$baud = 9600
 
Config Portb = &B11111111 : Portb = &B11111111
Config Portd = &B11111111 : Portd = &B10111111
 
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5       'mirley test board
Config Lcd = 16 * 2
Cls
Cursor On Blink
 
'Typ wyswietlacza LCD Kmax*Wmax
Const Kmax = 16
Const Wmax = 2
 
'********** Konfiguracja uC Koniec  ************
 
'******************  Zmienne *******************
'***********************************************
Dim Znak As Byte
Dim S As String * 1
Dim K As Byte , W As Byte
'*************  Zmienne Koniec  ****************
 
'************ Warunki Poczatkowe ***************
'***********************************************
K = 1
W = 1
'*******  Warunki Poczatkowe Koniec  ***********
 
'**************  Petla glowna ******************
'***********************************************
Do
 
Inputbin Znak
If Znak <> 0 Then
  Select Case Znak
 
    Case 1:
    '****************************  podswietlanie
    Toggle Portd.6
    '****************************
 
   'Case 2....7 
 
    Case 8:
    '**************************** kasowanie ostatniego (backspace)
      Decr K
      If K = 0 Then
        K = Kmax
        Decr W
        If W = 0 Then W = Wmax
      End If
      Locate W , K
      Lcd " "
      Locate W , K
    '**************************** kasowanie ostatniego (backspace)
 
    'Case 9....12
 
    Case 13:
    '**************************** enter
      Incr W
      If W > Wmax Then W = 1
      K = 1
      Locate W , K
    '**************************** enter
 
   'Case 14....26
 
    Case 27:
    '**************************** kasowanie calosci(ESC)
      Cls
      K = 1
      W = 1
      Locate W , K
    '**************************** kasowanie calosci
 
   'Case 28....31
 
    Case 32 To 126:
    '**************************** znaki standardowe
      S = String(1 , Znak)
      Locate W , K
      Lcd S
 
      Incr K
      If K > Kmax Then
        K = 1
        Incr W
        If W > Wmax Then W = 1
      End If
    '**************************** znaki standardowe
 
    'Case 127....160
 
    Case 161 To 244:
    '**************************** locate
    K = Znak And &B00011111
    W = Znak And &B01100000
    Shift W , Right , 5
    If K <= Kmax And W <= Wmax Then
      Locate W , K
    End If
    '**************************** locate
    'locate -> Wysylamy wartosc 1kkwwwww (kk-numer kolumny, wwwww-numer wiersza)
            'gdzie kk = (01....11)  wwwww = (00001.....10100)
 
    'Case 245....255
 
  End Select
End If
Loop
End
'************ Petla glowna Koniec **************

Obsługa:

Do osługi wyświetlacza konieczny jest komputer z programem typu terminal, lub własnym programem sterującym. Można także wykorzystać drugi mikrokontroler i wysyłać odpowiednie informacje za jego pomocą.

Kody sterujące (wysyłane wartości liczbowe):
1 - Zmiana stanu podświetlania
2...7 - nieużywane
8 - Backspace (kasuje ostatnio wpisany znak)
9...12 - nieużywane
13 - enter (przejście do następnej linii)
14...26 - nieużywane
27 - kasowanie całego tekstu
28...31 - nieużywane
32...126 - standardowe znaki według kodu ASCI
127...160 - nieużywane
161...244 - pozycja, wartość binarna 1kkwwwww (gdzie kk = (01...11) - numer kolumny, wwwww = (00001...10100) - numer wiersza)
245...255 - nieużywane

Zdjęcia Projektu:

ZałącznikWielkość
Schemat58.2 KB
Płytka13.07 KB
Płytka (odbicie lustrzane)13.21 KB
Płytka (6 na stronie)65.58 KB
Montowanie17.25 KB
Kod Źródłowy2.77 KB
Program po kompilacji (BIN)970 bajtów
Program po kompilacji (HEX)2.68 KB



Portret użytkownika osvch

Witam, mam pytanie. Co

Witam, mam pytanie. Co można wyświetlać na LCD. Czy dane z winampa np nazwa wykonawcy i tytuł tworu, prędkość download'u i upload'u itp?

Portret użytkownika mirley

Re: Sterowanie

Wyświetlacz pokazuje wszystko co przyjdzie po porcie RS232 + dodatkowe komendy sterujące jednobajtowe. Analizując kod można się wiele dowiedzieć o zakresie liczbowym jaki jest obsługiwany. Opis projektu nie jest jeszcze skończony ze względu na ograniczony czas ale wszystko to zostanie opisane. Skoro mowa o winampie to w wolnej chwili sprawdze czy da się wyswietlić odpowiedni napis

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Polskie znaki na LCD ?

Witam

Czy wysyłając polskie znaki z Windowsa (kodowanie Win1250) na port szeregowy poprawnie są na LCD wyświetlane ?

Z poważaniem
Silos

Portret użytkownika mirley

Re: Polskie Znaki

Wyświetlacze nie obsługują polskich znakow, ale jest mozliwość zdefiniowania swoich 8 dowolnych znakow w programie mikrokontrolera. Należało by napisać w kodzie możliwość definiowania swoich znakow, będzie to jednak z pewnością kłopotliwe bo żeby wyświetlacz nauczył się nowego znaku konieczne jest wykonanie ponownej inicjalizacji wyświetlacza (w bascomie jest to polecenie Cls) ktora wyczyści jego zawartość i trzeba będzie tekst na nowo wprowadzić

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Bartłomiej Kobiałka

Matryca LED 10x50

Witam!

A jakbyśmy chcieli zamiast LCD dać matrycę LED 10x50... To jakby to wyglądało? Trzeba by było łączyć kilka procków i jakby wyglądało sterowanie za pomocą programu?

Pozdrawiam!

Portret użytkownika mirley

Re: Matryca LED

Kiedys zastanawiałem się nad tym jak mozna by było sterowac taką matrycą (cos podobnego do takiej jak w autobusie:) ). Tak zwykle to raczej nie będzie się dało bo nawet ATMEGA64 nie ma tylu wyprowadzeń. Można spróbować użyć układu FPGA ale nie jest to tanie rozwiązanie a zamontowanie takiego chipa na płytce jest w domowych warunkach niemożliwe i trzeba by było korzystać z jakiejś fabrycznej płytki.

Rozwiązaniem najbardziej optymalnym jest zastosowanie expenderów działających na magistrali I2C. jeden posiada pełny port 8- bitowy. kilka takich powino dać radę ale nie wiem jak z szybkością multipleksowania. Mozna by podzielić ewentualnie na kilka sekcji, ale to jeszcze zwiększy ilość wyprowadzeń.

Ostatnią możliwościa jest, tak jak wspomniałeś, więcej mikrokontrolerów. Problemem bedzie komunikacja między nimi

Ogólnie całe zagadnienie nie wydaje się proste, ale może tylko tak strasznie wygląda na pierwszy rzut oka :)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika zgred

Re: Matryca LED

Witam
Może błądzę ale wydaje mi się, że możnaby było to zrealizować na jednym uC łącząc w rzędy i kolumny anody i katody diod. Wtedy dla matrycy 5x10 wystarczyłoby 15 wyprowadzeń (wraz z małymi tranzystorkami na tych 5) a multipleksowaniem zająłby sie mikrokontroler. Zrealizowałem coś podobnego ale z 6 wyswietlaczami 7-segmentowymi na uC atmega8. Tutaj również jest macierz LEDów 6x7, tyle, że inaczej ułożonych ;)
Pozdrawiam

PS. Świetna strona! Będę tu często zaglądał.

Portret użytkownika zgred

Re: Matryca LED

Ups...

Źle spojrzałem - 10x50 ;)
To faktycznie problem. W tej chwili na myśl przychodzi mi tylko podzielenie tego na 2 sekcje i traktowanie jako macierzy 20x25. 45 wyprowadzeń chyba bałoby się uzyskać stosując 40-nożkowy uC i jakiś dekoder. Co sądzicie o tym?

Portret użytkownika mirley

Re: Matryca

jak już mówiłem 10x50 to jest problem. Przydał by sie expender 16-bitowy na I2C to by nie było takiego problemu. Narazie nie wiem jakby to zrobić ale bedę się zastanawiał :))

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika zgred

Re: Matryca LED

Wyżej pisałeś, że nie wiesz jak by to wyglądało z szybkością multipleksowania. Myślę, że z powodzeniem możnaby zastosować demultipleksery/dekodery 74LS154. Zamieniają 4-bitowy kod NKB na "1 z 16". Używając trzy dla 48 linii (lub cztery dla 64), łącząc ich wejścia adresowe równolegle do 4 linii portu a ich wejścia informacyjne przez kolejny, mniejszy (NKB na "1 z 4" - 1/2 74LS155), demultiplekser. Coś na kształt połączenia kaskadowego. Jego wejścia adresowe należałoby podłączyć do kolejnych dwóch pinów uC a wejscie danych do +5V. Wtedy wystarczy 6 bitów do sterowania a liczba wystawiona na porcie będzie numerem linii, jeśli użyje się bitów 0-5. Na sterowanie diodami w linni kolejne 10 pinów, co daje 16, czyli dwa pełne porty 8-bitowe. Mam nadzieję, że się komuś do czegoś przyda ten elaborat ;)

Portret użytkownika Bartłomiej Kobiałka

Re: Matryca

Może na razie nie zaprzątaj sobie tym głowy :)
Z tymi expanderami to tak wcześniej myślałem... Ale szybko mi to umknęło... A to źle. Bo to niezła opcja :)
Pokombinuję troszkę w przyszłym tygodniu z 2 expanderkami 8 bitowymi (bo takie mi najłatwiej zdobyć na tą chwile) i jak coś fajnego wyjdzie to poszerzę swoją matrycę bo w sumie jeden szereg będe mógł połączyć z już istniejącym a do drugiego podłączę 16 bitowy expander i pójdą 4 dodatkowe szyny do uC :)

Jak będę miał jakieś problemy to rozumiem że mogę liczyć na radę... A mogą być małe problemy z oprogramowaniem do uC ;)
Niemniej jednak jak już projekt będę to będe namawiał na zamieszczenie na stronce ze względu na uniwersalność i prostotę bo schemacik mam już rozrysowany dla matrycy 16x16 (256 diod). Oczywiście diody to nic strasznego bo w sklepach elektronicznych byśmy zostawili majątek ale od czego jest allegro... Ja znalazłem fajne LEDy SMD po 16gr/szt... No ale starczy tego gadania - trzeba się brać do pracy ;)

Pozdrawiam!

P.S.
Jakby ktoś uważał że to jest nie na temat to nic mylnego bo matryca będzie wykorzystana do wyświetlania znaków zadanych przez port RS232 a więc cząstkowo związane z projektem :)

Portret użytkownika Bartłomiej Kobiałka

Re: Matryca

Jeszcze wspomnę że jakby coś migało czy też za wolno chodziło to można zastosować Atmege48... Ona może śmigać na kwarcu 24MHz :)

Portret użytkownika mirley

Re: Matryca LED

W sumie to matryca bardziej pasuje do artykułu o Wyświetlaczu LED na RS-232 niż do tego ale faktycznie luźno jest związana z projektem :)

Jak możecie to piszcie pod wyświetlaczem LED na RS232

Odnośnie dekoderów typu "kod binarny -> 1 z 10" to jest to dobry pomysł do sterowania wierszy a ponadto upraszcza program.

Przy programowaniu w miarę możliwości pomogę

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika darkleon1984

Matryca lcd

Witam, projekt bardzo ciekawy lecz moje pytanie dotyczy czy można inny wyświetlacz alfanumeryczny wykorzystać?
Jeśli tak to jaki?

Portret użytkownika mirley

Re: LCD

Można wykorzystać dowolny wyswietlacz LCD, jego wymiary podaje sie na początku w kodzie programu. Należy zmodyfikować linie:

'Typ wyswietlacza LCD Kmax*Wmax
Const Kmax = 16  'liczba kolumn
Const Wmax = 2   'liczba wierszy

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

locate

Witam

Mogłbyś krok po kroku napisać jak działa polecenie locate ?

    Case 161 To 244:
    '**************************** locate
    K = Znak And &B00011111
    W = Znak And &B01100000
    Shift W , Right , 5
    If K <= Kmax And W <= Wmax Then
      Locate W , K
    End If
    '**************************** locate
    'locate -> Wysylamy wartosc 1kkwwwww (kk-numer kolumny, wwwww-numer wiersza)
            'gdzie kk = (01....11)  wwwww = (00001.....10100)

co daje napisanie K = Znak And &B00011111 ?

Pozdrawiam

Portret użytkownika mirley

Re: Locate

Nie ma tu nic skomplikowanego a tylko kilka operacji logicznych na bitach:

Linia:

 K = Znak And &B00011111

to zwykłe maskowanie bitów za pomocą operacji iloczynu logicznego (AND). Każdy bit zmiennej 8-bitowej Znak jest porównywany z odpowiadającym mu bitem w masce &B00011111 . W efekcie tam gdzie jest 0 w masce odpowiadające bity zmiennej Znak zostaną wyzerowane. Tam gzie jest 1 w masce, odpowiadający bit zostanie bez zmian (Zgodnie z tabelą prawdy bramki AND: 1 and 1 = 1, pozostałe przypadki 0)

Pozwala to z jednej zmiennej wyciąć dwie informacje, o kolumnie i wierszu. W pierwszym przypadku wycinamy 3 najstarsze bity a w drugim, w linijce:

 W = Znak And &B01100000
 Shift W , Right , 5

zostawiamy tylko bit numer 6 i 5, pozostałe zerując. Ponieważ w drugim przypadku, uzyskana wartość nie jest z przedziału 0-4, przesuwamy bity poleceniem Shift, tak aby potrzebne wartości znalazły się na bitach 0 i 1.

W dalszej części kodu sprawdzamy czy wartości odczytane są z dobrego przedziału i ustawiamy kursor w odpowiednim miejscu.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

rs-232 i podnośnik

a jeżeli w podnośniku koszowym ruthmann mam port rs232 do obsługi drugiego wyświetlacza to będzie on chodzi a i czy mogę podłączyć wyświetlacz lcd 4x20

Portret użytkownika mirley

Rs: Wyswietlacz LCD

Wyświetlacz 4x20 będzie chodził z moim urządzeniem ale nie zanaczy to że możesz podłączyć całość do RS-232 w swoim podnośniku. To że jest tam też port Rs232 to nic nie znaczy, ważne jest to co układ po nim wysyła. Co trzeba wysyłać aby moje urządzenie działało podałem wyżej w opisie. Musisz mieć jakąś specyfikacje albo coś podobnego odnośnie twojego podnośnika aby dowiedzieć sie na jakiej zasadzie odbywa się transmisja (co jest wysyłane a co odbierane)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

wykonałem ale nie chodzi

cześć wykonałem ten układ ale niestety nie chodzi na lcd miga kursor ale nie mam komunikacji z pc port mam sprawny bo zrobiłem zworkę pomiędzy rxd a txd co może być nie tak na płytce jak zewrze rx i tx przed max to tech widzę w terminalu co wysyłam a jak zewrze za maxem to już nic nie widzę

Portret użytkownika mirley

Re: MAX

Sprawdź jakie napięcia panują na pinach 2 i 6 układu MAX232. Powinno byc około +8V i -8V, a nawet troszkę więcej (zależy od układu)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

max

na 2 pinie jest 9 v a na 6 -8,5 v

----

już hula miałem źle ustawiony ckdiv 8

Mirley: posty scaliłem proszę nie pisać kilku swoich wypowiedzi jedna pod drugą, zaloguj się aby uzyskać możliwość edycji wpisów

Portret użytkownika papi

LCD via RS-232

Witam ! Trudno znaleźć stronę na której opisane jest wszystko tak dokładnie - co z kolei pomaga zrozumieć i wiele się nauczyć (np.takim jak ja)początkującym GRATULUJĘ !!!!!!.
OD powstania powyższego projektu minęło już sporo czasu i nie wiem czy ktoś mi pomoże.Mam dwa pytania : w projekcie zastosowano ATTINY2313 a czy można zastosować AT89S2313( mam ich kilka w swoich zbiorach), oraz czy trudno byłoby wykonać komunikację dwukierunkową ( np. kilka przycisków na wolnych portach uP)

Portret użytkownika mirley

Re: Wyświetlacz LCD na RS232

Chyba koledze chodzi o AT90S2313 a nie AT89.... ale tak czy innaczej nie mam na czym zrobić testów czy to będzie działać, więc mimo że ATTINY 2313 to nowsza wersja AT90S2313 nie jestem do końca pewien czy to zadziała. Polecam raczej kupic Tiny2313 a te starsze wykorzystać w innych układach.

Co do komunikacji dwustronnej to myślę że nie powinno być problemu. Specjalnie przewidziałem dodatkowy goldpin GP1 do tego celu (w opisie jest napisane). Należy tylko skonfigurować timer w układzie na przerwania co 4ms i za jego pomocą zająć się obsługą klawiatury. Prawdopodobnie polecenie input będzie trzeba zastąpić inkey() aby nie wstrzymywało programu w pętli głównej.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika cichy

Witam!!! Jak wysyłam jakieś

Witam!!!

Jak wysyłam jakieś dane przez terminal to jakieś dziwne znaki mi na wyświetlaczu wychodzą.
Korzystam z programu Terminal.
Jak dam 27 i send to nic się nie dzieje a powinno skasować wyświetlacz.
Co robie nie tak??

----

Mam pytanie, aby sterować drugim procesorem i aby wyświetlić (tak jak to jest standardowo w bascom np locate1,1) to trzeba dać printbin 161??

Portret użytkownika mirley

Re: Wyświetlacz

locate 1,1 to binarnie 10100001 czyli 161, zgodnie z opisem wyżej. wysłanie za pomocą printbin 161 powinno dać efekt jaki oczekujesz. W basomie trzeba dać:

x = 161
printbin x

bezpośrednio printbin 161 może nie działać więc trzeba dać zmienną x typu byte

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika cichy

Testowałem i normalnie działa

Testowałem i normalnie działa jak wpiszę bezpośrednio printbin xxx.

W twoim programie dodałem bufor, a w drugim procku przy częsty pisaniu na wyświetlaczu trzeba czasami dodać waitms.

Config Serialin = Buffered , Size = 20
Enable Interrupts

Portret użytkownika mule

fuse bit

Witam czy ktoś może powiedzieć jak należy ustawić fuse bity w wartościach HEX

Portret użytkownika gosc123

re fuse bit

Ja mam u siebie w Burn-O-Mat ustawione highfuse=DF lowfuse=E4 ale też kursor tylko mruga,
myślę więc że jeśli "Twórca projektu" nie podaje takich informacji to jest to jakaś lipa.
To tak jak by ci sprzedali rower ale bez lańcucha.
Tu masz sprawdzony projekt [link]
pozdrawiam
Marek

Portret użytkownika mirley

Re: LCD na RS

fusebity mają być ustawione http://mirley.firlej.org/files/ART_fuseT2313_02B.gif Kwarc w projekcie jest 16Mhz więc ustawienie fusebitów to nie problem. Po co podawać 100 razy te same ogólnie znane informacje. Jakbyś popatrzył po stronie to znajdziesz to w 100 miejscach napisane

jeśli po właczeniu układu kursor miga to znaczy że wszystko jest jak najbardziej poprawne. Układ czeka na znaki wysyłane po rs232. Jeśli fusebity masz źle ustawione to nic nie odbierzesz albo odbierzesz jakieś głupoty i działanie wyświetlacza będzie trudne do przewidzenia.

Ps. Wystarczy że w opisie brakuje szczegółów i od razu dla niektórych jest to "lipa".... nie wystarczy przedstawić schematu, płytki, programu, i zdjęć potrzebnych w montażu.... wypadało by jeszcze rozsyłać gotowe układy za darmo żeby każdy mógł sobie mieć przy zerowej pracy..... Sprawa druga-> ukłąd jest sprawdzony, tylko takie są na stronie w projektach i miniprojektach

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika matrix

Bez max232 da radę?

Sorki za może dość głupie pytanie, ale nie miałem jeszcze do czynienia z komunikacją po RS232 więc pytam.

Gdyby chciał podpiąć to do drugiego procka to można pominąć max'a i spiąć ze sobą tylko RxD i TxD na krzyż?

Portret użytkownika mirley

Re: Rs232

Można ominąć maxa jeśli masz 1-2m kabla, jeśli dasz więcej to będą błędy w transmisji. Przy przesyłaniu na wieksze odległości warto przekonwertować sygnał za pomocą maxa232 albo lepiej zastosować układ max485, który jest buforem LVDS

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika matrix

Re: Rs232

Kabla nie będzie prawie wcale. Max to może 10cm. Zaprojektowałem i napisałem cały soft do sterownika oświetlenia do modelu auta w skali 1:10 na bazie procka atmega8 z jednoczesnym pomiarem napięcia pakietu Lipo o czym więcej można poczytać -> TUTAJ <-.

W sterownik można wpisać praktycznie co się tylko żywnie podoba, ma bootloader z zabezpieczeniem. Ładowanie hexa po RS232. Do całości dopisał bym kawałek kodu do wysyłania informacji na temat napięcia pakietu do wyświetlacza LCD opartego na Twojej konstrukcji. Sterownik w trakcie działania informuje o zbyt niskim stanie pakietu, ale dodatkowo można pokusić się o pokazanie owego napięcia.

Portret użytkownika Avrus

Problem z przesyłem

Witam
projekt jest ok , ale jest jeden problem :

Twój układ miałby się komunikować z drugim mikrokontrolerem , który ma przesyłać do niego dane i jest wszystko ok gdy dane maxymalnie maja 4 znaki , natomiast wysłanie wiecej niż 4 znaki powoduje że na wyswietlaczu , pojawia sie początek i losowo wybrana końcówka napisu.

Sprawdzałem nawet w terminalu i nieda sie wysłac słowa 12znaków by odebrał i wyswietlil prawidłowo
zwiekszałem bufory , manipulowałem zmienna S , ale cały czas są jakieś bzdury

Jak mozna by to zrobić by działało prawidłowo ??
np. Wysyłam z terminala słowo "Utawienia" w całości jako ciąg , a na wyswietlaczu mam
napis " USTAINA "

pozdrawiam

Portret użytkownika cichy999

Spróbuj dołączyć taki kod U

Spróbuj dołączyć taki kod
U mnie pomogło

Config Serialin = Buffered , Size = 20
Enable Interrupts

Pozdrawiam

Portret użytkownika cichy

W programie dodałem bufor, a


W programie dodałem bufor, a w drugim procku przy częstym pisaniu na wyświetlaczu trzeba czasami dodać waitms.

Config Serialin = Buffered , Size = 20
Enable Interrupt

Portret użytkownika AVRus

dzięki za bufor

Dzieki Cichy teraz to sobie przypomniałem ze jeszcze coś takiego istnieje
a ja tu kombinuję z

$hwstack = 32
$swstack = 32
$framesize = 24

i masakrowaniem zmiennej S

A wszystko przez to że kupiłem sobie SunDuino już drugie zreszta i buduje robota mini sumo pomyslałem ze fajnie by było jakby na LCD miał informacje o bateri i diagnostyke czujników, silników i takie tam niestety braklo mi portów dla LCD trafiłem na ten projekt i mówię sobie to jest to , a tu lipa nieprzyjmuje tego co ja chcę, teraz dzieki Tobie wreszcie działa jak trzeba :)

raz jeszcze Dzieki
Nie jestem az tak dobry w bascomie kiedyś coś pisałem obecnie tylko w Arduino piszę i fajnie mi tam , ale nie wszystkie procki obsługuje wiec chyba sie C zwykłego nauczę ale i tak Sunduino działa z Atmegą 8, 48, 88, 168, 328, 16, 324, 644 tak więc sporo jak na moje potrzeby :) Niewiem czy tu można zamieszczać linki , więc nie zamieszcze , ale łatwo znaleźć ten ciekawy klon Arduino - fajnie ze jest

Portret użytkownika cichy

Ja niestety też nie jestem

Ja niestety też nie jestem dobry w bascomie cały czas się uczę uczę i uczę.
Metodą prób i błędów.

Pozdrawiam

Portret użytkownika mule

Witam, ja natomiast mam taki

Witam, ja natomiast mam taki problem że uruchamiam terminal 9600 8-N-1 włączam zasilanie LCD a na terminalu pojawiają sie krzaki tak jak by komunikacja była z LCD do terminala a powinno byc odwrotnie , nówka Attiny2313 fuski ustawione w/g http://mirley.firlej.org/files/ART_fuseT2313_02B.gif
na wyświetlaczu tylko mruga kursor w lewym górnym rogu. Co może być nie tak?
pozdrawiam

Portret użytkownika avrus

RE: Witam, ja natomiast mam taki ...

są 2 możliwości

1. źle podłaczyłeś przewody RX / TX - masa też jest potrzebna
2. masz źle ustawiony fusebit ckdiv

możliwe jest też ze jeśli używasz max 232 to coś masz na nim nie tak
zewrzyj nogi RX i TX przed maxem i sprawdź czy wraca ci echo na terminal i to samo zrób za maxem
jesli to co piszesz wraca to szukaj problemu w ustawieniach fusebits zwłaszcza ckdiv ma byc wyłaczony

ja fusy zawsze ustawiam z ręki w avrdude

Portret użytkownika mirley

Re: Wyswietlacz LCD na RS

Program jest prosty więc jak się wysyła naraz więcej znaków to może się pogubić. Dodanie buforowanego wejścia jak pisaliście wcześniej powinno załatwić sprawę. Warto tez dodać jakieś niewielkie opóźnienie między wysyłanymi znakami, co poprawi niezawodność działania

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika mule

re:wyswietlacz LCD na rs

witam
prosze powiedziec w ktorym miejscu nalezy wpisac Config Serialin = Buffered , Size = 20
ja wpisalem pod ****Konfiguracja uC Koniec***** ale wtedy uC nie startuje, tak jak by sie zwiesil.Nie dziwcie sie ale jestem 48-osmio latkiem ktory sie uczy , namietnie uczy, wiem ze moge to wklejac pod kazda linijka az do skutku ale ile to zajmie mi czasu i jak dodac to opoznienie z postu wyzej opisanego.
Pozdrawiam

Portret użytkownika mirley

Re: Wyswietlacz LCD na RS

Nie powinno mieć znaczenia gdzie wstawisz.... ja zawsze wrzucam zaraz pod linijką $baud = .... Może nie koniecznie trzeba aż 20 bajtów w buforze... może starczy 8 itp. Program powinien działać nieważne gdzie wrzucisz konfigurację

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika mule

Mikrotik

Witam, wyswietlacz podłączony do kompa działa idealnie natomiast chcę go używac
z Mikrotikiem i tu jest problem bo nic się nie wyświetla, com mikrotika sprawny bo konsola dziala po eresie natomiast jak przestawię na LCD wszystkie ustawienia są ok i nic, nic sie nie wyswietla czy mu jakiegoś dodatkowo napięcia brakuje bo Mikrotik pobiera tylko 1W ale wiem że są w sprzedaży wyświetlacze do mikrotika
czy ktoś z Państwa ma jakiś pomysł jak to uruchomić?
pozdrawiam

Portret użytkownika janusz

terminal

Siemka wszystkim jestem tu now wiec prosze o wyrozumiałość. Nigdy nie używałem terminala i niewiem jak to razem połączyć i jakie należy wpisywać komendy aby na lcd pojawił się jaki kolwiek tekst. I czy chyperterm wystarczy do tego

Portret użytkownika mirley

Re: terminal

Włączasz terminal i konfigurujesz połączenie. Wybierasz że ma być to com o numerze jaki masz w komputerze, wybierasz szybkość 9600, 1 bit stopu, bez kontroli przepływu i klikasz połącz. W najprostszym przypadku znaki z klawiatury powinny wypisywać się na lcd

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika janusz

lcd

siemka zrobiłem tak jak napisałeś wszystko działa bez zarzutu ale w układzie jest stosowany 4 bitowy tryb a ja chciałbym zmienić na 8 bitowy i nie bardzo wiem jak to podłączyć wiem że muszę zastosować układ z większą liczbą wyprowadzeń myślałem o atmedze 16 i jak w takim przypadku wyglądałby program

Portret użytkownika mirley

Re: LCD

Rozumiem że chodzi ci o podłączenie LCD w trybie 8 bitowym.... nie rozumiem tylko po co ale jak chcesz to możesz wykorzystac 4 piny dostępne jako złącze GP1. nigdy tego nie robiłem ale w helpie do bascoma powinno się dać odszukać co trzeba zmienic w linijce z konfiguracją pinów. Wydaje mi się że większych różnic nie będzie

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika demsy1

Multimetr

Witam
Czy ten układ można przerobić na multimetr do zasilacza?

Portret użytkownika janusz

lcd

Już podłączyłem za wiele sie nie zmieniło ale chciałem sprubować czy dam rade
To zrobic. I mam takie pytanie offtopic ile. Jest w stanie wyciągnąc port rs232.Chodzi mi
o możliwość sterowania paroma użądzeniami na raz ???