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 0
do 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ć TLC5940
sterownika 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 VPRG
wprawia 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 .
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?
Odpowiedzi:
Widzę dwie rzeczy, które należy rozwiązać w tym pytaniu:
Jak połączyć się i komunikować z TLC5940
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-bcm2708
z/etc/modprobe.d/raspi-blacklist.conf
, załaduj go ii2c-dev
powinieneś dostać/dev/i2c-0
i/dev/i2c-1
(i2c-1
jest 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?
źródło
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
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.
źródło
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.
Zwykłe diody LED mają zwykle 20mA, więc wzór daje 2k dla rezystoraźródło
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.
źródło