7 Segment Display ile Sayıcı Yapımı

Projelerimizde kullanabileceğimiz 7 segmentli displayın kullanımını bu yazımızda görebilirsiniz. Herhangi bir projenizde kullanabileceğiniz. Yedi Segmentli displayler ortak anod yada ortak katodludur . Projelerde kullanırken bunu göz önüne alınmalıdır.

Projemizde kullanılacak bir buton ile sayıyı bir arttıracak bu projemizin bağlantı şeması aşağıdaki gibidir.

arduino-7-segment-displayŞekilde gördüğünüz gibi 7 segmentli displayin katodu  bir direnç ile topraklanmıştır. Direnç kullanılmasının sebebi arduino çıkışlarının 5 volt olmasından dolayıdır. Direnç kullanmanız displayinizin uzun süre çalışması için gereklidir. Renkli olarak gösterilen sayılar arduinonun bağlantı Pin numaralarıdır. Kullanacağınız arduino modeline göre bu pinleri istediğiniz şekilde bağlayabilirsiniz.

 

Butonumuzun bağlantısı aşağıdaki gibidir.

arduinobuton

Dijital giriş arduinomuzun 9. bacağına bağlıdır.

 

 


/*
Arduino 7-Segment LED Display ortak katoda göre yazılmıştır.
Arduino Pinleri: 2,3,4,5,6,7,8
Display Pinleri: 7,6,4,2,1,9,10
Display Pinlerinden 3&8 ortak katod eksiye bağlanmalıdır.
Buton 9 numaralı bacağa bağlanmalıdır.
www.arduinom.org tarafından derlenmiştir.
*/
byte numbers[10] = {
B11111100, B01100000, B11011010, B11110010, B01100110,
B10110110, B10111110, B11100000, B11111110, B11100110
};
void setup() {
for(int i = 2; i <= 8; i++) {
pinMode(i, OUTPUT);
}
pinMode(9, INPUT);
}

int counter = 0;
bool go_by_switch = true;
int last_input_value = LOW;

void loop() {
if(go_by_switch) {
int switch_input_value = digitalRead(9);
if(last_input_value == LOW && switch_input_value == HIGH) {
counter = (counter + 1) % 10;
}
last_input_value = switch_input_value;
} else {
delay(500);
counter = (counter + 1) % 10;
}
writeNumber(counter);
}

void writeNumber(int number) {
if(number < 0 || number > 9) {
return;
}
byte mask = numbers[number];
byte currentPinMask = B10000000;
for(int i = 2; i <= 8; i++) {
if(mask & currentPinMask) digitalWrite(i,HIGH);
else digitalWrite(i,LOW);
currentPinMask = currentPinMask >> 1;
}
}

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.