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

Atmega 8 test wyświetlacza 7 segmentowego

marekgr1 01 Lut 2017 15:15 729 8
  • #1 01 Lut 2017 15:15
    marekgr1
    Poziom 18  

    Witam
    Mam prośbę o napisanie programu w C lub w innym języku ( ale skompilowany do hex) żeby zapalił wszystkie ledy w wyświetalczu (oprócz kropki). Dołączam schemat jaki zrobiłem (przepraszam za słabą jakość). Z góry dziękuję.


    Moderowany przez dondu:

    SCHEMAT JEST NIEPRAWIDŁOWY - informacja w postach poniżej.

    0 8
  • Arrow Multisolution Day
  • Pomocny post
    #2 01 Lut 2017 15:49
    marekhab
    Poziom 31  

    Proszę bardzo tylko jedna sprawa nie mam zbytnio czasu szukać co to za wyświetlacz (wspólna anoda czy katoda) dlatego powinno działać w obydwu przypadkach czyli wyświetlacz będzie migał co około 600ms (taktowanie jest na 1MHz).
    Hex spakowany WinRAR-em.
    Pisz czy działa późnym wieczorem będę dostępny.

    0
  • Arrow Multisolution Day
  • Pomocny post
    #4 03 Lut 2017 10:10
    dondu
    Moderator Mikrokontrolery Projektowanie

    Schemat jest nieprawidłowy i doprowadzi do uszkodzenia mikrokontrolera.
    Stanie się tak dlatego, że piny sterujące wyświetlaczem PB1 i PB2 będą narażone na zbyt duży prąd wynikający z zapalenia kilku lub wszystkich diod danego wyświetlacza.

    Należy uwzględnić możliwości prądowe mikrokontrolera - tutaj kompletne wyjaśnienie:
    http://mikrokontrolery.blogspot.com/2011/03/datasheet-mikrokontroler-prady-pinow.html

    Należy więc zastosować tranzystory.

    Dodatkowo należy zadbać o filtrację zasilania - lektura działu: Zasilanie i zakłócenia

    0
  • #5 03 Lut 2017 16:48
    marekgr1
    Poziom 18  

    Dzięki dondu za cenne uwagi. Ten schemat to schemat prostego termometru (zresztą zaczerpnięty z jednego z postu na elektrodzie). Przy okazji dla celów edukacyjnych czy ktoś mi może wytłumaczyć dlaczego [g] z wyświetlacza podpięte jest pod pin PD7 a nie pod PD6. W załączniku mam dwa programy : 1 termometr (schemat ten jest pod ten termometr), 2 - program (jaki udało mi się znaleźć w sieci) odliczający od 1 do 99. Dlaczego w tym programie odliczającym muszę podpiąć [g] wyświetlacza do PD6 żeby działał prawidłowo i wtedy mam ustawienia DDRD |= (1<<PD1) | (1<<PD0) | (1<<PD2) | (1<<PD3) |(1<<PD4) | (1<<PD5) | (1<<PD6) a dlaczego mi nie działa z ustawiam DDRD |= (1<<PD1) | (1<<PD0) | (1<<PD2) | (1<<PD3) |(1<<PD4) | (1<<PD5) | (0<<PD6) (1<<PD7) gdy [g] mam podpięte pod PD7.;

    0
  • Pomocny post
    #8 03 Lut 2017 19:19
    marekhab
    Poziom 31  

    Od razu napiszę. Zauważyłem że wygląd cyfr zdefiniowane masz bez "przecinka" (dioda H w wyświetlaczu 7-- segm) na dodatek znak zero jest zdefiniowany z "przecinkiem".
    Podłączenie segmentów po kolei A-0, B-1, C-2, D-3 itd. itd.
    Spróbuj zamienić plik "wyswietlacze.h na ten w załączniku.

    Moderowany:

    W przyszłości proszę wklejać kod programu za pomocą znacznika SYNTAX.
    Instrukcja: https://www.elektroda.pl/rtvforum/topic3300722.html

    0
  • #9 03 Lut 2017 23:34
    marekgr1
    Poziom 18  

    Wyświetla z błędami tzn z cyfrą: 1 zapala się[g] z 0 zapal się [g] z 7 zapala się [f,i g] reszta dobrze.

    Dodano po 48 [minuty]:

    Ok wszystko dział już doszedłem musiałem z DDRD wyrzucić (0<<PD6) i jest wszystko w porządku. Nie wiem czemu tak się dzieje. A tak przy okazji to dzięki za wyjaśnienie zgubiły mnie właśnie te przecinki i dlatego nie mogłem dojść co jest grane.

    0