arduino%20icin%20baslangic%20modulu

Fonksiyon kullanarak ana programınızı oldukça kısa hale getirebilir ve anlaşılır olmasını sağlayabilirsiniz. Kolay anlaşılan bir programda, oluşabilecek program mantık hataları kolay farkedilir ve düzeltilir. Bu örnekte fonksiyon kullanımı ve aynı anda birden fazla butona basarak işlem yaptırma konuları anlaşılması amaçlanmıştır. Buton yerine sensör düşünebilirsiniz. Robot uygulamalarında çok kullanılan bir yöntemdir. Örneğin ön ve sağ sensörden sinyal geliyor ama sol sensörden sinyal gelmiyorsa engelden kaçan robotumuz sola dönmelidir.

/* Bu programda buton1 e basınca displeyde 1, buton2 ye basınca 2, buton3 e basınca 3,
1 ve 2 ye basınca displeyde 4, 2 ve 3 e basınca 5, 1 ve 3 e basınca 6 gösterilecektir.
fonksiyon kullanımının ve if komutunda and operatörü kullanımının anlaşılması için tasarlanmıştır
robotkursu başlangıç modülüne göre yazılmıştır.
www.robotkursu.com 26.02.2016
*/int a=A5; // 7 segmentli displeyin a segmenti arduinonun A5 pinine bağlıdır
int b=A4;
int c=A3;
int d=5; //7 segmentli displeyin d segmenti arduinonun 5 nolu pinine bağlıdır
int e=4;
int f=2;
int g=3;
int buton1=8; // butonlar arduinonun 8-9-10 nolu pinlerine bağlıdır
int buton2=9;
int buton3=10;

void setup()
{
pinMode(a, OUTPUT);pinMode(b, OUTPUT);pinMode(c, OUTPUT);pinMode(d, OUTPUT);
pinMode(e, OUTPUT);pinMode(f, OUTPUT);pinMode(g, OUTPUT);
pinMode(buton1,INPUT_PULLUP); pinMode(buton2,INPUT_PULLUP); pinMode(buton3,INPUT_PULLUP);
// butonlara 10 k direnç bağlı olmadığından dahili pullup dirençleri aktif ediliyor.
}

void loop()
{
//———– Yalnızca buton 1 e basılmışsa ———————
if((digitalRead(buton1)==0) && (digitalRead(buton2)==1) && (digitalRead(buton3)==1)) // basılan butondan arduinoya 0 bilgisi gelir. basılı değilse gelen değer 1 dir.
{ bir();sondur(); }
if((digitalRead(buton1)==1) && (digitalRead(buton2)==0) && (digitalRead(buton3)==1)) // sadece buton2 ye basılmışsa
{ iki();sondur(); }
if((digitalRead(buton1)==1) && (digitalRead(buton2)==1) && (digitalRead(buton3)==0)) // sadece buton3 e basılmışsa
{ uc();sondur(); }
if((digitalRead(buton1)==0) && (digitalRead(buton2)==0) && (digitalRead(buton3)==1)) // buton1 ve buton2 ye basılmışsa
{ dort();sondur(); }
if((digitalRead(buton1)==1) && (digitalRead(buton2)==0) && (digitalRead(buton3)==0)) // buton2 ve buton3 ye basılmışsa
{ bes();sondur(); }
if((digitalRead(buton1)==0) && (digitalRead(buton2)==1) && (digitalRead(buton3)==0)) // buton1 ve buton3 e basılmışsa
{ alti();sondur(); }

}
//————— ANA PROGRAM SONU ————–
void bir()
{
digitalWrite(b,HIGH);digitalWrite(c,HIGH); // dipleyde 1 yandı
delay(500);
}

void iki()
{
digitalWrite(a,HIGH);digitalWrite(b,HIGH);digitalWrite(d,HIGH);
digitalWrite(e,HIGH);digitalWrite(g,HIGH);
delay(500);
}
void uc()
{
digitalWrite(a,HIGH);digitalWrite(b,HIGH);digitalWrite(c,HIGH);
digitalWrite(d,HIGH);digitalWrite(g,HIGH);
delay(500);
}

void dort()
{
digitalWrite(b,HIGH); digitalWrite(c,HIGH);
digitalWrite(f,HIGH); digitalWrite(g,HIGH);
delay(500);
}

void bes()
{
digitalWrite(a,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH);
digitalWrite(f,HIGH); digitalWrite(g,HIGH);
delay(500);
}

void alti()
{
digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e,HIGH);
digitalWrite(f,HIGH); digitalWrite(g,HIGH);
delay(500);
}

void sondur()
{
digitalWrite(a,LOW); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,LOW);
digitalWrite(e,LOW); digitalWrite(f,LOW); digitalWrite(g,LOW);
}