Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

3 Mayıs 2021 Pazartesi

Arduino PWM Çıkışlarını Uzatma - TLC5940

 Arduino PWM Çıkışlarını Uzatma - TLC5940 

Bu Arduino Eğitiminde, Arduino Kartını kullanarak TLC5940 PWM Sürücüsünün nasıl kullanılacağını öğreneceğiz. TLC5940, PWM çıkışları sağlayan 16 Kanallı bir LED Sürücüdür ve Arduino PWM yeteneklerini genişletmek için mükemmeldir. Sadece LED'ler değil, bu IC ile PWM sinyallerini kullanarak servoları, DC Motorları ve diğer elektronik bileşenleri de kontrol edebiliriz.

Nasıl Genişletilir-Arduino-PWM-Outpits --- TLC5940-Eğitimi

Temel özellikler


  •  VCC = 3V ila 5V
  • 16 Kanal
  • 12 bit (4096 Adım) PWM Kontrolü
  • Sürüş Yeteneği
        - 0 mA - 120 mA (VCC> 3.6V)
        - 0 mA - 60 mA (VCC <3.6V)
  • Seri Veri Arayüzü
  • 30 MHz Veri Aktarım Hızı
  • Papatya zinciri

Papatya dizimi harika bir özelliktir, bu da birden fazla TLC5970 IC'yi seri olarak birbirine bağlayabileceğimiz anlamına gelir. Bununla, Arduino'nun PWM yeteneklerini 16'dan fazla çıkışa, örneğin 32, 48 veya 64 PWM çıkışına genişletebiliriz ve yine de Arduino Board tarafından bir TLC5940 IC'yi kontrol etmek için kullanılan aynı 4 pini kullanabiliriz.



Arduino ve TLC5940 Bağlantıları


TLC5940'ı kontrol etmek için Arduino Kartınızın 4 pinini işgal etmemiz gerekiyor. Alex Leone tarafından yapılan TLC5940 Arduino Kitaplığını kullanacağımız için, IC'yi kütüphane yapılandırmasına göre veya aşağıdaki devre şemalarını kullanarak Arduino'ya bağlamamız gerekir:

Arduino-ve-TLC5940-Kablolama --- Devre-Şemaları

Yukarıdaki devre şeması, LED'lere güç sağlamak için harici güç kaynağı kullanıyor, ancak çekilen akımın toplam miktarı Arduino'nun (Mutlak Maksimum Derece, DC Akım VCC) sınırını aşmıyorsa, sadece Arduino VCC'nin kendisi kullanılarak da bağlanabilir. ve GND Pimleri - 200 mA).

Ayrıca TLC5940'ın sabit akım düşürücü olduğunu, dolayısıyla akımın çıkış pinlerine doğru aktığını da not etmemiz gerekir. Bu, LED'leri bağlarken negatif ucu (Katot) IC'nin çıkış pinine ve pozitif ucu (Anot) 5V VCC'ye bağlamamız gerektiği anlamına gelir.

Ayrıca, dekuplaj için 2 kapasitör ve çıkışlardan akan akım miktarını kontrol etmek için bir dirence ihtiyacımız var. Direncin değeri, kontrol etmek istediğimiz bileşene bağlıdır ve TLC5940 veri sayfasından aşağıdaki diyagram kullanılarak seçilebilir .

TLC5940-Direnç-Değer-Diyagramı

Dolayısıyla şemaya göre 20mA akım gerektiren LED'leri kontrol etmek için 2K'lık bir dirence ihtiyacımız var.

Kaynak kodu


Alex Leone tarafından yapılan TLC5940  Arduino Kitaplığını indirip kurduktan sonra, IC'nin çıktılarını nasıl kontrol ettiğini anlamak için onun "BasicUse" demo örneğini kullanabiliriz.

İşte bu kitaplığı kullanarak 16 LED'i kontrol etmek için bu öğretici için yaptığım basit bir kod. İşlevlerin nasıl çalıştığını anlamak için koddaki yorumları okuyun.

/ *
* Arduino ve TLC5940 Eğitimi - Basit Örnek
* Dejan Nedelkovski, www.HowToMechatronics.com tarafından
* /
#include "Tlc5940.h"
geçersiz kurulum () {
Tlc. init ( 0 ) ; // TLC5940'ı başlatır ve tüm kanalları kapatır
}
geçersiz döngü () {
Tlc. set ( 0,4095 ) ; // (0'dan 15'e Çıkış Pini, 0'dan 4095'e PWM Değeri)
// Not: Önceki işlev çıktıyı hemen etkinleştirmez. Çıkış, Tlc.update () işlevi yürütüldüğünde etkinleştirilecektir!
Tlc. güncelleme () ; // Önceden ayarlanmış çıktıları etkinleştirir
gecikme ( 1000 ) ;
// 16 çıktının hepsini aynı anda etkinleştirmek için, hepsinin 4095 PWM değerine ayarlanmasını sağlamak için bir for döngüsü kullanabiliriz. Daha sonra Tlc.updata () işlevi hepsini aynı anda etkinleştirecektir.
for ( int i = 0; i < 16; i ++ ) {
Tlc. set ( i, 4095 ) ;
}
Tlc. güncelleme () ;
gecikme ( 1000 ) ;
// Tlc.clear () işlevi tüm çıktıları temizler veya tüm çıktıların PWM değerini 0 olarak ayarlar
Tlc. temizle () ;
Tlc. güncelleme () ;
gecikme ( 1000 ) ;
// Bu for döngüsü 16 LED'in hepsini tek tek etkinleştirecek
for ( int i = 0; i < 16; i ++ ) {
Tlc. set ( i, 4095 ) ;
Tlc. güncelleme () ;
gecikme ( 200 ) ;
Tlc. temizle () ;
Tlc. güncelleme () ;
gecikme ( 200 ) ;
}
}

Birden fazla TLC5940'ı kontrol etme


Bu IC'lerden birden fazlasını seri olarak bağlamak için, yukarıda gösterildiği gibi aynı devre şemalarını kullanabiliriz. Tek fark, birinci IC'nin SOUT'unun (Sinyal Çıkışı - pin 17), ikinci IC'nin SIN'ine (Sinyal Girişi - pin 26) bağlanması gerektiğidir.

TLC5940-Tutorial-Library-configuration

Programlama kısmına gelince, bazı değişiklikler yapmamız gerekiyor. TLC5940 kitaplık klasöründe tlc_config.h dosyasını değiştirmemiz ve NUM_TLCS değişkeninin değerini seri bağlı TLC5940 IC sayısı ile değiştirmemiz gerekir ve bizim durumumuzda bu değer 2'dir. Bunu yaptığımızda, artık kolayca tüm adresleri ele alabiliriz. 0'dan 31'e kadar olan LED'ler ve daha önce açıklanan aynı programlama yöntemini kullanın.

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.