Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega32 - Wyświetlacz 2x16

mrslawcio 17 Lut 2014 11:22 1782 8
  • #1 17 Lut 2014 11:22
    mrslawcio
    Poziom 12  

    Witam

    Napisałem drobny program do sterowania pompką ciepłej wody. Program działa poprawnie ale po 2-3 dniach mam problem z wyświetlaczem - znika mi dolna linia, prośba o informację czy ktoś spotkał się z podobnym problemem. Dodam tylko tyle że reszta działa poprawnie. Kod programu poniżej



    Atmega32 - Wyświetlacz 2x16

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Prośbao opinie.




    Pozdrawiam
    Sławek

    0 8
  • Pomocny post
    #2 17 Lut 2014 12:08
    hacker17
    Poziom 17  

    Jeżeli masz potencjometr koło wyświetlacza to on reguluje kontrast to spróbuj go ustawić i daj znać jak Ci poszło

    0
  • Pomocny post
    #3 17 Lut 2014 12:10
    BlueDraco
    Specjalista - Mikrokontrolery

    Prawdopodobnie dzieje się tak z powodu wahnięcia zasilania - wyświetlacz reinicjuje się w domyślnym trybie jednowierszowym. Popraw zasilanie, albo dodaj do oprogramowania inicjowanie wyświetlacza co jakiś czas.

    0
  • Pomocny post
    #4 17 Lut 2014 12:42
    tomson5
    Poziom 16  

    Ja bym dał na początku Config Lcd....
    Po drugie wywalił z pętli wyświetlanie do podprogramu który
    Będzie się wykonywał co jakiś czas lub gdy zmieni się temperatura. Gdyby to nie pomogło można spróbować umieścić w tym podprogramie Config Lcd... wtedy za każdym razem będzie inicjowany wyświetlacz.

    To samo tyczy się wysyłania po RS. Niech to się wysyła jak są zmiany.

    0
  • #5 17 Lut 2014 22:48
    mrslawcio
    Poziom 12  

    Dzięki za cenne uwagi. Teraz wiem czego szukać. Generalnie zmiana kontrastu pokaże że dolna linia nie działa. Szpilki na zasilaniu przy LCD mogą się pojawić, nie dałem dodatkowego kondensatora. Inicjalizacja wyświetlacza co pewien okres czasu na pewno pomoże. Poprawki wykonam w Piątek lub Sobotę i się odezwę za tydzień.

    0
  • #6 18 Lut 2014 08:20
    BlueDraco
    Specjalista - Mikrokontrolery

    Zacznij od kondensatora. Reinicjowanie nie zastępuje dobrego zasilania, a jedynie pomaga w sytuacjach awaryjnych.

    0
  • Pomocny post
    #7 18 Lut 2014 21:22
    emarcus
    Poziom 35  

    mrslawcio napisał:
    Dzięki za cenne uwagi. Teraz wiem czego szukać. Generalnie zmiana kontrastu pokaże że dolna linia nie działa. Szpilki na zasilaniu przy LCD mogą się pojawić, nie dałem dodatkowego kondensatora. Inicjalizacja wyświetlacza co pewien okres czasu na pewno pomoże. Poprawki wykonam w Piątek lub Sobotę i się odezwę za tydzień.


    Kontrast jest regulowany dla całewgo wyświetlacza a nie dla oddzielnych linii'
    Jeżeli osiągasz wyraźny obraz liter, to go pozostaw w spokoju...
    Owszem, dodatkowy kondensator może tu być pomocny, choc taki z pewnościa jest wbudowany w LCD.
    Przeglądając ten program, dziwię sie że on w ogóle pracuje.
    Po pierwsze: Zabierz te instrukcje formatowania wyników z instrukcji wyświetlania.
    Masz ich tam 3.
    Bascom w odróżnieniu od 'C' nie akceptuje wielu instrukcji w jednej linii , a co gorsze, drugiej instrukcji wewnątrz jednej rozpoczętej.

    Na przykład:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    W instrukcji wyswietlacza masz dodatkowo dwukrotnie "wepchniętą" instrukcję formatowania, nastepna linia to samo!!!
    Przy wyświetlaniu wyników stosuj 'Locate'
    Zmień to raczej na:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Inna jeszcze uwaga:
    w subrutynie 'Temperatura' masz procedurę szukania podłączonych devices do 1-Wire;

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    -za każdym razem wchodząc w tą Sub szukasz co tam jest podłączone.
    Robi się to tylko jeden raz - podczas inicjacji programu, czyli w części konfiguracyjnej (przed Do /Loop).
    Te urządzenia peryferyjne (ich numery rozpoznawcze) nie zmieniają się, chyba że podłączasz inne w trakcie pracy.

    e marcus

    0
  • #8 17 Mar 2014 19:34
    mrslawcio
    Poziom 12  

    Poprawiłem program zgodnie z uwagami, dodatkowo pod portb.0 podłączyłem czujkę ruchu która znajduje się w najbardziej ruchliwym miejscu w domu tak aby cała ta procedura była realizowana tylko przez godzinę od detekcji ruchu. Zmniejszy to ilość załączeń pompki. Poniżej kod czekam na uwagi

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Pod wyświetlaczem podłączyłem kondensator 100uF ale niestety nic to nie zmieniło.
    Mam jeszcze jeden problem z licznikiem co jakiś czas wyświetla bardzo dużą wartość tak jakby doliczył do końca pojemności zmiennej L, wydaje mi się że ma to związek z przerwaniem, wcześniej tego problemu nie miałem.

    0
  • #9 15 Kwi 2014 22:17
    mrslawcio
    Poziom 12  

    Zrezygnowałem z przerwania i teraz wszystko działa jak należy.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod
    [/code]

    0