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

Atmega+LCD jako wyświetlacz w aucie wyścigowym.

loodvis 27 Kwi 2008 21:53 6411 10
  • #1 27 Kwi 2008 21:53
    loodvis
    Poziom 14  

    Zaczynam budowę urządzenia jak w temacie. Chodzi o zastąpienie oryginalnych zegarów wyświetlaczem LCD. Dopiero zaczynam zabawę z elektroniką (to będzie mój drugi układ…) i chciałbym uzyskać jakichś cennych rad zanim wezmę do rąk lutownicę.

    Zasadniczo urządzenie ma składać się z 3części:
    - wyświetlacza
    - układu sterującego
    - klawiatury


    1. Wyświetlacz

    Ta część montowany na kolumnie kierownicy będzie się składać z dwóch dużych znakowych wyświetlaczy LCD, jeden 2x16 drugi 4x20.

    Dodatkowo będą diody sygnalizujące konieczność zmiany biegu + dioda ostrzegająca o przekroczeniu jakiegoś parametru.

    Wyświetlacze LCD mają być zamontowane na płytce drukowanej za pomocą listew i gniazd kołkowych, a także dodatkowo przykręcone. Całość będzie połączona z częścią sterującą kablem przez 25 pinowe złącze d-sub.


    Miało by to wyglądać mniej więcej tak:

    http://images.hondatuningmagazine.com/feature...ht_12z+Honda_Civic_Type_R+Interior_Gauges.jpg


    Mam jedno pytanie do tej części, czy są jakieś przeciwwskazania by wyświetlacze LCD zasilać z osobnego stabilizatora zamontowanego razem z nimi na płytce?


    2. Część sterująca

    Tu mają się znajdować dwa główne osobne układy. Pierwszy połączony z LCD 2x16 będzie tylko obrotomierzem. Układ opierać się będzie na atmedze8.

    Drugi układ opierać się będzie na atmedze16 połączonej z LCD 4x20. Ze względu na na pewno nieuniknione późniejsze modyfikacje i testy chciałbym ten układ podzielić na mniejsze części: Płytę główną i układy wejściowe.
    Na płycie głównej ma znajdować się uC, zasilanie i gniazda kołkowe do podłączania układów wejściowych. Chciałbym podzielić to w ten sposób:

    - port C sterujący LCD
    - port A jako układ wejściowy sygnałów analogowych
    - część portu B jako wejście klawiatury
    - zewnętrzne przerwania i liczniki do liczenia impulsów
    - reszta pinów będzie do podłączenia czujników temperatury na 1wire

    Czy może być taki układ kilkuczęściowy? Głównie chodzi mi o tą część analogową, miała by być to płytka wpinana w gniazdo kołkowe niemal bezpośrednio w port A + AREF. Czy trzeba by jeszcze na płycie głównej zrobić jakieś układy filtrujące?

    Część analogowa miała by być wykorzystana do odczytu seryjnych czujników w samochodzie (ciśnienie, temperatury, poziom paliwa), na pewno wynikną tu jakieś komplikacje także wolałbym zrobić ten układ osobno i w razie potrzeby tylko tą część modyfikować.

    Przerwania i/lub liczniki zewnętrzne chciałbym wykorzystać do pomiaru prędkości samochodu.

    3. Klawiatura
    Jeszcze nie mam dokładnej koncepcji, jak znajdę (bo gdzieś miałem :P) to zastosuję płytkę ze starego joysticka na której było sześć przycisków w tym cztery są jako taki taki mały joystick. W każdym razie ten element mam już opanowany i nie mam pytań.


    Proszę o pomoc przy budowie, i jakieś sugestie co można by jeszcze zrobić. Wszystkie „duże” części już mam i nie chciałbym zmieniać już głównej koncepcji, chyba że ktoś ma jakieś dobre argumenty.

    Dzięki i pozdrawiam

    0 10
  • Metal Work Pneumatic
  • #2 28 Kwi 2008 10:37
    voytaschec
    Poziom 24  

    1. Można tak zrobić, bez żadnych przeciwwskazań, ważne tylko aby wszystkie masy były połączone.

    2. Filtry są konieczne, szczególnie w samochodzie, gdzie napięcie ma zakłócenia pochodzące od alternatora. Na wejściu kondensator elektrolityczny, przy samej ATmedze na zasilaniu ceramik 100n, na wejście zasilania części analogowej (AVCC) filtr LC złożony z dławika ok. 22uH i kondensatora 100n. Jeśli będziesz używał zewnętrznego napięcia odniesienia to do wejścia Aref filtr RC złożony z opornika 10k i kondensatora 10uF. Do tego masa do części analogowej (AGND) koniecznie osobnym przewodem (osobną ścieżką).

    0
  • Metal Work Pneumatic
  • #3 02 Cze 2008 23:07
    loodvis
    Poziom 14  

    Zmiana planów, jednak będzie jeden wyświetlacz.

    Sprawdzałem jak to się będzie prezentować i jest pewien problem
    do pewnego momentu wszystko wygląda ok:

    Atmega+LCD jako wyświetlacz w aucie wyścigowym.


    jednak gdy pasek obrotów robi się coraz dłuższy wygląda to gorzej:

    Atmega+LCD jako wyświetlacz w aucie wyścigowym.

    program jest napisany w bascomie

    czy to jakiś problem w kodzie czy hardwareowy, kontrast odkręcony na max (czyli tak jakby spięty z GND), wygląda jakby brakowało regulacji, dałem bezpośrednio GND i jest tylko delikatna poprawa jednak dalej na wyświetlaczu są "syfy"

    Jak zmienią znaki na taki cieńki pasek problemu prawie nie ma

    Atmega+LCD jako wyświetlacz w aucie wyścigowym.

    0
  • #4 02 Cze 2008 23:26
    tplewa
    Poziom 38  

    Raczej kiepski wyswietlacz. Software tutaj nie ma wiele do czynienia jak prawidlowo wyswietla to co wysylasz...

    0
  • Pomocny post
    #5 03 Cze 2008 17:46
    Witgol
    Poziom 19  

    Witam!
    Co do zweryfikowania, czy winny wyświetlacz, czy soft, to dosyć łatwa sprawa. Otóż wyświetlacz zawsze wyświetla informacje ostatnio prawidłowo wpisaną, nawet jak procesor przestanie już robić wpisy do wyświetlacza. Wystarczy więc na pracującym juz systemie. kiedy widzisz swój "zniekształcony" obraz - wykonać reset procesora i TRZYMAĆ go na resecie. Jeżeli wyświetlany obaz (już bez sterowania z procesora) jest dalej niewłaściwy, to jest to ewidentna wina samego wyświetlacza. Ale jeżeli przy trzymanym resecie procesora obraz jest prawidłowy i nie ma już zanikających (coś jakby tracących kontrast) znaków, to jest to problem z softem. Np. za szybko wpisywana informacja na cały wyświetlacz. Trzeba - przy dynamicznych wyświetlaniach - wpisywać TYLKO zmieniające się znaki, a nie całą linijkę za każdym razem (ustawiamy kursor w odpowiednim miejscu i wpisujemy tylko te znaki, które się zmieniły). To uchroni przed znakami, które nie wiadomo dlaczego "tracą" kontrast...
    Pozdrawiam

    0
  • #6 14 Wrz 2008 21:45
    loodvis
    Poziom 14  

    Mineło dużo czasu ale dopiero niedawno auto jest na chodzie po skończeniu części mechanicznej.

    Musze zrobić jakiś układ wejściowy z transoptorem dla sygnału z obrotów, bezpośrednie podłączanie do modułu skutkuje niestety gaśnięciem silnika, jak podłączam pod sygnał obrotomierza to są problemy przy wyższych obrotach. Wzorując się na schematach z megasquirta użyję 4n25 i zobaczymy co będzie.

    Podłączyłem seryjny czujnik temperatury wody, sprawdzałem układ w domu podgrzewając czujnik lutownicą i mierząc jego temperaturę. Wyszła charakterystyka mocno nie liniowa także mierzę tylko w zakresie 50-100 °C i to mi wystarcza.

    Kilkukrotne nagrzewanie i chłodzenie pokazało że wszystko działa jak należy w interesującym mnie zakresie.

    Nie podoba mi sie to jednak bo nie wiem dobrze jak to działa :oops: Jak można wyliczać temperaturę znając charakterystykę czujnika rezystancja/temperatura ?

    To będzie jak dzielnik napięcia ? :oops:

    Tak to wygląda:
    Atmega+LCD jako wyświetlacz w aucie wyścigowym.


    Czy w takiej konfiguracji mogę podłączyć kilka czujników (dokładnie potrzeba 4) ?

    0
  • #7 25 Wrz 2008 00:46
    loodvis
    Poziom 14  

    Jakoś nikt nie chce pomóc a szkoda :|

    Wiem już że jest to zwykły dzielnik napięcia i wartości wyliczone z wzoru na napięcia w takim dzielniku (przyjmując rezystancje czujnika z książki serwisowej) zgadzają się z tymi wyznaczonymi doświadczalnie ;)

    Czy tak samo to będzie się zachowywać po podłączeniu kilku czujników ? Wydaje mi się że tak, ale wole spytać dla pewności :)

    0
  • #8 25 Wrz 2008 08:42
    mirek-88
    Poziom 10  

    Witam, nie rozumiem jak dokładnie chcesz podłączyć te czujniki, ale każdy czujnik musi mieć osobny dzielnik i być podłączony do inne go wejścia adc mikroprocesora ( Oczywiście napięcie Vref 5v może być wspólne)

    W takim czujniku jeśli rezystancja np.rośnie liniowo z temperaturą to spadek napięcia na czujniku również będzie liniowy względem temperatury.(spadek ten łatwo można wyliczyć z prawa oma)

    0
  • #9 25 Wrz 2008 11:21
    loodvis
    Poziom 14  

    Dokładnie o to mi chodzi. Czy jak podłącze właśnie w ten sam sposób drugi czujnik przez osobny dzielnik ale wspólne Vref , i potem następny to nie będzie nic zakłucać wskazań pierwszego.

    Atmega+LCD jako wyświetlacz w aucie wyścigowym.

    Będę robił to stopniowo bo nie znam charakterystyki np. czujnika ciś oleju i nie mam specjalnie jak wyznaczyć, zaczne od temperatury wody i będę podłączał następne jak będę miał czas się za to zabrać :).

    Rezystancja akurat maleje wraz ze wzrostem temperatury. Nie jest to zależność liniowa ale akurat to nie będzie problemem. W przypadku temperatur ważne są dla mnie wartości krytyczne czyli np. 90-100 w przypadku wody także wystarczy mi zakres np. 70-110 i można sobie wtedy przyjąć że zależność jest liniowa, ponizej może wskaźnik pokazywać np. <70 i to wystarczy.

    0
  • Pomocny post
    #10 26 Wrz 2008 09:05
    mirek-88
    Poziom 10  

    W takim sposobie połączenia czujniki nie powinny na siebie oddziaływać, pod warunkiem że napięcie odniesienia ma odpowiednią wydajność prądową (akurat dla 2 czujników maksymalny prąd pobierany z Vref prąd może wynieść 4,5mA - a wiedz bardzo mało)

    0
  • #11 23 Paź 2008 20:21
    loodvis
    Poziom 14  

    Tak sobie powoli dłubie i zrobiłem ten układ analogowy, nawet działa, muszę jednak wykalibrować czujnik paliwa i ciśnienia oleju.

    Chciałbym się zabrać za wejście obrotomierza

    kupiłem transoptor 4n35 bo taki akurat był, niestety nie jestem pewien jak to ma być podłączone :|

    Atmega+LCD jako wyświetlacz w aucie wyścigowym.

    0