Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

ARDUINO İLE D PORTUNA BAĞLI 8 LEDİN SIRAYLA YAKILMASI

Uygulama1: Arduinonun D portuna bağlı (0-7 arasındaki pinler) 8 adet ledin sırayla
yakılıp söndürülmesi (yürüyen ışık) için gerekli devre kurulumunu ve kodlamayı
yapınız.

Gerekli malzemeler:

• Arduino Uno
• Breadboard
• LED x 8
• 220 Ω direnç x 8
• İki ucu erkek jumper kablo

Arduino LED Yakıp Söndürmek İçin Gereken Devre:

Devrede LED’e seri olarak bir direnç bağlanır. Böylelikle LED üzerinden yüksek
akım geçmesi ve LED’in zarar görmesi engellenir. Örnek devrede dirençler
Arduino’nun ilk 8 pinine bağlıdır (D portunun tamamına). LED’lerin (+) bacakları
dirençlere seri bağlanarak, (-) bacakları da Arduino’nun GND pinine bağlanmıştır.
Böylelikle devre hazır hale gelmiş olur.
Devreyi kurduktan sonra Arduino IDE programını açınız. Bu temrinde ilk
öğrendiğimiz metotlardan sonra aynı işlemi daha kısa olarak yapabileceğimiz yeni
yöntemler öğreneceğiz.
Her iki programın setup ve loop fonksiyonlarını karşılaştıralım

Arduino IDE programı 1. yol: Arduino IDE programı 2. yol:

void setup() { void setup() {


/*D portunun tüm pinleri /*D portundaki 8 pin DDR komutu ile tek
Çıkış olarak ayarlanır*/ satırda 1 yapılarak çıkış olarak ayarlanır*/
pinMode(0, OUTPUT);
pinMode(1, OUTPUT); DDRD=B11111111;
pinMode(2, OUTPUT);
/*D portunun tüm pinleri tek komutla
pinMode(3, OUTPUT);
0 Volt yapılarak güvenli hale geitirlir*/
pinMode(4, OUTPUT);
pinMode(5, OUTPUT); PORTD=0;
pinMode(6, OUTPUT);
pinMode(7, OUTPUT); }

/*D portunun tüm pinleri


0 Volt yapılarak güvenli hale geitirlir*/
digitalWrite(0, LOW);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);

}
void loop() { void loop() {

digitalWrite(0, HIGH); PORTD=B00000001; // D portunun 0.


delay(1000); pini 1 diğer pinleri 0 yapıldı
digitalWrite(0, LOW); delay(1000);
digitalWrite(1, HIGH); PORTD=B00000010;
delay(1000);
delay(1000);
PORTD=B00000100;
digitalWrite(1, LOW); delay(1000);
digitalWrite(2, HIGH); PORTD=B00001000;
delay(1000); delay(1000);
digitalWrite(2, LOW); PORTD=B00010000;
digitalWrite(3, HIGH); delay(1000);
delay(1000); PORTD=B00100000;
digitalWrite(3, LOW); delay(1000);
digitalWrite(4, HIGH); PORTD=B01000000;
delay(1000); delay(1000);
digitalWrite(4, LOW); PORTD=B10000000;
digitalWrite(5, HIGH); delay(1000);
PORTD=B00000000;
delay(1000);
delay(1000);
digitalWrite(5, LOW);
}
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);

Özetle programımızdaki alanları aşağıdaki şekilde yeniden yazmış olduk:

You might also like