Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Garść praktycznych porad dla początkujących 1

Urgon 07 Jul 2022 07:40 4623 40
IGE-XAO
  • Garść praktycznych porad dla początkujących 1
    Garść praktycznych porad dla początkujących to (mam nadzieję) cykliczna seria przydatnych układów, porad i wskazówek, które powinny pomóc w unikaniu wpadek albo rozwiązać różne problemy. Seria będzie się ukazywać raczej nieregularnie, więc postaram się dodać do każdego odcinka linki do pozostałych.


    1. Najprostsze zabezpieczenie przeciwzwarciowe/nadprądowe.

    Dawno, dawno temu w jednym numerze EdW przeczytałem, iż każdy tranzystor zabezpieczony bezpiecznikiem zabezpieczy ten bezpiecznik paląc się przed nim. Czasem jednak fajnie by było mieć układ wykonawczy z tranzystorem, który nie "wybierze papieża" w razie zbyt dużego prądu. Szczególnie, jeśli nie wiemy, jaki prąd może przez układ popłynąć. Poniższe rozwiązanie występuje często w przetwornicach RCC jako ograniczenie prądu uzwojenia pierwotnego:

    Garść praktycznych porad dla początkujących 1


    Powyżej układ podstawowy z tranzystorem wykonawczym NPN i MOSFET-N. Oba układy działają tak samo - gdy napięcie na rezystorze Rs1/Rs2 przekroczy 0,6V, tranzystor Q1/Q3 zacznie przewodzić obniżając napięcie na bazie Q2 lub bramce Q4. Ten spadek napięcia ogranicza prąd płynący do Rs1/Rs2. Układ będzie działał dla dowolnego napięcia VCC i dowolnej impedancji odbiornika tak długo, jak tranzystor Q2/Q4 pracuje w granicach bezpiecznego obszaru pracy (SOA - Safe Operating Area). Należy też pamiętać o mocy strat na tranzystorze wykonawczym i na rezystorze Rs1/Rs2.


    2. Szybki "hamulec" silnika DC.


    Ciekawą i czasem użyteczną własnością silników prądu stałego jest fakt, iż mogą pracować jako generatory. Istotną własnością generatorów jest to, iż im bardziej generator jest obciążony elektrycznie, tym większy opór mechaniczny stawia. To zjawisko można wykorzystać do zatrzymania silnika niemal w miejscu - wystarczy zewrzeć terminale silnika ze sobą po wyłączeniu zasilania. W urządzeniach elektromechanicznych stosowano w tym celu przełączniki krańcowe. Jeśli silnik podłączony jest do mostka H, to wystarczy otworzyć albo oba górne tranzystory, albo oba dolne. Jeśli jednak silnik sterowany jest jednym tranzystorem, to można zbudować taki układ:

    Garść praktycznych porad dla początkujących 1


    W układzie uwzględniono ograniczenie prądowe dla silnika z porady powyżej. Równolegle do silnika podłączony jest optotriak VO1 wraz z dodatkowym rezystorem i tranzystorem sterującym funkcją Stop. Gdy chcemy zatrzymać silnik, ustawiamy stan niski na wejściu Start, a potem stan wysoki na wejściu Stop. Optotriak zacznie przewodzić zwierając silnik. Stan przewodzenia optotriaka będzie trwać nawet po wyłączeniu wejścia Stop tak długo, jak długo prąd płynący przez triak nie spadnie poniżej prądu zatrzaśnięcia optotriaka (Ift). W tym układzie niedopuszczalnym jest stan wysoki na wejściach Start i Stop w tym samym czasie - grozi to uszkodzeniem optotriaka, a i silnik nie będzie się kręcił. Układ da się nieco uprościć:

    Garść praktycznych porad dla początkujących 1


    Tutaj zamiast dodatkowego wejścia sterującego i towarzyszących im tranzystora i rezystora mamy diodę Zenera D1. Napięcie Zenera powinno być rówe napięciu zasilania minus napięcie, którym sterujemy silnikiem. Gdy na wejściu panuje stan wysoki, napięcie między anodą i katodą D1 będzie za niskie, by dioda zaczęła przewodzić - optotriak nie będzie przewodził. Gdy na wejściu ustawimy stan niski, czyli zwykle 0V, dioda Zenera zacznie przewodzić, a przez to zacznie też świecić dioda optotriaka. Stan ten będzie trwał, póki na wejściu napięcie nie przekroczy wartości 2V - napięcie przewodzenia diody optotriaka Vf. Dla typowych wartości Vf będzie to 0,5-0,85V. Układ ten ma jeszcze jedną zaletę - silnik jest aktywnie hamowany, gdyż optotriak zacznie przewodzić, jak tylko zostanie przekroczony prąd podtrzymania (Ih). Oczywiści i w poprzednim układzie możliwe jest aktywne hamowanie gdy na wejściu Stop panuje stan wysoki. Zwykle prąd podtrzymania jest znacząco niższy od prądu zatrzaśnięcia. Dla optotriaka MOC3023 Ift wynosi 5mA maksymalnie, a Ih tylko 250µA.

    Powyższe rozwiązanie z optotriakiem będzie adekwatne tylko dla mniejszych silników, gdyż przy zbyt dużych prądach zwarcia silnika ulegną zniszczeniu! Dla większych mocy można dodać triak wg. poniższego schematu:

    Garść praktycznych porad dla początkujących 1


    Optotriak został zastąpiony triakiem. Gdy na wejściu panuje stan wysoki, dioda D1 nie przewodzi, przez c prąd na rezystorze R2 jest za niski, by odłożyło się na nim napięcie wystarczające do wyzwolenia triaka. Gdy na wejściu pojawi się stan niski, dioda zacznie przewodzić, na rezystorze zaś odłoży się wystarczające napięcie by wyzwolić triak. Jednocześnie rezystor R3 ograniczy prąd bramki triaka. W tej konfiguracji triak może być dużo większy, co pozwoli na pracę z większymi silnikami i większymi prądami zwarcia.


    3. Co zrobić z nieużywanym wzmacniaczem operacyjnym?


    Zdarza się czasem, iż z konieczności użyty zostaje układ mający więcej wzmacniaczy operacyjnych, niż nam potrzeba. W takiej sytuacji wolny wzmacniacz nie powinien po prostu "wisieć" sobie, gdyż nie dość, że będzie pobierał prąd, to jeszcze może zacząć się wzbudzać i generować niepotrzebne zakłócenia i szumy. Dlaczego? Ano dlatego, iż wzmocnienie wzmacniacza operacyjnego bez ograniczenia sprzężeniem zwrotnym jest duże. Dla dość popularnych układów TL07x wynosi ponad 100dB, czyli 200 tysięcy razy. Nie dość, że te zakłócenia, szumy i wzbudzenia przenikną do sąsiednich wzmacniaczy, to jeszcze wzmacniacz będzie niepotrzebnie pobierał energię i się grzał. Niewłaściwa terminacja nieużywanego wzmacniacza może się skończyć jego nasyceniem i poborem maksymalnego prądu, co spowoduje grzanie się układu, co pogorszy parametry wzmacniaczy będących w użyciu. Co zatem można zrobić?

    Jeśli mamy stopień wzmacniający o dużym wzmocnieniu, to możemy zamienić go na dwa stopnie o mniejszym wzmocnieniu, dzięki czemu wykorzystamy dodatkowy wzmacniacz i poprawimy pasmo przenoszenia.

    Jeśli zbudowaliśmy z trzech wzmacniaczy w układzie z czterema w jednej obudowie wzmacniacz instrumentalny, to czwarty wzmacniacz może posłużyć jako dodatkowy bufor.

    Załóżmy, że nie chcemy tego robić, bo szumy własne, napięcie i prąd niezrównoważenia wejść, etc. Co wtedy? Poniżej rozwiązania dla wzmacniacza zasilanego napięciem pojedynczym i napięciem symetrycznym:

    Garść praktycznych porad dla początkujących 1


    W konfiguracji z pojedynczym napięciem zasilania rezystory R1 i R2 powinny mieć tę samą wartość w zakresie od 1kΩ do 470kΩ. Niższe wartości są dla wzmacniaczy z wejściami bipolarnymi o większym prądzie polaryzacji, wyższe zaś dla wzmacniaczy z wejściami JFET i CMOS. Jeśli nie chcemy umieszczać dodatkowych rezystorów, to możemy podłączyć wejście nieodwracające do źródła napięcia, które mieści się w zakresie bezpiecznych napięć wejściowych. W konfiguracji z zasilaniem symetrycznym wystarczy połączyć wejście nieodwracające nieużywanego wzmacniacza do masy.


    4. Sprzętowa eliminacja drgań styków.


    Programowo drgania styków eliminuje się łatwo, i któregoś razu przedstawię przykłady. Dziś jednak chciałbym pokazać trzy rozwiązania, z czego pierwsze jest wadliwe, ale najpopularniejsze, a trzecie niepotrzebnie skomplikowane. Oto schemat poglądowy:

    Garść praktycznych porad dla początkujących 1


    Układ po lewej to najpopularniejsze rozwiązanie, gdzie rezystor ładuje kondensator, a przycisk go rozładowuje do zera. Jest to rozwiązanie w miarę skuteczne, ale ma jedną, drobną wadę: przez styki popłynie prąd zwarcia ograniczony tylko ich rezystancją i rezystancjami pasożytniczymi. Każde naciśnięcie oznacza udar prądowy i powolną degradację styków. Rozwiązanie drugie eliminuje ten problem całkowicie jednocześnie dodając opóźnienie dłuższe niż wynosi czas drgania styków. Ponieważ R2 i R3 tworzą dzielnik napięcia, na wejściu mikrokontrolera napięcie wyniesie około 10% napięcia zasilania. Wariant trzeci dodaje bramkę AND z wejściami Schmitta jako dodatkowy bufor. Dzięki temu jak tylko napięcie na kondensatorze spadnie poniżej progu zmiany stanu wejść, wyjście zmieni swój stan. Obecnie nie jest to konieczne, gdyż większość mikrokontrolerów ma wejścia z bramkami Schmitta. Jeszcze jedna uwaga: nie zawsze trzeba montować rezystor podciągający do plusa, gdyż wiele mikrokontrolerów posiada przynajmniej kilka wejść z wbudowanymi rezystorami podciągającymi, które można włączyć programowo. Wartości elementów należy dobrać wg. własnych potrzeb.


    To tyle na teraz,
    Lecz niech nikt nie wątpi,
    Porad praktycznych
    Ciąg dalszy nastąpi.

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    Urgon
    Editor
    Offline 
    Has specialization in: projektowanie pcb, tłumaczenie, mikrokontrolery PIC
    Urgon wrote 5616 posts with rating 1476, helped 194 times. Live in city Garwolin. Been with us since 2008 year.
  • IGE-XAO
  • #2
    miszcz310
    Level 20  
    Bardzo fajna inicjatywa! Super sprawa. Proszę kontynuować wysiłki, bo są warte!
    Pozdrawiam!
  • #3
    LEDówki
    Level 36  
    W punkcie 4. można stosować przerzutniki monostabilne. Mikroprocesor może mieć programową pętlę eliminującą drganie styków.
  • #4
    Mlody_Zdolny
    Level 15  
    Urgon wrote:
    Załóżmy, że nie chcemy tego robić, bo szumy własne, napięcie i prąd niezrównoważenia wejść, etc. Co wtedy? Poniżej rozwiązania dla wzmacniacza zasilanego napięciem pojedynczym i napięciem symetrycznym:


    Ale tylko jeśli jest to wzmacniacz z właściwiścią "Internally frequency compensated for unity gain".
    Z 358 zadziała, ale z komparatorem 393 już tak nie zrobisz.
  • IGE-XAO
  • #5
    Urgon
    Editor
    AVE...

    Początkujący elektronicy raczej nie spotykają wzmacniaczy, które nie są stabilne przy wzmocnieniu równym 1 lub mniej. O komparatorach nie wspominałem, bo pisałem o wzmacniaczach, a to są różne rzeczy. Dlatego napiszę o nich w którejś z kolejnych części...
  • #6
    jarek_lnx
    Level 43  
    W kwestii zabezpieczeń z punktu 1. Te układy sprawdzają się jako źródła stałego prądu, ale jako zabezpieczenia mają swoje problemy. Kiedy prąd jest poniżej progu, tranzystor BJT się nasyca, a bramka MOSFET-a ładuje dużo się powyżej progu. Jak pojawi się nagłe przeciążenie, trochę potrwa, zanim układ zacznie ograniczać, przy czym w wersji z MOSFET-em jest gorzej.
    Przykład: dwa ograniczenia nastawione na 1 A.

    Garść praktycznych porad dla początkujących 1
  • #7
    Urgon
    Editor
    AVE...

    Na moje oko ten impuls prądu trwa jakieś ~125ns. Dla pojedynczego impulsu trwającego 1µs prąd wybranego przez Ciebie tranzystora MOSFET-N może wynieść ponad 100A. Myślę, że zabezpieczenie jednak będzie wystarczająco skuteczne. Na pewno będzie lepsze od bezpiecznika topikowego...
  • #8
    jarek_lnx
    Level 43  
    Spaliłem kiedyś tranzystor próbując użyć takiego ogranicznika w wersji na 500V 1mA, dlatego o tym piszę, oczywiście układ można zabezpieczyć przed wystąpieniem tego zjawiska, ale trzeba najpierw o nim wiedzieć. Przykładowo ograniczając Ugs, wtedy tranzystor sam ograniczy prąd zwarcia.
  • #9
    gps79
    Level 31  
    Urgon wrote:
    Programowo drgania styków eliminuje się łatwo
    ja się nie do końca zgodzę z tym stwierdzeniem.
    Programowo jest taniej, niż sprzętowo (koszt kondensatora i rezystora), ale nie łatwiej.
    Dlaczego nie jest łatwiej? Bo wymaga pomiaru czasu, zabiera dodatkowe kilkadziesiąt bajtów kodu i kilka bajtów RAMu, co w niektórych przypadkach (mały mikrokontroler) może być istotne.

    Polecam dobry artykuł Jacka Ganssle omawiający temat:
    http://www.ganssle.com/debouncing.htm
    http://www.ganssle.com/debouncing-pt2.htm

    oraz kod, który kiedyś proponowałem forumowiczom:
    - debouncing w BASCOMie: https://www.elektroda.pl/rtvforum/viewtopic.php?p=19696130#19696130
    - debouncing w ARDUINO: https://www.elektroda.pl/rtvforum/viewtopic.php?p=19534351#19534351
  • #10
    jarek_lnx
    Level 43  
    Jeszcze uwaga odnośnie ostatniego schematu z triakiem - w obwodzie bramki zabrakło rezystora ograniczającego prąd.

    Odnośnie układów eliminacji skutków drgań styków, w teorii wydają się dobre, a w praktyce trzeba podłączyć oscyloskop, żeby zobaczyć co się dzieje na zboczach i na czym to polega że taki układ może nie działać, kiedy działa to zasługa współdziałania sprzętowego filtru i długiego czasu obiegu pętli głównej programu, ale podłącz takie coś sprzętowego licznika, albo wejścia przerwań, a dowiesz się jak słabo działa. Dużo zależy od tego z jakim stykiem mamy do czynienia, ale niektóre dają tak wredne przebiegi, że nie da się uzyskać pojedynczego zbocza układem RC.
  • #12
    khoam
    Level 41  
    jarek_lnx wrote:
    ale podłącz takie coś sprzętowego licznika, albo wejścia przerwań, a dowiesz się jak słabo działa.

    W ten sposób moim zdaniem można uzyskać najlepszy debouncing programowy, a użycie filtru cyfrowego jest wtedy mocno wskazane.
    Jeżeli chodzi o sprzętowy debouncing, to nic moim zdaniem nie przebije NE555 :)
  • #13
    tmf
    Moderator of Microcontroller designs
    gps79 wrote:
    Dlaczego nie jest łatwiej? Bo wymaga pomiaru czasu, zabiera dodatkowe kilkadziesiąt bajtów kodu i kilka bajtów RAMu, co w niektórych przypadkach (mały mikrokontroler) może być istotne.

    Tak, na dzisiaj, kiedy procesory mają kilka-kilkaset kB pamięci, to istotne ograniczenie :)
    gps79 wrote:
    oraz kod, który kiedyś proponowałem forumowiczom:

    Kod, który pokazuje jak tego nie robić. Nie obraź się, ale jeśli robisz debouncing programowo przy pomocy delay to nie dziwię się, że uważasz, że debouncing programowy nie jest prosty. Normalnie robi się to przy pomocy timera. Tu opis kodu forumowego kolegi:
    http://mikrokontrolery.blogspot.com/2011/04/jezyk-c-biblioteka-obsluga-klawiatury.html
  • #14
    gps79
    Level 31  
    tmf wrote:
    Kod, który pokazuje jak tego nie robić. Nie obraź się, ale jeśli robisz debouncing programowo przy pomocy delay to nie dziwię się, że uważasz, że debouncing programowy nie jest prosty.
    wybacz, ale Twoja postawa pokazuje, że należy czytać ze zrozumieniem, zanim się odpowie, bo później powstają takie bzdury, jak ta, którą zacytowałem. I proszę nie inputuj mi, że propaguję rozwiązanie z delayem do debouncingu, bo to nie prawda.
  • #16
    khoam
    Level 41  
    speedy9 wrote:
    I jeszcze o drganiach styków i ich eliminacji od @mirekk36 : http://mirekk36.blogspot.com/2012/10/drgania-stykow-to-bajki-wiec-jak-to.html

    Prezentowana tam pod koniec metoda eliminacji (nieistniejących wg Autora) drgań styków z pomocą funkcji _delay_ms() jest co najmniej zabawna. W necie pełno jest tego rodzaju "rozwiązań". Z niezrozumiałych dla mnie przyczyn są one bardzo popularne i jedne z najgorszych.
    Ponadto w cytowanym blogu pominięto problem identyfikacji wykrywania wielokrotnych (zamierzonych sekwencji) wciśnięć przycisku. Parafrazując temat tego bloga, Autor opowiada bajki :)

    EDIT
    Dopiero w trzeciej części Autor "odkrył" możliwość debouncingu z użyciem przerwań od timera, ale w dalszym ciągu bez możliwości wykrywania sekwencji wciśnięć.
  • #17
    kris8888
    Level 35  
    Hamowanie "przeciwprądem" zwarciowym stosuje się nie tylko w silnikach DC ale również w wszelkiej maści silnikach komutatorowych AC w których dzięki magnetyzmowi szczątkowemu następuje samowzbudzenie i generowanie prądu. Taki sposób hamowania jest stosowany np. w kosiarkach elektrycznych, sokowirówka, itp. czyli wszędzie tam gdzie ze względów bezpieczeństwa, po wyłączeniu, zależy nam na szybkim wyhamowaniu silnika.
    Tylko że z reguły jest to na zasadzie elektromechanicznej, czyli dodatkowych styków zwierających uzwojenie silnika.
  • #18
    Mlody_Zdolny
    Level 15  
    gps79 wrote:
    Programowo jest taniej, niż sprzętowo (koszt kondensatora i rezystora), ale nie łatwiej.
    Dlaczego nie jest łatwiej? Bo wymaga pomiaru czasu, zabiera dodatkowe kilkadziesiąt bajtów kodu i kilka bajtów RAMu, co w niektórych przypadkach (mały mikrokontroler) może być istotne.

    Jeżeli brakuje pamięci na obsługę interfejsu użytkownika i konieczny jest sprzętowy debouncing, znaczy, że w projekcie coś poszło nie tak. Albo za słaby procek, albo złe wymagania, albo nieoptymalnie napisany program.
    Maszyna stanów przycisku obsługująca eliminację drgań jest łatwa do zaadoptowania na wyższym levelu. Zmieniając pewne parametry tanio rozszerzamy interfejs o długie/krótkie wciśnięcia, pojedyńcze/podwójne/potrójne, itd.
  • #19
    lukiiiii
    Level 28  
    W Q4 widzę diodę, czy po podaniu stanu niskiego na START, prąd generowany z silnika nie popłynie do linii zasilającej? Pomijam rezystor Rs (można dać równolegle tak samo skierowaną diodę) oraz dołożony układ hamulca.
  • #20
    jarek_lnx
    Level 43  
    lukiiiii wrote:
    W Q4 widzę diodę, czy po podaniu stanu niskiego na START, prąd generowany z silnika nie popłynie do linii zasilającej? Pomijam rezystor Rs (można dać równolegle tak samo skierowaną diodę) oraz dołożony układ hamulca.
    Jak podłączysz silnik, wprost pod zasilanie, bez obciążenia osiągnie pewną prędkość obrotową, taką żę SEM silnika będzie prawie równa zasilaniu, żeby prąd mógł popłynąć przez diodę w Q4 prędkość należy jeszcze zwiększyć. Gdybyśmy sterowali urządzeniem podobnym do dźwigu takie zjawisko było by możliwe - jakaś masa opad oddaje energię i silnik daje większą SEM niż zasilanie układu.
  • #21
    Urgon
    Editor
    AVE...

    Odnośnie drgań styków, to napisałem przecież, iż są rozwiązania programowe, i w którejś kolejnej części jej przedstawię. Ponadto jak koledzy zrealizują programowy debouncing, jeśli przycisk współpracuje z układem logicznym, a nie z mikrokontrolerem? Albo jeśli w programie nie ma miejsca lub czasu na rozwiązania programowe?
  • #22
    Mlody_Zdolny
    Level 15  
    Urgon wrote:
    Albo jeśli w programie nie ma miejsca lub czasu na rozwiązania programowe?

    Obsługa przycisków to część interfejsu, którego opis pojawia się jako jedno z pierwszych wymagań i jeżeli projektant nie przewidział tego, żeby zapewnić odpowiednie zasoby to źle wróży powodzeniu projektu.
    Różnie to bywa, ale kto zapomina o obsłudze przycisków?
  • #23
    khoam
    Level 41  
    Urgon wrote:
    Ponadto jak koledzy zrealizują programowy debouncing, jeśli przycisk współpracuje z układem logicznym, a nie z mikrokontrolerem?

    Wtedy stosowałem "nieśmiertelny" NE555. Nigdy nie zawiódł :)

    Garść praktycznych porad dla początkujących 1
  • #24
    willyvmm
    Level 29  
    Mam pewną uwagę co do punku 4 rysunek 1.

    Niestety ten uklad jest GORSZY niz brak jakiegoklwiek ukladu. Jest to doskonały przykład jak debouncingu nie należy robic.
    To nic innego jak iskrownik i generaror zakłóceń elektromagnetycznych.

    @Urgon usuń proszę ten przyklad z poradnika żeby nie powielać zlych praktyk.
  • #25
    Urgon
    Editor
    AVE...

    willyvmm wrote:
    Mam pewną uwagę co do punku 4 rysunek 1.
    Niestety ten uklad jest GORSZY niz brak jakiegoklwiek ukladu.

    Dziękuję, nie zauważyłem tego. A teraz przeczytaj cały punkt czwarty...


    @Mlody_Zdolny

    Miała być prosta SPRZĘTOWA eliminacja drgań styków. I jest. O programowej jeszcze zdążę napisać. A i zdziwiłbyś się, jak wielu początkujących (do których ta seria jest kierowana) nie robi tego programowo, albo robi to źle...
  • #26
    SylwekK
    Level 32  
    To i ja dorzucę tu 3 grosze :) Układ sprzętowej eliminacji, z której korzystałem 30lat temu do bezpośredniego sterowania wejściami w układach cyfrowych (liczniki - ręczne ustawianie adresu pamięci eprom), który nigdy mnie nie zawiódł.

    Garść praktycznych porad dla początkujących 1

    Oczywiście na wyjściu nie jest idealny prostokąt tylko szpilka wynikająca z ładowania kondensatora. Zapisałem sobie to kiedyś po prostu żeby pamiętać jakiego typu stan mam na wyjściu :)
  • #27
    Janusz_kk
    Level 34  
    jarek_lnx wrote:
    Przykład: dwa ograniczenia nastawione na 1 A.

    Można cię poprosić o kod tego obwodu.