Led displaylerin en büyük sorunlarından birisi boyutlarının küçük olmasıdır. Bu konuda değişik bir 7 segment display devresi paylaşacağız. Ucuz ve bulunabilir malzemeler kullanılıyor.
Her yerde bulunabilecek slikon yapıştırıcı kullanılıyor.
Kullanılan Malzemeler:
14 adet led, örnekte 3mm amber renkli ledler kullanılmış. Her led yaklaşık 30mA akı çekiyor ve parlaklığı tatmin edici.
7 tane slikon çubuk
7 adet NPN transistör. Örnekte 2222 kullanılmış.
7 adet 1k ohm direnç
7 adet 22 ohm direnç. Örnekte 2 led seri bağlanmış ama siz ledlerden geçecek akımı 30mA olarak hesaplayarak istediğiniz gibi de bağlantı yapabilirsiniz. Bunun için online hesaplama araçlarımızı kullanabilirsiniz. Ön direnç hesaplama aracı
1 adet 74HC595 Shift Register
İzole bant , kablo,lehim ,vs..
Yapılış Aşamaları:
Belirli bir uzunlukta kestiğiniz kabloları ledlere lehimleyin:
Matkapla slikonların ucunu delin. Amacımız bu deliklere led yerleştirmek:
Ledleri slikon çubuklara monte ederek, izole bant ile kenarları sarın:
Displayi neyin üstüne monte edecekseniz, aşağıdaki gibi düzenleyin:
Her slikonun ledlerini birbirine seri bağalayarak, öndirençleri de ledlere monte edin. Her slikon şeridinden 20-30mA arası akım geçse yeter. Bunu hesaplamak için Rön= (Vbesleme-3V)/20mA formülünü kullanabilirsiniz.
Örneğin 12V ile besleme yapıyorsanız, kullanacağınız direnç;
Rön= 12-3/20mA = 450 ohm olur.
Devre şeması:
Devre şemasını büyük olarak görüntülemek için üzerine tıklayınız.
Mikrokontrolör ile iletişimi 5 li ribbon kablo ile yapabilirsiniz. Kablolar şöyle: +5, Ground, Data, Latch, Clock
Proje kaynağında mikrokontrolör olarak arduino kullanılmış. Ama siz kolayca bulunabilecek bir 7 segment display li pic devresi ile de devam edebilirsiniz.
Arduino ile yapacaklar için kod şöyle:
// hot glue seven segment display test
// define pins used
#define dataPin 2
#define latchPin 3
#define clockPin 4
// define light patterns
byte one = B01100000;
byte two = B11011010;
byte three = B11110010;
byte four = B11100100;
byte five = B10110110;
byte six = B10111110;
byte seven = B01100010;
byte eight = B11111110;
byte nine = B11100110;
byte zero = B01111110;
void setup()
{
pinMode(dataPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void loop()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, one);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, two);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, three);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, four);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, five);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, six);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, seven);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, eight);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, nine);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, zero);
digitalWrite(latchPin, HIGH);
delay(2000);
}
Yapılmış hali: