Okablowanie diod LED RGB

13

Zastanawiałem się, czy można podłączyć 8 pojedynczych diod RGB podobnie jak pasek adafruitowy . Widziałem projekt Pumpkin Pi i chciałbym go zbudować. Nie mam żadnych żółtych ani czerwonych diod LED, ale mam niewielki zapas RGB.

Wiem, że dla Arduino użyłbym rezystorów 270ohm do katod RGB i kontrolowałbym każdą jasność w skali 0do 255.

Czy można to zrobić na Raspberry Pi?


Aktualizacja


Więc przyglądałem się temu trochę więcej. Wpadłem na pomysł, aby użyć TLC5940sterownika LED.

Więc teraz proszę o pomoc. Doszedłem do jednego długiego pytania, które ostatecznie rozwiązuje ten problem, jest lepsze niż wiązka rozproszona podczas wymiany stosów. Teraz nadchodzi część okablowania. Używam samouczka okablowania arduino na początek, ponieważ jestem nad głową. Mam również na myśli kartę danych . Zgodnie ze schematem pin 27 or VPRGwprawia mnie w zakłopotanie. Schemat Arduino ma uziemienie, więc uziemiam. . . Jak podłączyć to poprawnie do pi? Chyba też potrzebuję rezystorów ...

Przepraszam, jeśli to brzmi głupio, ale jestem prawdziwym początkującym w tych sprawach. Musisz nauczyć się czołgać, zanim będziesz mógł chodzić.

Co muszę zrobić, aby poprawić ten schemat połączeń ( fritzing )?

Plik fzz z okablowaniem można pobrać z Google tutaj . TLC5940

wprowadź opis zdjęcia tutaj


Aktualizacja 2 - po komentarzu


Biorąc pod uwagę niektóre odpowiedzi i komentarze, byłby to schemat połączeń? 330 omów do anody. 2k omów do przypięcia 20. W jaki sposób dane wejściowe przechodzą z pi do chipa? wprowadź opis zdjęcia tutaj

atrakcyjność
źródło
Ooohhh dynia pi =: 0
Piotr Kula
Czy wyjaśniłbyś kilka rzeczy? Czy chcesz sterować wszystkimi czerwonymi, zielonymi i niebieskimi diodami LED z 8 diod LED RGB (zajmie to 24 wyjścia, czyli 8 więcej niż 16 dostarczonych przez TLC5940). Jakich diod RGB używasz? Musimy wiedzieć, czy są one wspólną anodą, czy wspólną katodą (twoje okablowanie wygląda jak wspólna katoda, która nie będzie działać z TLC5940, który może jedynie pobierać prąd. Wspólna katoda będzie potrzebowała innego układu). Również niebieski może nie włączyć się przy użyciu 3,3 V, więc będzie potrzebował 5 V. Musi to być elektronika otworowa (np. DIP), a nie montaż powierzchniowy. Czy obchodzi Cię, czy używa 3 żetonów zamiast jednego?
gbulmer
@gbulmer Przepraszamy za to. Nie mam pakietu, w którym pojawiły się diody LED, ale myślę, że masz rację na wspólnej katodzie, aby zapalić je w arduino, napisałem HIGH. Dziś wieczorem wezmę trochę wspólnej anody z radioshacka. Mam 5 układów TLC5940 i nie obchodzi mnie, czy użyję ich wszystkich. Powodem, dla którego wybieram DIP, jest użycie płyty pilśniowej (kroki dziecka). Kiedy już zacznę działać, przełączę się na montaż powierzchniowy.
atrueresistance

Odpowiedzi:

4

Widzę dwie rzeczy, które należy rozwiązać w tym pytaniu:

  1. Jak połączyć się i komunikować z TLC5940

  2. Jak podłączyć diody LED do TLC5940 .

W pierwszej części musisz podłączyć go do styków i2c w nagłówku P1 Raspberry Pi (które są pinami 3 (dane) i 5 (zegar)). Następnie można użyć styku 1 (3,3 V) dla VCC TLC5940 . Zalecane jest napięcie od 3 V do 5,5 V zgodnie z arkuszem danych. Będziesz także chciał podłączyć pin uziemiający z P1 (np. Pin 5) do GND TLC5940 . Będziesz także potrzebował dodatkowego GPIO (np. Pin 7), aby połączyć się z sygnałem XLAT w TLC5940 , aby zablokować wartość rejestru przesuwnego.

Następnie musisz skonfigurować Pi dla komunikacji i2c: zakładając, że raspbian, usuń i2c-bcm2708z /etc/modprobe.d/raspi-blacklist.conf, załaduj go i i2c-devpowinieneś dostać /dev/i2c-0i /dev/i2c-1( i2c-1jest to, czego będziesz musiał użyć dla Modelu B Rev. 2 Pis).

Na koniec musisz użyć transakcji i2c, aby ustawić wartość wewnętrznego rejestru przesuwnego, a następnie zasygnalizować XLAT (jeśli używasz pinu 7, to GPIO 4).

Przeoczyłem też pin GSCLK. Musisz podać wejście zegara, aby wewnętrzny licznik faktycznie zwiększał wartość, co można zrobić z innej linii GPIO, jeśli jest poprawnie skonfigurowany. Nie sądzę też, aby szyna 3,3 V zapewniła wystarczający prąd dla tego zastosowania ( maks . 50 mA ). Jeśli przejdziesz na szynę 5 V, możesz pobierać do ~ 300 mA , ale wtedy powinieneś użyć logiki 5 V dla i2c (i GSCLK), wymagając więcej komponentów.

W drugiej części zabrzmiało to tak, jakbyś poradził sobie z jakimś poprzednim projektem Arduino, chyba że źle przeczytałem?

opello
źródło
6

Tak. Używałbyś pinów GPIO w trybie PWM do sterowania każdą skalą jasności. Przykład okablowania z wiring.org.co . Narzędzie GPIO i przewodniki z Gordons Project to kolejne miejsce na początek

wprowadź opis zdjęcia tutaj

Edytować

Jak zauważył Alex Chamberlain , tylko jeden pin GPIO obsługuje PWM. Możesz użyć oprogramowania do uzyskania PWM na innych pinach GPIO. Informacje i przykłady dla C i Pythona .

Może to być przesada, ponieważ projekt Pumpkin Pi wymaga tylko pomarańczowego światła. Jeśli masz zapas RGB i czas na eksperymenty, możesz oświetlić jeden kolor LED na RGB i mieszać je z innymi, aby wygenerować trzeciorzędowe kolory. Stosunek 2-częściowej czerwieni do 1-częściowej zieleni pojawi się jako pomarańczowy. Przełączenie połowy czerwonych diod LED stworzy iluzję migotania pomarańczowego na żółty. Ale to teoria kolorów ; którego nie próbowałem.

Emcconville
źródło
1
Czy nie ma tylko jednego wyjścia PWM?
Alex Chamberlain
Dobre pytanie. eLinux twierdzi, że wszystkie piny GPIO można zmienić na PWM; jednak ogólne funkcje okablowania wskazują, że tylko GPIO-1 (pin 18) obsługuje PWM. Sekcja 6.2 Alternatywne Zadania funkcyjne z BCM2835 listy wszystkich pinów PWM; z tego tylko jeden jest obecny w GPIO pi.
emcconville
Artykuł o eLinux jest po prostu źle napisany; jest nieco lepiej poniżej.
Alex Chamberlain
1
Piny GPIO naprawdę nie mogą pobierać ani pobierać wystarczającej ilości prądu, aby bezpośrednio napędzać diody LED
John La Rooy
1

Coś w rodzaju TLC5940 to dobry sposób na sterowanie wieloma diodami LED PWM

Sprawdź także TCA6507 w przypisie „Programowanie zabawnych świateł” , chociaż nie jest on dostępny w DIP

Edycja: W porządku, aby pin VPRG na TLC5940 był podłączony do uziemienia. Oznacza to po prostu, że nie można użyć „korekcji kropek” w celu skompensowania różnic w diodach LED. Jeśli masz kilka diod LED i chcesz przejść do następnego poziomu złożoności, możesz użyć korekcji kropek, aby świeciły równomiernie.

Rezystor 2k na pinie 20 jest wymagany do ustawienia prądu wyjściowego.

I OUT = 3,96 * R IREF
Zwykłe diody LED mają zwykle 20mA, więc wzór daje 2k dla rezystora

John La Rooy
źródło
0

Jest to bardzo pomocny opis, jak ktoś zrobił, jak używać TLC5940 z AVR: https://sites.google.com/site/artcfox/demystifying-the-tlc5940

Jest to bardzo pomocne w nauce procesu pisania kodu, który współpracuje z TLC5940.

Pierwsza wersja przykładowego kodu jest dość ogólna. Pracuję nad przekształceniem wszystkich instrukcji #define i funkcji niskiego poziomu w coś, co będzie działać na Raspberry Pi.

Jfenwick
źródło