Spisu treści:

Arduino i układ scalony sterownika LED TLC5940 PWM: 7 kroków
Arduino i układ scalony sterownika LED TLC5940 PWM: 7 kroków

Wideo: Arduino i układ scalony sterownika LED TLC5940 PWM: 7 kroków

Wideo: Arduino i układ scalony sterownika LED TLC5940 PWM: 7 kroków
Wideo: Moduł sterownika PWM SG3525 2024, Lipiec
Anonim
Arduino i układ scalony sterownika LED TLC5940 PWM
Arduino i układ scalony sterownika LED TLC5940 PWM

W tym artykule przyjrzymy się 16-kanałowemu układowi scalonemu sterownika LED Texas Instruments TLC5940. Powodem, dla którego to robimy, jest zademonstrowanie innego, łatwiejszego sposobu napędzania wielu diod LED – a także serw. Po pierwsze, oto kilka przykładów TLC5940. Możesz zamówić TLC5940 z PMD Way z bezpłatną dostawą na całym świecie.

TLC5940 jest dostępny w wersji DIP, a także do montażu powierzchniowego. To naprawdę wygodna część, umożliwiająca regulację jasności szesnastu pojedynczych diod LED za pomocą PWM (modulacja szerokości impulsu) – a także można połączyć szeregowo więcej niż jeden TLC5940, aby sterować jeszcze większą liczbą.

Podczas tego samouczka wyjaśnimy, jak kontrolować jeden lub więcej układów scalonych TLC5940 za pomocą diod LED, a także przyjrzymy się sterowaniu serwami. W tym momencie pobierz kopię TLC5940 (.pdf), ponieważ będziesz się do niej odwoływać w tym procesie. Ponadto pobierz i zainstaluj bibliotekę Arduino TLC5940 autorstwa Alexa Leone, którą można znaleźć tutaj. Jeśli nie wiesz, jak zainstalować bibliotekę, kliknij tutaj.

Krok 1: Zbuduj obwód demonstracyjny TLC5940

Zbuduj obwód demonstracyjny TLC5940
Zbuduj obwód demonstracyjny TLC5940

Poniższy obwód to minimum wymagane do sterowania szesnastoma diodami LED z Arduino lub kompatybilnego. Możesz go użyć do eksperymentowania z różnymi funkcjami i zorientowania się, co jest możliwe. Będziesz potrzebować:

  • Arduino Uno lub kompatybilna płytka
  • 16 zwykłych, codziennych diod LED, które mogą mieć prąd przewodzenia do 20 mA
  • rezystor 2 kΩ (daj lub bierz 10%)
  • kondensator ceramiczny 0,1 uF i kondensator elektrolityczny 4,7 uF;

Zwróć uwagę na orientację diody LED – i pamiętaj, że TLC5940 jest sterownikiem LED ze wspólną anodą – więc wszystkie anody LED są połączone razem, a następnie do 5V.

Krok 2:

W przypadku tego konkretnego obwodu nie będziesz potrzebować zewnętrznego zasilacza 5 V – jednak możesz go potrzebować w przyszłości. Zadaniem rezystora jest kontrolowanie ilości prądu, który może przepływać przez diody LED. Wymaganą wartość rezystora oblicza się według następującego wzoru:

R = 39,06 / Imax gdzie R (w omach) to wartość rezystora, a Imax (w amperach) to maksymalna ilość prądu, który chcesz przepłynąć przez diody LED.

Na przykład, jeśli masz diody LED z prądem przewodzenia 20 mA – obliczenie rezystora będzie następujące: R = 39,06 / 0,02 = 1803 Ohm. Po złożeniu obwodu otwórz Arduino IDE i prześlij szkic BasicUse.pde, który znajduje się w przykładowym folderze biblioteki TLC5940.

Powinieneś otrzymać wyjście podobne do tego, co pokazano na filmie.

Krok 3: Sterowanie TLC5940

Teraz, gdy obwód działa, jak sterujemy TLC5940? Po pierwsze, obowiązkowe funkcje – dołącz bibliotekę na początku szkicu z:

#include "Tlc5940.h"

a następnie zainicjuj bibliotekę, umieszczając następujące polecenie w void setup():

Tlc.init(x);

x jest parametrem opcjonalnym – jeśli chcesz ustawić wszystkie kanały na określoną jasność zaraz po rozpoczęciu szkicu, możesz wstawić wartość od 0 do 4095 dla x w funkcji Tlc.init().

Teraz, aby włączyć lub wyłączyć kanał/LED. Każdy kanał jest ponumerowany od 0 do 15, a jasność każdego kanału można regulować w zakresie od 0 do 4095. Jest to proces dwuczęściowy… Po pierwsze – użyj jednej lub więcej z poniższych funkcji, aby ustawić żądane kanały i odpowiednią jasność (PWM poziom):

Tlc.set(kanał, jasność);

Na przykład, jeśli chcesz, aby pierwsze trzy kanały były włączone z pełną jasnością, użyj:

Tlc.set (0, 4095); Tlc.set (1, 4095); Tlc.set(2, 4095);

Druga część to użycie następujących elementów do aktualizacji TLC5940 o wymagane instrukcje z części pierwszej:

Tlc.aktualizacja();

Jeśli chcesz wyłączyć wszystkie kanały na raz, po prostu użyj:

Tlc.clear();

Krok 4:

Nie musisz wywoływać TLC.update() po funkcji clear. Poniżej znajduje się krótki przykładowy szkic, który ustawia wartości jasności/PWM wszystkich kanałów na różnych poziomach:

#include "Tlc5940.h"unieważnij konfigurację() { Tlc.init(0); // zainicjuj TLC5940 i wyłącz wszystkie kanały }

pusta pętla()

{ for (int i = 0; i < 16; i++) { Tlc.set(i, 1023); } Tlc.update(); opóźnienie (1000); for (int i = 0; i < 16; i++) { Tlc.set(i, 2046); } Tlc.update(); opóźnienie (1000); for (int i = 0; i < 16; i++) { Tlc.set(i, 3069); } Tlc.update(); opóźnienie (1000); for (int i = 0; i < 16; i++) { Tlc.set(i, 4095); } Tlc.update(); opóźnienie (1000); }

Możliwość kontrolowania indywidualnej jasności dla każdego kanału/LED może być również przydatna podczas sterowania diodami LED RGB – możesz wtedy łatwo wybrać żądane kolory za pomocą różnych poziomów jasności dla każdego elementu. Na filmie pokazana jest demonstracja.

Krok 5: Korzystanie z dwóch lub więcej TLC5940

Możesz połączyć szeregowo kilka TLC5940, aby kontrolować więcej diod LED. Po pierwsze – podłącz następny TLC5940 do Arduino, jak pokazano w obwodzie demonstracyjnym – z wyjątkiem podłączenia pinu SOUT (17) pierwszego TLC5940 do pinu SIN (26) drugiego TLC5940 – gdy dane są przesyłane z Arduino, przez od pierwszego TLC5940 do drugiego i tak dalej. Następnie powtórz proces, jeśli masz trzecią itd. Nie zapomnij o rezyzotrze, który ustawia prąd!

Następnie otwórz plik tlc_config.h znajdujący się w folderze biblioteki TLC5940. Zmień wartość NUM_TLCS na liczbę połączonych ze sobą TLC5940, a następnie zapisz plik, a także usuń plik Tlc5940.o również znajdujący się w tym samym folderze. Na koniec zrestartuj IDE. Następnie możesz odwoływać się do kanałów drugiego i kolejnych TLC5940 kolejno od pierwszego. Oznacza to, że pierwszy to 0~15, drugi to 16~29 i tak dalej.

Krok 6: Sterowanie serwami za pomocą TLC5940

Ponieważ TLC5940 generuje wyjście PWM (modulacja szerokości impulsu), doskonale nadaje się również do napędzania serw. Podobnie jak diody LED – możesz sterować nawet szesnastoma na raz. Idealny do tworzenia robotów podobnych do pająków, dziwnych zegarów lub robienia hałasu.

Wybierając serwo, upewnij się, że podczas pracy nie pobiera on więcej niż 120 mA (maksymalny prąd na kanał), a także zapoznaj się z sekcją „Zarządzanie prądem i ciepłem” na końcu tego samouczka. I używaj zewnętrznego zasilania z serwami, nie polegaj na linii 5 V Arduino.

Podłączenie serwomechanizmu jest proste – linia GND łączy się z GND, przewód 5 V (lub przewód napięcia zasilania) łączy się z twoim 5 V (lub innym odpowiednim zasilaniem), a pin sterujący serwomechanizmu łączy się z jednym z wyjść TLC5940. Na koniec – i to jest ważne – podłącz rezystor 2,2kΩ między używany pin(y) wyjściowy TLC5940 a napięciem 5V. Sterowanie serwomechanizmem nie różni się tak bardzo od diody LED. Potrzebujesz pierwszych dwóch linii na początku szkicu:

#include "Tlc5940.h"#include "tlc_servos.h"

następnie w void setup():

tlc_initServos();

Następnie użyj następującej funkcji, aby wybrać, który serwo (kanał) ma działać i wymagany kąt (kąt):

tlc_setServo(kanał, kąt);

Podobnie jak diody LED, możesz połączyć kilka z nich, a następnie wykonać polecenie za pomocą:

Tlc.aktualizacja();

Zobaczmy więc to wszystko w akcji. Poniższy przykładowy szkic obejmuje cztery serwa pod kątem 90 stopni:

#include "Tlc5940.h"#include "tlc_servos.h"

pusta konfiguracja()

{ tlc_initServos(); // Uwaga: to obniży częstotliwość PWM do 50 Hz. }

pusta pętla()

{ for (int kąt = 0; kąt = 0; kąt--) { tlc_setServo (0, kąt); tlc_setServo(1, kąt); tlc_setServo(2, kąt); tlc_setServo(3, kąt); Tlc.aktualizacja(); opóźnienie(5); } }

Film pokazuje ten szkic w akcji z czterema serwomechanizmami.

Jeśli serwa nie obracają się pod właściwym kątem – na przykład prosisz o 180 stopni, a one obracają się tylko do 90 lub mniej więcej, wymagana jest dodatkowa praca.

Musisz otworzyć plik tlc_servos.h znajdujący się w folderze biblioteki Arduino TLC5940 i poeksperymentować z wartościami SERVO_MIN_WIDTH i SERVO_MAX_WIDTH. Na przykład zmień SERVO_MIN_WIDTH z 200 na 203 i SERVO_MAX_WIDTH z 400 na 560.

Krok 7: Zarządzanie prądem i ciepłem

Jak wspomniano wcześniej, TLC5940 może obsłużyć maksymalnie 120 mA na kanał. Po kilku eksperymentach możesz zauważyć, że TLC5940 się nagrzewa – i to jest w porządku.

Zwróć uwagę, że istnieje maksymalny limit mocy, którą można rozproszyć przed zniszczeniem części. Jeśli używasz zwykłych diod LED do ogrodu lub mniejszych serw, zasilanie nie będzie problemem. Jeśli jednak planujesz maksymalne wykorzystanie TLC5940 – zapoznaj się z uwagami dostarczonymi przez autorów biblioteki.

Wniosek

Po raz kolejny jesteś na dobrej drodze do kontrolowania niezwykle przydatnej części za pomocą Arduino. Teraz przy odrobinie wyobraźni możesz tworzyć różnego rodzaju wyświetlacze wizualne lub bawić się wieloma serwami.

Ten post został wysłany przez pmdway.com – który oferuje produkty TLC5940 wraz ze wszystkim dla producentów i entuzjastów elektroniki, z bezpłatną dostawą na całym świecie.

Zalecana: