İçindekiler:

Arduino ve TLC5940 PWM LED Sürücü IC: 7 Adım
Arduino ve TLC5940 PWM LED Sürücü IC: 7 Adım

Video: Arduino ve TLC5940 PWM LED Sürücü IC: 7 Adım

Video: Arduino ve TLC5940 PWM LED Sürücü IC: 7 Adım
Video: Asynchronous TLC5940 Led Test 2024, Kasım
Anonim
Arduino ve TLC5940 PWM LED Sürücü IC
Arduino ve TLC5940 PWM LED Sürücü IC

Bu yazımızda Texas Instruments TLC5940 16 kanallı LED sürücü IC'sini inceleyeceğiz. Bunu yapmamızın nedeni, birçok LED'i ve ayrıca servoları sürmenin başka, daha kolay bir yolunu göstermektir. İlk olarak, burada birkaç TLC5940 örneği var. TLC5940'ı dünya çapında ücretsiz teslimat ile PMD Way'den sipariş edebilirsiniz.

TLC5940, DIP versiyonunda ve ayrıca yüzeye montajlı olarak mevcuttur. PWM (darbeli genişlik modülasyonu) aracılığıyla on altı ayrı LED'in parlaklığını ayarlamanıza olanak tanıyan gerçekten kullanışlı bir parçadır ve ayrıca daha fazlasını kontrol etmek için birden fazla TLC5940'ı zincirleme bağlayabilirsiniz.

Bu eğitim sırasında, LED'lerle bir veya daha fazla TLC5940 IC'nin nasıl kontrol edileceğini açıklayacağız ve ayrıca servoları kontrol etmeye bakacağız. Bu noktada, bu süreçte başvuracağınız için lütfen TLC5940'ın (.pdf) bir kopyasını indirin. Ayrıca, lütfen burada bulunabilecek olan Alex Leone'nin TLC5940 Arduino kütüphanesini indirip kurun. Bir kütüphaneyi nasıl kuracağınızdan emin değilseniz, burayı tıklayın.

1. Adım: Bir TLC5940 Gösteri Devresi Oluşturun

Bir TLC5940 Gösteri Devresi Oluşturun
Bir TLC5940 Gösteri Devresi Oluşturun

Aşağıdaki devre, Arduino veya uyumlu cihazınızdan on altı LED'i kontrol etmek için gereken minimum devredir. Çeşitli işlevleri denemek ve neyin mümkün olduğu hakkında bir fikir edinmek için kullanabilirsiniz. İhtiyacın olacak:

  • Arduino Uno veya uyumlu bir kart
  • 20 mA'ya kadar ileri akıma sahip olabilen 16 normal, günlük LED
  • 2 kΩ direnç (%10 ver veya al)
  • 0.1 uF seramik ve 4.7 uF elektrolitik kapasitör

LED yönünü not edin - ve TLC5940'ın ortak anotlu bir LED sürücüsü olduğunu unutmayın - bu nedenle tüm LED anotları birbirine ve ardından 5V'a bağlanır.

Adım 2:

Bu özel devre için harici bir 5V güç kaynağına ihtiyacınız olmayacak, ancak gelecekte ihtiyacınız olabilir. Direncin amacı, LED'lerden geçebilecek akım miktarını kontrol etmektir. Gerekli direnç değeri aşağıdaki formülle hesaplanır:

R = 39.06 / Imax burada R (Ohm cinsinden) direnç değeridir ve Imax (Amper cinsinden) LED'lerden geçmek istediğiniz maksimum akım miktarıdır.

Örneğin, 20 mA ileri akımlı LED'leriniz varsa - direnç hesaplaması şöyle olacaktır: R = 39.06 / 0.02 = 1803 Ohm. Devreyi kurduktan sonra – Arduino IDE'yi açın ve TLC5940 kütüphanesi için örnek klasörde bulunan BasicUse.pde taslağını yükleyin.

Size videoda gösterilene benzer bir çıktı sunulmalıdır.

3. Adım: TLC5940'ı Kontrol Etme

Devre çalıştığına göre TLC5940'ı nasıl kontrol edeceğiz? İlk olarak, zorunlu işlevler – taslağın başlangıcında kütüphaneyi aşağıdakilerle birlikte ekleyin:

#include "Tlc5940.h"

ve ardından aşağıdakileri void setup() içine yerleştirerek kitaplığı başlatın:

Tlc.init(x);

x isteğe bağlı bir parametredir – çizim başlar başlamaz tüm kanalları belirli bir parlaklığa ayarlamak istiyorsanız, Tlc.init() işlevinde x için 0 ile 4095 arasında bir değer girebilirsiniz.

Şimdi bir kanalı/LED'i açmak veya kapatmak için. Her kanal 0'dan 15'e kadar numaralandırılmıştır ve her kanalın parlaklığı 0 ile 4095 arasında ayarlanabilir. Bu iki parçalı bir işlemdir… İlk olarak – gerekli kanalları ve ilgili parlaklığı (PWM) ayarlamak için aşağıdaki işlevlerden bir veya daha fazlasını kullanın. seviye):

Tlc.set(kanal, parlaklık);

Örneğin, ilk üç kanalın tam parlaklıkta açılmasını istiyorsanız, şunu kullanın:

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

İkinci kısım, birinci kısımdan gerekli talimatlarla TLC5940'ı güncellemek için aşağıdakileri kullanmaktır:

Tlc.güncelleme();

Tüm kanalları aynı anda kapatmak istiyorsanız, şunu kullanın:

Tlc.clear();

4. Adım:

Clear işlevinden sonra bir TLC.update() çağırmanız gerekmez. Aşağıdaki, tüm kanalların parlaklık/PWM değerlerini farklı seviyelere ayarlayan hızlı bir örnek çizimdir:

#include "Tlc5940.h"void setup() { Tlc.init(0); // TLC5940'ı başlat ve tüm kanalları kapat }

boşluk döngüsü()

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

Her kanal/LED için ayrı parlaklığı kontrol etme yeteneği, RGB LED'leri kontrol ederken de faydalı olabilir - ardından, her bir öğe için farklı parlaklık seviyeleri aracılığıyla gerekli renkleri kolayca seçebilirsiniz. Videoda bir gösteri gösterilmektedir.

Adım 5: İki veya Daha Fazla TLC5940 Kullanma

Daha fazla LED'i kontrol etmek için birkaç TLC5940'ı birbirine zincirleme bağlayabilirsiniz. İlk olarak – bir sonraki TLC5940'ı tanıtım devresinde gösterildiği gibi Arduino'ya bağlayın – ilk TLC5940'ın SOUT pinini (17) ikinci TLC5940'ın SIN pinine (26) bağlamak dışında – veriler Arduino'dan geçerken, ilk TLC5940'tan ikinciye vb. Daha sonra üçüncüsünüz vb. varsa işlemi tekrarlayın. Akımı ayarlayan rezizotu unutmayın!

Ardından, TLC5940 kitaplık klasöründe bulunan tlc_config.h dosyasını açın. NUM_TLCS değerini birbirine bağladığınız TLC5940'ların sayısıyla değiştirin, ardından dosyayı kaydedin ve yine aynı klasörde bulunan Tlc5940.o dosyasını da silin. Sonunda IDE'yi yeniden başlatın. Ardından, birinciden sırayla ikinci ve daha sonraki TLC5940'ın kanallarına başvurabilirsiniz. Yani, ilki 0~15, ikincisi 16~29'dur ve bu böyle devam eder.

6. Adım: Servoları TLC5940 ile Kontrol Etme

TLC5940, PWM (darbeli genişlik modülasyonu) çıkışı ürettiğinden, servoları sürmek için de harikadır. Tıpkı LED'ler gibi - aynı anda on altı adede kadar kontrol edebilirsiniz. Örümcek benzeri robotlar, garip saatler oluşturmak veya biraz gürültü yapmak için idealdir.

Servonuzu seçerken, çalışırken 120 mA'dan (kanal başına maksimum akım) fazla çekmediğinden emin olun ve ayrıca bu eğitimin sonundaki "Akım ve ısıyı yönetme" bölümüne dikkat edin. Ve servolarla harici güç kullanın, Arduino'nun 5V hattına güvenmeyin.

Bir servoyu bağlamak basittir - GND hattı GND'ye bağlanır, 5V (veya besleme voltajı kablosu) 5v'nize (veya başka bir uygun kaynağa) bağlanır ve servo kontrol pimi TLC5940'ın çıkışlarından birine bağlanır. Son olarak – ve bu önemlidir – kullanılan TLC5940 çıkış pin(ler)i ile 5V arasına bir 2.2kΩ direnç bağlayın. Bir servoyu kontrol etmek, bir LED'den o kadar farklı değildir. Çizimin başlangıcında ilk iki satıra ihtiyacınız var:

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

sonra void setup() içinde aşağıdakiler:

tlc_initServos();

Ardından, hangi servonun (kanalın) çalıştırılacağını ve gerekli açıyı (açıyı) seçmek için aşağıdaki işlevi kullanın:

tlc_setServo(kanal, açı);

Tıpkı LED'ler gibi, bunlardan birkaçını bir araya getirebilir ve ardından komutu şu şekilde yürütebilirsiniz:

Tlc.güncelleme();

Öyleyse tüm bunları eylemde görelim. Aşağıdaki örnek çizim, dört servoyu 90 derece boyunca süpürür:

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

geçersiz kurulum()

{ tlc_initServos(); // Not: Bu, PWM frekansını 50Hz'e düşürür. }

boşluk döngüsü()

{ for (int açı = 0; açı = 0; açı--) { tlc_setServo(0, açı); tlc_setServo(1, açı); tlc_setServo(2, açı); tlc_setServo(3, açı); Tlc.güncelleme(); gecikme(5); } }

Video, bu çizimi dört servo ile çalışırken gösteriyor.

Eğer servolar doğru açıda dönmüyorsa – örneğin 180 derece istiyorsunuz ve onlar sadece 90 veya civarında dönüyorlarsa, biraz ekstra çalışma gerekir.

TLC5940 Arduino kütüphane klasöründe bulunan tlc_servos.h dosyasını açmanız ve SERVO_MIN_WIDTH ve SERVO_MAX_WIDTH için değerleri denemeniz gerekir. Örneğin, SERVO_MIN_WIDTH'yi 200'den 203'e ve SERVO_MAX_WIDTH'yi 400'den 560'a değiştirin.

7. Adım: Akımı ve Isıyı Yönetme

Daha önce belirtildiği gibi, TLC5940 kanal başına maksimum 120 mA'yı işleyebilir. Bazı denemelerden sonra TLC5940'ın ısındığını fark edebilirsiniz - sorun değil.

Parçayı yok etmeden önce harcanabilecek güç miktarının bir maksimum sınırı olduğunu unutmayın. Sadece normal bahçe tipi LED'ler veya daha küçük servolar kullanıyorsanız, güç sorun olmaz. Ancak TLC5940'ı maksimum düzeyde kullanmayı planlıyorsanız – lütfen kütüphane yazarları tarafından sağlanan notları inceleyin.

Çözüm

Bir kez daha Arduino'nuzla inanılmaz derecede faydalı bir parçayı kontrol etme yolundasınız. Şimdi biraz hayal gücü ile her türlü görsel gösteriyi oluşturabilir veya birçok servo ile eğlenebilirsiniz.

Bu gönderi size, dünya çapında ücretsiz teslimat ile üreticiler ve elektronik meraklıları için her şeyle birlikte TLC5940 ürünleri sunan pmdway.com tarafından sunulmaktadır.

Önerilen: