Pytanie:
Miniaturowa sygnalizacja świetlna z Raspberry Pi: okablowanie wielu diod LED
SkyNT
2013-02-14 13:19:30 UTC
view on stackexchange narkive permalink

Jestem inżynierem budownictwa lądowego i specjalizuję się w urządzeniach do sterowania ruchem drogowym i mam mały projekt hobbistyczny polegający na zbudowaniu makietowego systemu sygnalizacji świetlnej. Potrafię samodzielnie zarządzać i sterować programowaniem sygnalizacji świetlnej za pomocą Raspberry Pi (dodatkowo daje mi to możliwość implementacji dynamicznego i programowanego sterowania oraz interfejsu z poważnym schematem sterowania ruchem i prawdopodobnie rzeczywistymi danymi o ruchu). Potrzebuję tylko pomocy przy okablowaniu wielu diod LED po stronie sprzętowej :)

Postępowałem zgodnie z tym samouczkiem http://www.raspberrypi-spy.co.uk/2012/06/control-led- używanie-gpio-output-pin / w porządku (w tym używanie zewnętrznego źródła zasilania zamiast Pin 2), ale prawdopodobnie napotkam problem ze zbyt małą liczbą połączeń GPIO dla wszystkich świateł drogowych.

Następnie próbowałem multipleksować z matrycą LED http://www.appelsiini.net/2011/how-does-led-matrix-work. Multipleksowanie działa, jednak światła są zwykle słabsze, wątpię, aby to skalowało się dobrze, a to zwykle zwiększa złożoność sterowania.

Podstawowe pytanie:

Oprócz zdobycia karty rozszerzeń na Raspberry Pi, czy są jakieś inne sztuczki, których mógłbym użyć do sterowania wieloma diodami LED z mniejszą liczbą sygnałów 0/1?

Jedną rzeczą dotyczącą sygnalizacji świetlnej jest to, że zwykle są one blokowane z trzech, z których tylko jeden jest zawsze aktywny w danym momencie. Czy istnieje jakiś stosunkowo prosty obwód, który umożliwiłby mi „przełączanie” bloku diod LED za pomocą pojedynczego sygnału 0/1?

b = sufit (ln (N) / ln (2)), gdzie N to liczba kontrolowanych diod LED, a b to liczba bitów wymaganych do zaimplementowania sterowania. Zatem jednostka sygnalizacji świetlnej, w której tylko 1 na 3 diody LED jest aktywna na raz, wymagałaby 2 bitów I / O do sterowania. Dzięki 8-bitowym I / O możesz sterować 32 jednostkami sygnalizacji świetlnej: 2 bity dla danych (które 1 na 3 światło ma się włączyć), 5 bitów dla adresu (który 1 na 32 lub 2 ^ 5 jednostek, o których mówisz), i 1 bit do zatrzasku. Mam nadzieję, że ktoś może rozszerzyć to na pełną odpowiedź.
Odpowiedź poniżej jest dobra i to, co zamierzałem, zasugerować, ale jako coś prostego nie mogłem znaleźć dobrego obwodu odniesienia. Możesz także użyć małego 8-pinowego mikrokontrolera o wartości 1 USD i rozwinąć własną magistralę szeregową dla praktycznie nieograniczonej liczby urządzeń, chociaż jest to trochę w projekcie samym w sobie, jeśli wcześniej ich nie używasz.
Wyszukanie frazy „[multipleksowanie] [led]” spowoduje wyświetlenie pytań z oboma tymi tagami. Możesz tam znaleźć przydatne informacje.
OP może korzystać z tego [sygnalizacji świetlnej] (http://www.youtube.com/watch?v=HHXl-XTicNM) firmy Velleman
Trzy odpowiedzi:
jippie
2013-02-14 14:22:43 UTC
view on stackexchange narkive permalink

Czy znasz rejestry przesuwne, takie jak 74HC595? Wymaga 3 pinów z twojego RPI i możesz kontrolować 8 linii wyjściowych. Możesz je łatwo kaskadować, efektywnie kontrolując n × 8 linii wyjściowych.

Dane są taktowane szeregowo do rejestru przesuwnego i po przesłaniu wszystkich 8 bitów wyjściowych, zatrzaskujesz bity na wyjściach.

Miałem tutaj dodać arkusz danych, ale https://www.sparkfun.com/products/733 pokazuje fajny film i ma również link do arkusza danych.

Phil Frost
2013-02-14 19:10:28 UTC
view on stackexchange narkive permalink

Rejestry z przesunięciem, jak sugeruje jippie, działają dobrze. Ale multipleksowanie może również działać dla większej liczby diod LED, niż można by się spodziewać. Rozwiązaniem problemu zmniejszonej jasności jest zwiększenie prądu szczytowego, tak aby średni prąd pozostał taki sam. Możesz to zrobić, zwiększając napięcie lub zmniejszając rezystor ograniczający prąd.

Przyczyną uszkodzenia diody LED przez nadmierny prąd jest przegrzanie złącza. Jeśli masz czas na ostygnięcie między impulsami, impulsy mogą być silniejsze. Arkusz danych dla Twojej diody LED powinien określać zarówno maksymalny średni prąd, jak i maksymalny prąd szczytowy, którego nie należy przekraczać. Jeśli nie przejmujesz się zbytnio wysoką niezawodnością (projekt hobbystyczny, a nie statek kosmiczny) i nie masz nic przeciwko zapaleniu kilku diod LED lub nieco naginaniu zasad, zawsze możesz samodzielnie przetestować ograniczenia.

Zwróć także uwagę na skomplikowane czynności, aby znaleźć sposób na multipleksowanie większej liczby diod LED z mniejszej liczby pinów. Górną granicą tego, ile diod LED można podłączyć tą metodą, jest zwykle jasność osiągana przy prądzie dostępnym z pinów GPIO, a nie liczba pinów.

Dalsze czytanie: Czy pulsuje dioda LED przy wyższym prądzie daje większą pozorną jasność?

Staram się unikać zbyt wysokiego przepychania prądów szczytowych przy braku obwodu, co może zapobiec zbyt długiemu pozostawianiu rzędu. Każdy oparty na oprogramowaniu napęd rzędowy prawie na pewno od czasu do czasu zawiedzie, a dobrze zaprojektowany obwód powinien być odporny na uszkodzenia w takim przypadku.
Gareth
2013-02-18 18:15:18 UTC
view on stackexchange narkive permalink

Użyj USB lub Ethernet do sterowania światłami za pomocą płytki przekaźnika zatrzaskowego, takiej jak ta

http://www.robot-electronics.co.uk/acatalog/Relay_Modules.html

Używałem tych tablic do innych zastosowań i są one doskonałe

Oczekujemy, że odpowiedzi tutaj w dużej mierze staną się same. Linki ulegają z czasem rotacji i nie należy na nich polegać jako na głównych informacjach. Podaj swoją odpowiedź w paragrafie lub dwóch i użyj linków, aby odnieść się do dodatkowych informacji.
Słusznie! Płytka, o której wspomniałem od Robot Electronics, to sterownik przekaźnika sterowany przez USB lub Ethernet. Jest wyposażony w prosty zestaw poleceń do włączania i wyłączania każdego z 8 lub 16 przekaźników na płycie. Przekaźniki te mogą być łatwo używane do przełączania stosu diod LED w sygnalizatorach świetlnych i umożliwiają sterowanie przez port USB lub Ethernet Raspberry PI
@Gareth Więc umieść tę informację w odpowiedzi, nie tutaj.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...