Arduino ile led yakmak

Bu yazıda 2 çalışmadan bahsedeceğim. Birincisi daha basit olacak ve ikincisine hazırlık olacaktır. İkincisi ise biraz daha öğretici ve tecrübe kazandırıcı olacaktır. Birincisinden başlayalım:

Amacımız bir buton yardımıyla 2 LED’i yakıp söndürmektir. Başta sönük olan LED’ler butona bastığımızda beraber yanacaklar ve butona bir daha basıncaya kadar sönmeyecekler. Tekrar bastığımızda ise ikisi birden sönecek ve böylece devam edecek. Şimdi burada neden 2 LED kullanıyoruz diye merak ederseniz aslında farketmez fakat ikinci çalışmada 2 LED kullandığımızdan ötürü devreyi değiştirmemek istedik. Kodlar şu şekildedir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
void setup()
{
pinMode( 13, OUTPUT);
pinMode( 12, OUTPUT);
pinMode( 2, INPUT);
}
int a = 0;
void loop()
{
int buton = digitalRead(2);
if( buton == HIGH)
{
if(a == 0)
{
digitalWrite( 13, HIGH);
digitalWrite( 12, HIGH);
while( buton != LOW )
buton = digitalRead(2);
a = 1;
}
else
{
a = 0;
digitalWrite( 12, LOW);
digitalWrite( 13, LOW);
while( buton != LOW )
buton = digitalRead(2);
}
}
}

İkinci çalışmadaki amacımız ise biraz daha ileri düzey olacak. Yine bir buton yardımıyla LED’ler 500ms aralıklarla sırayla yanıp sönecek. İlk başta LED’ler yanmazken butona basıp bıraktığımızda sırayla yanmaya başlayacaklar ve bu döngü bir sonraki butona basıncaya kadar devam edecek. LED’ler yanmaya devam ederken butona bastığımızda ise döngünün periyodunun herhangi bir anında yanan LED’i söndürebiliyor olacağız ve döngü duracak. LED’ler söndükten sonra tekrar butona bastığımızda ise butona bir önceki bastığımızda hangi LED söndüyse sistem yine o LED’den yanmaya başlayacaktır.

Bu çalışmalarda Arduino Uno kullandık ve C dili ile programlama yaptık.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
int sondur( int buton );
void setup()
{
 pinMode( 13, OUTPUT);
 pinMode( 12, OUTPUT);
 pinMode( 2, INPUT);
}
int renk;
void loop()
{
 int buton = digitalRead(2);
 int a = 0;
 if( buton == HIGH )
 for(int i=0;i<2;i++){
 buton = digitalRead(2);
 while( buton != HIGH )
 {
 if( renk != 1 )
 {
 digitalWrite( 13, HIGH );
 a = sondur(buton);
 if( a == 1 )
 {
 renk = 0;
 break;
 }
 digitalWrite( 13, LOW );
 }
 digitalWrite( 12, HIGH );
 a = sondur(buton);
 if( a == 1 )
 {
 renk = 1;
 break;
 }
 digitalWrite( 12, LOW );
 renk = 0;
 }
do{
 buton = digitalRead(2);
 }
 while( buton != LOW );
 }
}
int sondur( int buton )
{
 int a = 0;
 for(int i=0;i<100;i++)
 {
 delay(5);
 buton = digitalRead(2);
 if( buton == HIGH && a == 0 )
 {
 do{
 buton = digitalRead(2);
 }
 while( buton != HIGH );
 digitalWrite( 12, LOW );
 digitalWrite( 13, LOW );
 a = 1;
 break;
 }
 }
 return a;
}

Benzer Yazılar

YAZAR : Admin

Elektronik Mühendisi X-Işınlı Görüntüleme Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.)

BU YAZIYI DA İNCELEDİNİZ Mİ ?

Arduino ile BD135 – BD136 transistörlerini kullanarak DC Motor kontrolü

Çeşitli robot projelerinde kullanılan DC motorları Arduinoya doğrudan bağlayıp çalıştıramayız. Çünkü Arduinonun giriş-çıkış pinleri en …

Bir cevap yazın