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.

[atmega16] - obsługa LED 7 seg

tcharsher 21 Maj 2016 21:51 1062 10
  • #1 21 Maj 2016 21:51
    tcharsher
    Poziom 4  

    witam chciałem zbudować układ mikrokontrolera na AVR Atmega 16 w którym chciałem sterować jasnością wyświetlaczy 2 pozycyjnych 7-seg led za pomocą potencjometry tzn przetwarzać sygnał analogowy z potencjometru na PWM dla wyświetlaczy led oraz ustawiać liczbę wyświetlaną przez 2 pozycyjny wyświetlacz za pomocą dipswitchy. Czy mógł by ktoś sprawdzić schemat który narysowalem w eagl'e oraz doradzić jak to rozwiązać [atmega16] - obsługa LED 7 seg w programie ?

    0 10
  • Pomocny post
    #2 21 Maj 2016 22:13
    tmf
    Moderator Mikrokontrolery Projektowanie

    Schemat ok, musisz tylko dodać jeszcze kondensatory na każdy pin Vcc i AVCC. Pamiętaj też o wyprowadzeniu ISP/JTAG - jakoś musisz zaprogramować MCU, prawda? Najlepiej piny wykorzystywane do programowania nie podpinać pod inne elementy elektroniczne.
    Przykładowy kod do sterowania wyśw. 7-seg + regulacja jasności znajdziesz w darmowych przykłądach do książki "Język C dla mikrokontrolerów AVR..." - link w mojej stopce. Pobierz przykłądy i działaj.

    0
  • #3 21 Maj 2016 23:23
    tcharsher
    Poziom 4  

    dziękuje za szybką odpowiedz, mam jeszcze jedno pytanie wiem ze powinienem użyć przetwornika sygnału analogowego na sygnał cyfrowy jednak nie rozumiem które to wejście ponieważ podpisane jest ze wszystkie wejścia od pa0 do pa7 SA wejściami przetwornika i nie wiem teraz czy dobrze myślę czy jednak powinienem to podpiąć pod inny port :))) poza tym jestem slaby z wyliczania rezystorów i tranzystorów wiec nie za bardzo wiem jakie wstawić tzn o jakich wartościach mógł by ktoś mi przybliżyć jak to się robi ?

    0
  • #4 22 Maj 2016 10:00
    Press
    Poziom 22  

    Dobrze masz podpięty potencjometr.
    Wszystkie wejścia PA0 - PA7 są wejściami przetwornika ADC. Tylko pamiętaj, że przetwornik jest tylko jeden, a wejścia są do niego przyłączane przez multiplekser i w programie wybierasz z którego wejścia poziom sygnału ma być mierzony.
    Czyli na raz da się zmierzyć poziom napięcia tylko na jednym wejściu, ale w Twoim przypadku to bez znaczenia bo i tak korzystasz tylko z jednego kanału.

    0
  • Pomocny post
    #5 22 Maj 2016 10:13
    373522
    Użytkownik usunął konto  
  • #6 22 Maj 2016 20:11
    tcharsher
    Poziom 4  

    okkk czyli musze dać jeszcze rezystory do dipswitchy hmm a czy mógł by ktoś pomoc mi wyliczyć wartości rezystorów oraz tranzystorow itd. do tego schematu wybaczcie za ta zapewne banalna prośbę ale nie rozumiem jak to sie robi xD

    0
  • #7 22 Maj 2016 20:16
    tmf
    Moderator Mikrokontrolery Projektowanie

    Zmień podłączenie do switchy na GND zamiast Vcc i będziesz mógł wykorzystać wbudowane w ATMega pull upy. Rezystory na bazie liczysz tak, że jeśli prąd kolektora ma wynosić x, a wzmocnienie tranzystora wynosi y, to prąd bazy musi wynieść x/y. Wzmocnienie tranzystora bierzesz z noty. W praktyce wartości rzedu kilkuset omów do kiku komów będą ok.

    0
  • #8 22 Maj 2016 20:20
    arecoag
    Poziom 19  

    Nie dodawaj żadnych rezystorów podciągających procesor już takie ma. Włącza się je programowo PORTx=(1>>Pxy); x oznacza numer portu a y numer wyjścia danego portu. W twoim przypadku to PORTC=0xff; zalącza wszystkie rezystory portu C.

    0
  • #9 01 Cze 2016 14:53
    tcharsher
    Poziom 4  

    wybaczcie ze dopiero teraz odpisuje, złożyłem całość zrezygnowałem tymczasowo z dipswitchy ponieważ najpierw chciał bym się uporać z samym PWM na wyświetlaczach led mam jednak pewien problem, nie do końca wiem jak to zrobić wiem ze powinienem w kodzie programu umieścić jakiś timer który robił by przerwanie od zmiennej nie wiem również co dać żeby zmienić długość sygnału dla PB0-PB1. Prosił bym o pomoc, może jakiś przykładowy kod jak to można podobnie rozwiązać , z góry dziękuje :))

    0
  • #10 01 Cze 2016 16:39
    tmf
    Moderator Mikrokontrolery Projektowanie

    Nie żartuj, takich przykładów jest pełno - pierwszy lepszy, masz w darmowych przykładach do książek z mojej stopki. Ściągnij i analizuj.

    0
  • #11 03 Cze 2016 00:18
    tcharsher
    Poziom 4  

    Udało mi się w końcu z tym uporać, po czym natrafiłem na kolejny problem ponieważ postanowiłem zrezygnować z dip-switchy (przynajmniej narazie) postanowiłem jednak na początek zamontować przyciski 2 stanowe na płytce chciałem na razie zastosować 9 przycisków, żeby zmieniać sobie za ich pomocą liczbę (na razie zamontowałem tylko 1 wyświetlacz) jednak mam pewien problem zamówiłem przyciski 2 stanowe BS800L jednak mają po 3 nużki z każdej strony nie tak jak tact-switche po 2 i właśnie stąd moje pytanie w jaki sposób podłączyć owe nóżki do mikrokontrolera ?

    0