logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zwiększyć obciążalność wyjść 74HC595 dla 8x3 LED?

wprost123 06 Maj 2020 02:24 9402 263
Najlepsze odpowiedzi

Jak zwiększyć obciążalność wyjść 74HC595, żeby sterować 8 gałęziami po 3 LED-y?

Nie należy zasilać 3 LED-ów po 20 mA bezpośrednio z 74HC595, bo układy 74HC można zasilać tylko do ok. 6 V, a na wyjściach obowiązują ograniczenia prądowo-mocowe; lepiej użyć innych scalaków albo zewnętrznych tranzystorów [#18658030][#18673477] Jeśli zasilasz całość z 12 V, możesz w jednej gałęzi połączyć 3 diody szeregowo i dobrać rezystor do takiego zasilania, zamiast próbować zwiększać prąd wyjść rejestru [#18657891] Do wzmocnienia wyjść sprawdza się prosty stopień na tranzystorach NPN, np. BC337-40 zamiast BC547; dla sterowania modułami LED 40–60 mA sugerowano rezystor bazy rzędu 3,3 kΩ, a dla większych obciążeń rozważyć MOSFET-y logic level [#18662388][#18678477] Zamiast 74HC595 można też użyć układów lepiej pasujących do LED, np. CD4015/CD4094, albo specjalizowanych driverów typu MBI5026, które mają ograniczenie prądu i są stworzone do takich zastosowań [#18658030][#18672913][#18673102]
Wygenerowane przez model językowy.
  • #241 18772973
    krisRaba
    Poziom 31  
    Posty: 1999
    Pomógł: 94
    Ocena: 434
    Dokładnie tak zrób :) Możliwe, że tak mała pojemność, to już dla niego problem zbyt wysokiego taktowania i coś się wysypuje.
    Bo jak masz te powiedzmy 2s, to on odlicza 100 000 taktów... Patrząc na normalne działanie czujek, to raczej projektowali tego klocka pod trochę dłuższe impulsy, więc i może częstotliwość nie była kryterium optymalizacji ;)
  • #242 18773048
    _jta_
    Specjalista elektronik
    Posty: 48809
    Pomógł: 3198
    Ocena: 4184
    wprost123 napisał:
    Do C6 dolutowałem równolegle kondensator 470 nF. Przy potencjometrze skręconym na minimum dioda podłączona do czujki świeci ok 6 minut

    To jet podejrzanie dużo, bo 6 minut / 470 nF daje ponad 750 MΩ - pewnie w układzie nie ma podobnej oporności, tylko jest jakiś licznik impulsów z generatora, którego okres jest odmierzany z pomocą tego kondensatora. Nie wygląda mi na to, żeby tam był jakiś CD4541 (bo on ma kilkanaście nóżek), więc albo jest tam jakiś timer z licznikiem, którego ja nie znam, podobny do CD4541, albo (bardziej prawdopodobne) mikrokontroler (uC), który używa układu C6 z potencjometrem do odmierzania czasu, i zlicza odpowiednią ilość tak odmierzonych czasów. Na prosty timer z licznikiem to nie wygląda z takiego powodu, że wtedy czas byłby proporcjonalny do pojemności - czyli, jak jest 6 minut przy 470 nF, to przy 1 nF powinno być około 0,75 sekundy, a nie parę sekund - to by znaczyło, że czas z układu RC daje coś koło tej 0,75 sekundy (w sumie), a resztę dokłada uC. To może działać tak, że uC ustawia układ RC, żeby kondensator się ładował, napięcie z niego wchodzi na nóżkę uC, dając przerwanie po osiągnięciu określonej wartości; uC w obsłudze przerwania zlicza impuls, rozładowuje kondensator, i ustawia się na czekanie na następne przerwanie, i tak może kilka tysięcy razy, a może kilkadziesiąt tysięcy; parę sekund sumy czasów pochodzi z czasów obsługi przerwań i zmienić to można tylko zmieniając program; uC musi zastartować ładowanie kondensatora, a następnie się uśpić, żeby czekać na kolejne przerwanie - jeśli ono przyjdzie, zanim uC się uśpi, to nie będzie to działać prawidłowo - może stąd pochodzi zaobserwowana niestabilność?
  • #243 18773230
    krisRaba
    Poziom 31  
    Posty: 1999
    Pomógł: 94
    Ocena: 434
    Przespałeś ;) Już zostało rozpracowane jak to działa, nawet karta katalogowa scalaka była. Tam nie jest mierzenie czasu jak w NE555, tylko oscylator, który ładuje i rozładowuje kondensator, przełącza się przy konkretnych progach, czyli pracuje na bardzo wąskim zakresie napięcia, a nie na przeładowaniach pomiędzy 0V i VCC. Ładuje się przez rezystor i potencjometr, a rozładowuje przez wewnętrznie załączany pull-down 20k, stąd proporcja rezystancji musi byc zachowana, żeby to poprawnie działało i nie można zbyt wiele majstrować przy rezystancji, a można przy pojemności...

    Dodano po 1 [minuty]:

    I ten timer odlicza czas trwania impulsu równy 100 000 taktów oscylatora, a potem zależny od wersji scalaka czas martwy, w którym nie reaguje.
  • #244 18774671
    wprost123
    Poziom 9  
    Posty: 585
    Ocena: 52
    Czujki po zwiększeniu kondensatora C6 na 1nF niestety nadal co jakiś czas "ślepną" na pewien czas (różny). Będę się temu jeszcze przyglądał i może dam 2,2 nF albo 4,7 nF i zobaczę efekty.
  • #245 18775636
    krisRaba
    Poziom 31  
    Posty: 1999
    Pomógł: 94
    Ocena: 434
    Albo sprawdź mocniejszy pullup dla fotorezystora, bo może bawisz się w warunkach, gdzie lekko rzucisz na niego cień i dezaktywujesz scalaka ;-)
  • #246 18776973
    wprost123
    Poziom 9  
    Posty: 585
    Ocena: 52
    Jakoś bez efektów ze zmianami kondensatora. Dalej czujki czasami nie chcą wykrywać ruchu przez jakiś czas. Będę próbował z tym wspomnianym rezystorem.
    Próbowałem też zakleić fotorezystor taśmą. Niestety nie wpłynęło to jakoś znacząco na to przy jakim świetle czujka wyłapuje ruch.
  • #247 18778850
    wprost123
    Poziom 9  
    Posty: 585
    Ocena: 52
    krisRaba napisał:
    Albo sprawdź mocniejszy pullup dla fotorezystora, bo może bawisz się w warunkach, gdzie lekko rzucisz na niego cień i dezaktywujesz scalaka

    Pull-up to R8? Czyli gdybym zamienił go np na 1M (obecnie jest 680K) to czujka mogłaby reagować w bardziej oświetlonym pomieszczeniu? Jak wspomniałem problemy z wykrywaniem chyba nie są związane ze zmianą pojemności C6, bo teraz mam kondensator 2,2nF i czas min ok 9 sekund i dalej bywa ten problem. Czujki działają w miarę ok tylko gdy zupełnie wyłączam światło w pokoju, ale tak całkowicie po ciemku to jednak się raczej po domu nie chodzi ;)

    Czujki będą gdzieś nie daleko od schodów, więc gdy jedna czujka rozświetli schody, to druga nie powinna być przez to światło "unieruchomiona". Większy problem może być tu pewnie z czujką na dole bo górna będzie nad LED- ami, a dolna raczej poniżej ich poziomu.
  • #248 18778888
    _jta_
    Specjalista elektronik
    Posty: 48809
    Pomógł: 3198
    Ocena: 4184
    wprost123 napisał:
    Pull-up to R8? Czyli gdybym zamienił go np na 1M (obecnie jest 680K) to czujka mogłaby reagować w bardziej oświetlonym pomieszczeniu?

    Spodziewałbym się, że odwrotnie: większy opornik, to słabszy pull-up, i oświetlenie musi być słabsze, żeby wystarczył.

    wprost123 napisał:
    Czujki działają w miarę ok tylko gdy zupełnie wyłączam światło w pokoju

    Nie wiem, czy czasem nie jest tak, że te czujki nie potrafią prawidłowo działać przy świetle, a fotoopornik jest po to, by dawać sygnał, że ono jest, żeby nie próbowały, kiedy się nie da.
  • #249 18779008
    krisRaba
    Poziom 31  
    Posty: 1999
    Pomógł: 94
    Ocena: 434
    Jak już kolega napisał mocniejszy pullup to rezystor o mniejszej wartości ;-)

    Czujka jest do sterowania oświetleniem, więc niejako normalne, że ma być nieaktywna, gdy jest jasno. To normalne podejście, w czujkach do opraw oświetleniowych dodatkowo jest jeszcze regulacja czułości.
    Nie wydaje mi się, żeby czujka nie potrafiła zupełnie działać przy świetle. Praktycznie każda czujka alarmowa potrafi, a wątpię by sam sensor był jakiś inny.
  • #250 18779169
    _jta_
    Specjalista elektronik
    Posty: 48809
    Pomógł: 3198
    Ocena: 4184
    krisRaba napisał:
    Nie wydaje mi się, żeby czujka nie potrafiła zupełnie działać przy świetle.

    Pasywny czujnik podczerwieni (PIR) musi być bardzo czuły na promieniowanie w zakresie dalekiego IR (odpowiadającego temperaturze pokojowej), bo to promieniowanie, które ma wykrywać, jest bardzo słabe. A jakiekolwiek światło zwykle działa silniej od IR - i zwykły filtr pochłaniający światło może niewiele pomóc, bo pochłanianie zwykle jest przetwarzaniem na IR - musiałby to być odpowiednio dobry filtr, który by nie przetwarzał światła na IR. Jeśli w tym czujniku jest byle jaki filtr, to światło powoduje jego przesterowanie i brak prawidłowego działania.
  • #251 18783068
    wprost123
    Poziom 9  
    Posty: 585
    Ocena: 52
    Dodałem równolegle do R8 rezystor 100k. Niestety czujka cały czas podawała napięcie na wyjście, nawet przy mocnym oświetleniu.

    Gdy dodałem równolegle rezystor 1M (po uprzednim usunięciu 100k), to czułość jest chyba taka sama jak w tej czyujce gdzie nic nie zmieniałem.
  • #252 18783100
    krisRaba
    Poziom 31  
    Posty: 1999
    Pomógł: 94
    Ocena: 434
    Ale czekaj.. Co znaczy cały czas podawała napięcie? Czy wykrywała wtedy ruch poprawnie, ale bez blokowania przy mocnym świetle, więc zapalałaby schody nawet jak jest jasno?
    Czy chodzi Ci o to, że po dodaniu rezystora 100k wyjście było cały czas aktywne nawet bez ruchu?
  • #253 18783107
    wprost123
    Poziom 9  
    Posty: 585
    Ocena: 52
    krisRaba napisał:
    Czy chodzi Ci o to, że po dodaniu rezystora 100k wyjście było cały czas aktywne nawet bez ruchu?

    Właśnie w ten sposób było. Wyjście było aktywne mimo braku ruchu.
  • #254 18783110
    krisRaba
    Poziom 31  
    Posty: 1999
    Pomógł: 94
    Ocena: 434
    Bo przypomnę, że próbujesz ustalić, czy za brak reakcji czujki na ruch czy niepewne działanie odpowiada obwód z fotorezystorem, czy to coś innego.
    Jeśli czujka by działała przy każdym świetle (bez blokowania gdy jest jasno) stabilnie, to przynajmniej wiesz, że sensor sobie radzi i nad czym trzeba popracować...
    A jak wyjdzie, że sensor do kitu, to gorzej ;-)

    Dodano po 2 [minuty]:

    wprost123 napisał:
    Właśnie w ten sposób było. Wyjście było aktywne mimo braku ruchu.

    No to trochę lipa. A z takim rezystorem, ale w mroku jak działa?
    W ogóle to może daj tam potencjometr zamiast R8 i poszukaj czy jakaś nastawa działa lepiej... Potem wylutuj i zmierz ile to jest ;-)
  • #255 18785059
    wprost123
    Poziom 9  
    Posty: 585
    Ocena: 52
    Dołączyłem równolegle potencjometr 1M. Czułość się zmieniła, ale jest to zmiana mocno nieliniowa niestety, więc nie mogę jej dostosować płynnie, ale chyba nie uda się czegoś lepszego łatwo osiągnąć, więc zostanę przy tym rozwiązaniu, jeśli czułość będzie w miarę ok po zamianie potencjometru na rezystor najbliższy z szeregu czyli w tym przypadku albo 220K albo 470K.

    Dodano po 2 [godziny] 50 [minuty]:

    Z rezystorem 470K równolegle z R8 czułość się trochę poprawiła i tak już chyba zostawię.

    Zauważyłem jednak jeszcze jeden problem. Podświetlanie nie może działać zbyt krótko, więc układ czasujący odpowiedzialny za sterownie D rejestru powinien być ustawiony np. na co najmniej 15s. Zakładamy, że wejście zajmuje 8s. Więc gdy np w 9,12,14 sekundzie na schody wejdzie kolejna osoba, to ten układ (mimo że czujka da kolejny impuls-przy założeniu że czas min. będzie na poziomie 2s) nie uruchomi się kolejny raz, ani nie przedłuży swojego działania i kilka sekund może mieć nieoświetlone schody. Lepiej byłoby chyba, żeby układ czasujący sterujący D rejestru, przedłużał swój impuls gdy dostanie kolejny impuls od czujki. Mam nadzieję, że w miarę zrozumiale napisałem o co mi chodzi.
    Może lepszy byłby tu jednak układ czasowy w trybie monostabilnym? Wtedy każde wykrycie nowej osoby dawałoby nowy 15-sekundowy impuls dla D rejestru. Co Koledzy sądzą o tym pomyśle?? Wiem, że krisRaba sugerował wcześniej, żeby to jednak było na zbocze, ale teraz właśnie pomyślałem o powyższym scenariuszu.
  • #256 18785659
    _jta_
    Specjalista elektronik
    Posty: 48809
    Pomógł: 3198
    Ocena: 4184
    wprost123 napisał:
    każde wykrycie nowej osoby dawałoby nowy 15-sekundowy impuls dla D rejestru

    A jeśli kolejna osoba zostanie wykryta w czasie impulsu, to się go przedłuża. To wygląda sensownie. I to robi przerzutnik monostabilny retrygerowalny.

    Jest tylko kwestia, że wypada chyba rozróżniać przejście tej samej osoby przez "bramkę" po drugiej stronie od wejścia drugiej osoby od drugiej strony.
  • #257 18786805
    wprost123
    Poziom 9  
    Posty: 585
    Ocena: 52
    _jta_ napisał:
    I to robi przerzutnik monostabilny retrygerowalny.

    Czy nie wystarczyłby tutaj NE555 w trybie monostabilnym? Przerzutnik monostabilny to chyba byłby większy układ, a tego już bym nie chciał, bo itak całość mocno się rozrosła w porównaniu do układu pierwotnego i przeniesienie tego na płytkę uniwersalną i polutowanie, będzie dla mnie bardzo dużym wyzwaniem.
    Jeśli NE555 w trybie monostabilnym jednak nie byłby tutaj dobrym pomysłem, to zostawię już tak jak jest, a w przyszłości będę pewnie próbował zrobić taki układ na Arduino.
  • #258 18787066
    _jta_
    Specjalista elektronik
    Posty: 48809
    Pomógł: 3198
    Ocena: 4184
    NE555 nie jest retrygerowalny. Ale jeśli impuls z czujnika jest nieco dłuższy, to można nim ładować (albo rozładowywać, zależnie od polaryzacji) kondensator podłączony do wejścia NE555, i w ten sposób uzyskać "retrygerowalność". Logika sygnału na wyjściu będzie odwrotna do sygnału z czujnika (jeśli czujnik po wykryciu da stan wysoki, to na wyjściu NE555 pojawi się niski, i vice versa). Wtedy czas do rozpoczęcia wyłączania LED-ów będzie się liczył od końca ostatniego impulsu z czujnika (włączanie zacznie się od początku pierwszego impulsu).
  • #260 18817833
    wprost123
    Poziom 9  
    Posty: 585
    Ocena: 52
    Wróciłem z urlopu i do spawy tego układu. Po przemyśleniu przez urlop, doszedłem do wniosku, że zostawię układ w takiej wersji jak jest. Ma pewne mankamenty związane z logiką działania, o których napisałem, ale na początek wystarczy. Nie chcę jeszcze bardziej go komplikować. Teraz w wolnych chwilach będę usiłował jakoś to wszystko polutować na płytce uniwersalnej, co będzie duuużym wyzwaniem, bo jeszcze nigdy nie lutowałem nic na takiej płytce. Więc minie pewnie sporo czasu, zanim wymyślę, jak przenieść na nią układ :-? .
  • #261 18852918
    wprost123
    Poziom 9  
    Posty: 585
    Ocena: 52
    Układ działa na płytkach testowych (ze swoimi ograniczeniami o których pisałem wcześniej). Niestety nie dam rady zlutować go na płytce uniwersalnej. Próbowałem zrobić jeden "moduł" na osobnej małej płytce- tylko timer 555 i jeden rejestr przesuwny z wyjściami do 8 diod. Już tutaj miałem duże problemy z lutowaniem i niestety nie działa mi to tak jak powinno, więc z lutowaniem całego układu bym sobie nie poradził :( Gdy zacznę naukę Arduino to spróbuję zrobić ten efekt programowo. Będzie wtedy o wiele mniej elementów i lutowania.
  • #262 18853321
    krisRaba
    Poziom 31  
    Posty: 1999
    Pomógł: 94
    Ocena: 434
    Albo w międzyczasie ogarnij tworzenie PCB, na którym lutowanie takiego czegoś będzie przyjemnością ;-)
  • #264 18854674
    krisRaba
    Poziom 31  
    Posty: 1999
    Pomógł: 94
    Ocena: 434
    Akurat środowisko Arduino w typowej formie to niezbyt moja działka ;-) Ja bardziej zajmuję się własnymi rzeczami na mikroprockach z firmwarem w C, często bezpośrednio na rejestrach itp. Takie tam wycieczki z piłą mechaniczną przez dżunglę :lol:

Podsumowanie tematu

✨ W dyskusji poruszono temat zwiększenia obciążalności wyjść rejestru przesuwnego 74HC595 w kontekście sterowania oświetleniem LED w układzie detekcji ruchu. Użytkownik planuje użycie czujników PIR do aktywacji oświetlenia na schodach. Wskazano na problemy z obciążeniem wyjść rejestru, które mogą wynikać z ograniczeń prądowych (20mA na wyjście). Proponowane rozwiązania obejmują zastosowanie tranzystorów (np. BC547, BC337-40) do wzmocnienia sygnału oraz użycie układów NE555 do generowania impulsów czasowych. Użytkownik rozważa również zastosowanie transoptorów do izolacji sygnałów oraz modyfikacje czujników, aby poprawić ich czułość. Wskazano na potrzebę testowania układów na płytkach stykowych przed lutowaniem na płytkach uniwersalnych.
Wygenerowane przez model językowy.
REKLAMA