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.

[Atmega8][C] - Tranzystor się nie 'domyka'(multipleksowanie)

Arkadiusz G. 17 Lis 2012 15:14 3474 16
  • #1 17 Lis 2012 15:14
    Arkadiusz G.
    Poziom 8  

    Witam!

    Po raz kolejny piszę, wołam o pomoc, bo nie ogarniam tego problemu.
    [Atmega8][C] - Tranzystor się nie 'domyka'(multipleksowanie)

    Mam układ taki, jak na tym schemacie - wybaczcie za średnią jego czytelność (niepodpisana kostka to DS1307 - zdaję sobie sprawę, że źle rezystory są podpięte, na płytce jest to już poprawione)

    Problem polega na tym, że dla prostego 'programiku'

    Code:

    #include <avr/io.h>
    #include <util/delay.h>

    void main()
    {
       DDRD=0b11111111;
       PORTD=0b00000000;
       DDRC=0b11111111;
       PORTC=0b00000000;
       while(1)
       {      
          _delay_ms(500);
          PORTD=0b00110000;
          PORTC=0b00000000;
          _delay_ms(500);
          PORTD=0b00111111;
          PORTC=0b11111111;
       }   
    }


    Nie gaśnie mi wyświetlacz dla wyjścia ustawionego w stan niski. Charakteryzuje się to tym, że zarówno dla włączonej anody, jak i wyłączonej tranzystorem, świecą się wszystkie wyświetlacze -> ten wyłączony jednak nieco słabiej, niż te włączone.

    Z wiązku z tym, chciałbym się dopytać, gdzie leży mój problem? Zły tranzystor? Może trzeba dołożyć jakąś filtrację?

    Konkretne informacje o układzie:
    Zasilanie docelowe: 6V z baterii
    4x LED LSD18064-20 wspólna anoda (tranzystor podpięty bezpośrednio pod zasilanie, gdyż wtedy dopiero świeci jasno)
    ULN2003 żeby nie ryzykować przedostania się tych 6V na kontroler
    Układ to Atmega8
    Stabilizator 78L05
    Za zliczanie czasu odpowiada DS1307
    Jeśli o tranzystory chodzi, to PNP BD132 zamiast bd140 (eagle nie miał w bibliotece 132)

    Na zakończenie dodam, że rozumiem na czym polega multipleksowanie, i nie odkrywam ameryki na nowo moim zdaniem, wzoruję się na tym:
    http://codeandlife.com/2012/02/24/7-segment-multiplexing-with-uln2003-pnp-transistors/
    Stąd pomysł na ULN m.in

    0 16
  • #2 17 Lis 2012 15:22
    Zygaqra
    Poziom 34  

    Nie jestem biegły w AVRach (kompletny laik) ale nie podoba mi się połączenie zasilania tranzystorów tzn. sprzed stabilizatora, dlatego, tak sądzę, nie możesz zatkać tranzystorów.

    0
  • #3 17 Lis 2012 15:28
    Arkadiusz G.
    Poziom 8  

    Hmm, zasilanie jest bateryjne, stabilizator jest tylko po to, żeby zdjąć dodatkowego 1V którego mój AVR nie zdzierży. Sam BD132 może zbierać do ok 40V, więc nie wiem, czy to ma sens..

    Zresztą tak jak mówiłem, potrzebuję wyższego zasilania bo LED'y nie świecą wystarczająco jasno na 5V (testowane na zasilaniu z programatora)

    Ale jeśli to jest faktycznie problemem, to znasz może jakiś inny sposób, niż obniżenie napięcia na tranzystory, żeby nie zmieniać generalnie układu?

    0
  • #4 17 Lis 2012 15:35
    ZbeeGin
    Poziom 38  

    Po pierwsze, brak jakichkolwiek rezystorów ograniczających prąd dla wyświetlacza już dyskwalifikuje ten układ. Drugie zauważył kol. Zygaqra.

    Dodano po 2 [minuty]:

    Arkadiusz G. napisał:
    Zresztą tak jak mówiłem, potrzebuję wyższego zasilania bo LED'y nie świecą wystarczająco jasno na 5V (testowane na zasilaniu z programatora)

    Może warto zainwestować w wyświetlacze z lepszą luminancją?

    Wracając do tranzystorów. Zrób to tak jak zostało to zrobione na płytce ZL11AVR.

    0
  • #5 17 Lis 2012 15:36
    fuutro
    Poziom 43  

    Brakujące rezystory masz przy katodach wszystkich diod wyświetlaczy? Pomysł który zgapiłeś z tamtej stronki odnośnie zasilania anod ma sens dla zasilania anody napięciem pokrywającym się z napięciami pracy procesora a u Ciebie dziw może brać (nie zagłębiałem się w budowę procka a konkretnie wyjść sterujących) że coś nie próbuje się uszkodzić lub z wyjścia i tak nie płynie maksymalny dopuszczalny prąd (a raczej wpływa do niego). Jakie jest napięcie przed stabilizatorem +5V ? Spróbuj takiego czegoś jak na rysunku i pomyśl o tym gdyż napięcie na bazie nie będzie niższe niż ok 0,6...0,7V od napięcia na emiterze, chyba, że tranzystor wcześniej zostanie uszkodzony.
    [Atmega8][C] - Tranzystor się nie 'domyka'(multipleksowanie)

    0
  • #6 17 Lis 2012 15:59
    Arkadiusz G.
    Poziom 8  

    Hmmm, podpiąłem bazę przez rezystor 4.7k, emiter przez 1k do zasilania (zasilanie przed 78L05 to 6V). Problem nadal występuje niestety. Jedyna różnica, że światło z LED'a się lekko przytłumiło

    Jeśli chodzi o wyświetlacze, wolałbym nie szukać nowych. Cały projekt jest projektem 'na budżecie' w którym nie miałem jedynie ULN2003 który musiałem kupić :)

    A jeśli by już można było brać pod uwagę zmianę płytki, to chciałbym się dowiedzieć jak proponujecie zrobić to poprawnie, przy założeniu że 7segment potrzebuje min. 6V, atmega max 5V?

    Cały projekt ma służyć za zegarek, dla tego wolałbym uniknąć pomysłu w stylu 'wrzuć 30V zasilania' bo mijałoby się to nieco z celem... już teraz wydaje mi się że 4 paluszki to za dużo... :P

    0
  • #7 17 Lis 2012 16:12
    fuutro
    Poziom 43  

    Dalej zwiększaj R2 lub zmniejszaj R1.

    0
  • #8 17 Lis 2012 17:04
    Arkadiusz G.
    Poziom 8  

    Hm, zaczynam dochodzić do wniosku, że tranzystor po prostu się do tego nie nadaje, jedyne co osiągam to albo udaje mi się wysterować to tak, że widać !ledwo! tylko jeden 'kierunek' i to jak na ironię ten, w którym tranzystor ma być zamknięty.

    Macie pomysł na tranzystor, który lepiej zdał by tu egzamin?

    0
  • #9 17 Lis 2012 17:45
    fuutro
    Poziom 43  

    Możesz spróbować Darlingtona lbo tranzystorów o wiele większym wzmocnieniu albo diody Zenera szeregowo z R2, stworzy niemal przerwę w obwodzie gdy na wyjściu procesora będzie stan wysoki. Jakie napięcie jest na linii zasilania tych tranzystorów?

    0
  • Pomocny post
    #10 17 Lis 2012 20:06
    atom1477
    Poziom 43  

    Arkadiusz G. napisał:
    Hmm, zasilanie jest bateryjne, stabilizator jest tylko po to, żeby zdjąć dodatkowego 1V którego mój AVR nie zdzierży.

    78L05 nie zmniejszy napięcia z 6V do 5V. On wymaga ze 2V spadku napięcia a więc z 6V zrobi najwyżej 4V.
    Tak więc zmierzy ile faktycznie masz za stabilizatorem.
    Jednak jak by nawet było tam 5V to tranzystory nie będą się zamykały.
    Pasowało by użyć czegoś takiego:
    [Atmega8][C] - Tranzystor się nie 'domyka'(multipleksowanie)
    Oczywiście wartości rezystorów powinny być inne.

    0
  • #11 17 Lis 2012 22:29
    Arkadiusz G.
    Poziom 8  

    Witam ponownie! :)

    mój BD132 na emiter dostaje tyle, co z baterii wypływa (teraz 5.40V). Na bazę dostaje 4.7V. Prądów za bardzo nie mam jak pomierzyć, bo wszystko jest już wlutowane w płytkę ;)

    W sumie, bez sensu wmontowałem ten stabilizator, wiem, że są też na 3.3V, a moja atmega na takim napięciu może także pracować :) Wtedy przynajmniej wiem, że stabilne 3.3 będę dostawał. Ale ten problem będę rozwiązywał, jak uda mi się naprawić z tranzystorami ;)

    Co do tego, czym zastąpić obecny element. Chyba spróbuję faktycznie z darlingtonem.

    Pooglądałem po necie, i w związku z tym, pytanko: Czy w takich warunkach napięciowych, jakie mam teraz (bądź lepszych -> stabilne 5V po stabilizatorze i np 7.5V zasilania tranzystora) te darlingtony które sobie wyszukałem, zdałyby egzamin? :

    BD682
    BC516
    TIP135/136/137


    Niestety dalej jestem laikiem jeśli chodzi o elektronikę, bardziej mnie jara ta część, kiedy mogę sobie uC zaprogramować żeby robił to co chcę, żeby robił ;). W związku z tym, dalej, pomimo jednak czytania zanim coś robię, nie jestem pewien czego szukać w niektórych wypadkach (zwłaszcza jeśli chodzi o tranzystory zwykłe).

    Działałem też swego czasu na mosfetach, co mi całkiem nieźle wychodziło (dużo łatwiejsze są dla mnie w zrozumieniu kluczowych zasad doboru/działania + są robione specjalne pod logikę 5V ;P) Dla tego dziękuję bardzo, za pomoc i podsuwanie mi kolejnych pomysłów :)

    Czy LZ44NS miałby szansę bytu w tym układzie?

    0
  • #12 17 Lis 2012 23:31
    szulat
    Poziom 23  

    dostałeś przecież schemat w jaki sposób można sterować tranzystorem PNP za pomocą sygnału niższego niż zasilanie tego tranzystora.
    najlepszą radą byłoby dla ciebie pobawienie się symulatorem w rodzaju SPICE, chociaż w tym prostym przypadku możesz przetestować różne warianty w tej "zabawce" http://www.falstad.com/circuit/
    co prawda dzięki godzinie lutowania można zaoszczędzić 5 minut symulacji, no ale... :D

    0
  • #13 17 Lis 2012 23:50
    Arkadiusz G.
    Poziom 8  

    No tak, ale dla tego się pytam, czy powyżej wymienione układy gotowe byłyby dobrymi zamiennikami do tego, co mi wyżej podano ;) Tak jak mówiłem wcześniej, mam już wytrawioną płytkę, bo nie spodziewałem się że będę miał taki problem.

    Ponadto mam tylko 4 tranzystory, więc i tak i tak bym musiał dokupić :) Więc chyba lepiej, jak od razu kupię darlingtony? :)

    Symulator mi tutaj niewiele pomaga w kwestii doboru elementu (a tego już bez długich konsultacji i godzin w necie raczej sam nie zrobię) ;) ale i tak dzięki za wypowiedź ;)

    0
  • #14 18 Lis 2012 00:21
    michalko12
    Specjalista - Mikrokontrolery

    Darlingtony nic ci tutaj nie pomogą.

    0
  • #15 18 Lis 2012 00:35
    szulat
    Poziom 23  

    Arkadiusz G. napisał:
    Tak jak mówiłem wcześniej, mam już wytrawioną płytkę

    układ ścieżek na płytce to tylko sugestia, a można zmontować zupełnie coś innego :)

    bo problem w tym, że nawet nie wiesz czy twoje tranzystory są niewłaściwe czy może jednak dobre ale zastosowałeś je najpierw w układzie w ktorym nie mogły działać a potem w układzie w którym może by mogły ale napięcia były inne niż myślałeś i niż myślał ten kto podał ci ten schemat.

    a w symulatorze ustawiłbyś sobie napięcia takie jak masz naprawdę i nawet nie znając tajników działania tranzystora po kilku próbach wpadniesz na to jak zmienić oporności żeby tranzystor dobrze się przełączał.

    0
  • Pomocny post
    #16 18 Lis 2012 10:40
    30402
    Użytkownik usunął konto  
  • #17 18 Lis 2012 19:36
    Arkadiusz G.
    Poziom 8  

    Witam!

    Zrobilem to, co kolega Atom rozrysował dla mnie (za co wielce dziękuję!) i uważnie przeczytałem Twoje rady Saabotaz.

    Jak się okazało, problemem nie był dobór rezystorów. Problemem była standardowo moja własna niewiedza.

    Szperając po necie znalazłem wyjaśnienie, dla czego ten mój układzio nie chce działać w takim zestawieniu. Odpowiedź brzmi tak:

    Cytat:

    As you have discovered the output from the AVR is either 0 volts or around 5 volts. However, under both conditions, the base of the PNP is held at a voltage below the +9 volt on the emitter and is therefore forward biased and will always be conducting. You will never be able to turn off a PNP transistor connected this way with a supply voltage greater than the AVR's supply/output voltage. That is why an NPN would be the first choice in this situation, but located with the emitter connected to the ground. Do you want/need a drawing?

    http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=96455


    tłumaczenie, z tego co rozumiem, wygląda mniej a więcej w ten sposób:
    Dla Atmegi sterowanie to albo 0 albo 5V, jednak w obu wypadkach bramka PNP jest utrzymywana dla napięć poniżej +9v (u mnie +6V) na emiterze, stąd przewodzenie będzie występowało zawsze z powodu ukierunkowania prądu.

    Dla tego tutaj wytłumaczyło mi się, po co muszę korzystać zarówno z PNP jak i NPN żeby móc w ten sposób wysterować tego 7segmentowego wyświetlacza.

    Układ powyżej zmontowałem na breadboardzie, bo raz, że muszę przemyśleć wykonanie przeróbki, a dwa, na szybko zobaczę co i jak wysterowywać ;) tak czy owak, problem rozwiązany ;)

    Tak czy owak, dziękuję Wam bardzo za pomoc ;) Cieszy mnie to, że udało mi się znaleźć wyjaśnienie dla czego nie mogę zrobić tego przełączania ;) No i przy okazji to, że nie posłuchałem rad, w stylu 'zmień wyświetlacz' :P

    0