TM1637 7Digits Display Led Kullanımı ve Devresi
TM1637 entegresi ve kütüphanesi kullanarak bir ileri sayım devresi yapacağız. Öncelikle devrede kullanılacak elemanları aşağıdaki şekilde listeleyelim.
- Arduino Uno veya en az 2 girişli bir Arduino kartı
- 4-DigiLED Display Kartı
- 4 Adet dişi > erkek jumper kablo
Şimdi gelelim devremizin basit şemasına;

Evet kısaca şöyle sıralayabiliriz;
- VCC çıkışı => 5V
- GND çıkışı => GND
- DIO çıkışı => 2. pin
- CLK çıkışı => 3. pin
Şimdi gelelim kütüphanemizi ekleyerek projemizi yazmaya.
Öncelikle TM1637 sınıfı için bu kütüphaneyi indirip kullanabilirsiniz.
#include "TM1637.h"
#define DIO 2
#define CLK 3
TM1637 tm1637(CLK,DIO);
int saat[] = {0,0,0,0};
Gördüğünüz gibi değişkenlerimizi ve CLK ve DIO portlarımızı tanımladık. Şimdi sıra geldi Setup içerisinde yapacaklarımıza.
tm1637.init();
tm1637.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
Burada parlaklık ve renk ayarlaması yaptık. Şimdi kodumuzu yazalım.
void loop()
{
while (1 > 0)
{
arttir();
tm1637.display(0, saat[0]);
tm1637.display(1, saat[1]);
tm1637.display(2, saat[2]);
tm1637.display(3, saat[3]);
delay(100);
}
}
Burada “saat” dizi değişkenini istediğimiz şekilde arttırabiliriz. Ancak tabii ki öncelikle arttir fonksiyonumuzu yazmamız gerekir. Bunun için aşağıdaki şekilde bir fonksiyonu projemizin en alt kısmına ekleyebiliriz.
int arttir()
{
saat[3]++;
if (saat[3] > 9)
{
saat[3] = 0;
saat[2]++;
}
if (saat[2] > 9)
{
saat[2] = 0;
saat[1]++;
}
if (saat[1] > 9)
{
saat[1] = 0;
saat[0]++;
}
if (saat[0] > 9)
{
saat[0] = 0;
saat[1] = 0;
saat[2] = 0;
saat[3] = 0;
}
}
Gördüğünüz gibi burada her bir dijit için “> 9 ” kontrolü yapıyoruz. Eğer büyük ise o dijiti sıfırlıyor ve bir büyük ondalık dijiti +1 yaparak arttırıyoruz.
Eğer burada artış zaman kontrolünü yapmak istiyor isek bir üstteki (loop) fonksiyonun içerisindeki “++” ibareleri — yapabilir ve “> 9” ibaresini de “< 0” yaparak bu dönüşümü gerçekleştirebiliriz diye düşünüyorum. Eğer bir terslik olur ise yazarsanız yardımcı olmaya çalışırım elbette.
Şimdi kodumuzun tamamına gelelim.
TM1637 İle 7 DigiLED Kullanımı Kodunun Tamamı
#include "TM1637.h"
#define CLK 2//pins definitions for TM1637 and can be changed to other ports
#define DIO 3
TM1637 tm1637(CLK,DIO);
int saat[] = {0,0,0,0};
void setup()
{
tm1637.init();
tm1637.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
}
void loop()
{
while (1 > 0)
{
arttir();
tm1637.display(0, saat[0]);
tm1637.display(1, saat[1]);
tm1637.display(2, saat[2]);
tm1637.display(3, saat[3]);
delay(100);
}
}
int arttir()
{
saat[3]++;
if (saat[3] > 9)
{
saat[3] = 0;
saat[2]++;
}
if (saat[2] > 9)
{
saat[2] = 0;
saat[1]++;
}
if (saat[1] > 9)
{
saat[1] = 0;
saat[0]++;
}
if (saat[0] > 9)
{
saat[0] = 0;
saat[1] = 0;
saat[2] = 0;
saat[3] = 0;
}
}