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.
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.
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
- Arduino SD Kart Uygulaması
- ARDUNIO İLE DC MOTOR KONTROL (L293D & PWM)
- Arduino ile led yakıp söndürme
- 3D Printer Yapımı
- Android ile Cihaz Kontrolü
- Arduino ile Analog sinyal okuma ve PWM sinyal gönderme
- Mini Sumo Robot Yapımı
- Arduino İle Servo Motor Kontrolü
- Arduino ile Buton Kontrolü
- 5110 ile Araba Park Sensörü