ANA PROGRAM AKIŞ DİYAGRAMI (http://temrinlerim.org/images/kesme/1.png) (http://temrinlerim.org/images/kesme/2.png) (http://temrinlerim.org/images/kesme/3.png) (http://temrinlerim.org/images/kesme/4.png) (http://temrinlerim.org/images/kesme/5.png) (http://temrinlerim.org/images/kesme/3.png) (http://temrinlerim.org/images/kesme/9.png) (http://temrinlerim.org/images/kesme/6.png) (http://temrinlerim.org/images/kesme/3.png) (http://temrinlerim.org/images/kesme/7.png) (http://temrinlerim.org/images/kesme/8.png) | Bir arduino programı pic ve plc programları gibi alt alta yazılan komutlardan oluşur. Arduino çalışmaya başladığında ilk komuttan itibaren tüm komutlar yukarıdan aşağıya doğru sırayla çalıştırılır. Arduinoya bağlı sensör, buton, röle kontakları gibi çevresel birimlerden gelen verilersürekli kontrol edildiğinden program son komuta geldiğinde tekrar başa döner ve bir döngü halinde sürekli çalışır. Örneğin bir yürüyen ışık için yandaki gibi bir akış diyagramı söz konusudur. Yandaki akış diyagramında görüldüğü gibi program tüm komutları yukarıdan aşağıya sırayla çalıştırmak ve en alttaki komutu uyguladıktan sonra tekrar başa dönüp bu işlemi sonsuz bir döngü haline getirmekten ibarettir. Akış diyagramına ait arduino kodlarımız: // DIJITAL CIKIS PIN TANIMLAMALARI BASLADI int birinci_led = 1; int ikinci_led = 2; int ucuncu_led = 3; // DIJITAL CIKIS PIN TANIMLAMALARI BITTI // DIJITAL GIRIS / CIKISLARIN CIKIS MI YOKSA GIRIS MI OLDUKLARININ BELİRTİLMESİ BURADA BAŞLADI void setup() { pinMode(birinci_led, OUTPUT); // DİJİTAL 1 PİNİNE 1. LED BAĞLANACAK pinMode(ikinci_led, OUTPUT); // DİJİTAL 2 PİNİNE 2. LED BAĞLANACAK pinMode(ucuncu_led, OUTPUT); // DİJİTAL 3 PİNİNE 3. LED BAĞLANACAK } // DIJITAL GIRIS / CIKISLARIN CIKIS MI YOKSA GIRIS MI OLDUKLARININ BELİRTİLMESİ BURADA BITTI // ANA PROGRAM BURADA BASLADI void loop() { digitalWrite(birinci_led, HIGH); // DİJİTAL 1 PİNİNDEKİ LED YAKILDI delay(500); // 500 ms BEKLE digitalWrite(birinci_led, LOW); // DİJİTAL 1 PİNİNDEKİ LED SÖNDÜRÜLDÜ digitalWrite(ikinci_led, HIGH); // DİJİTAL 2 PİNİNDEKİ LED YAKILDI delay(500); // 500 ms BEKLE digitalWrite(ikinci_led, LOW); // DİJİTAL 2 PİNİNDEKİ LED SÖNDÜRÜLDÜ digitalWrite(ucuncu_led, HIGH); // DİJİTAL 3 PİNİNDEKİ LED YAKILDI delay(500); // 500 ms BEKLE digitalWrite(ucuncu_led, LOW); // DİJİTAL 3 PİNİNDEKİ LED SÖNDÜRÜLDÜ } // ANA PROGRAM BURADA BITTI |
KART | INTO | INT1 | INT2 | INT3 | INT4 | INT5 |
Uno, Nano, Mini | PIN2 | PIN3 | ||||
Mega, Mega2560, MegaADK | PIN2 | PIN3 | PIN18 | PIN19 | PIN20 | PIN21 |
Micro, Leonardo | PIN0 | PIN1 | PIN2 | PIN3 | PIN7 | |
Zero | DİJİTAL 4 PİNİ HARİÇ TÜM DİJİTAL PİNLER | |||||
Due | TÜM DİJİTAL PİNLER |
// DIJITAL CIKIS PIN TANIMLAMALARI BASLADI int birinci_led = 4; int ikinci_led = 5; int ucuncu_led = 6; int dorduncu_led = 7; int besinci_led = 8; int altinci_led = 9; // DIJITAL CIKIS PIN TANIMLAMALARI BITTI // DIJITAL GIRIS / CIKISLARIN CIKIS MI YOKSA GIRIS MI OLDUKLARININ BELİRTİLMESİ BURADA BAŞLADI void setup() { pinMode(birinci_led, OUTPUT); // DİJİTAL 4 PİNİNE 1. LED BAĞLANACAK pinMode(ikinci_led, OUTPUT); // DİJİTAL 5 PİNİNE 2. LED BAĞLANACAK pinMode(ucuncu_led, OUTPUT); // DİJİTAL 6 PİNİNE 3. LED BAĞLANACAK pinMode(dorduncu_led, OUTPUT); // DİJİTAL 7 PİNİNE 4. LED BAĞLANACAK pinMode(besinci_led, OUTPUT); // DİJİTAL 8 PİNİNE 5. LED BAĞLANACAK pinMode(altinci_led, OUTPUT); // DİJİTAL 9 PİNİNE 6. LED BAĞLANACAK pinMode(2, INPUT); // DİJİTAL 4 PİNİNE 1. LED BAĞLANACAK pinMode(3, INPUT); // DİJİTAL 5 PİNİNE 2. LED BAĞLANACAK attachInterrupt(0, kesme, RISING); // INT0 pini (dijital2 pini) 1 yapılırsa program kesme isimli fonksiyonu yürütür. attachInterrupt(1, kesme2, RISING); // INT1 pini (dijital3 pini) 1 yapılırsa program kesme2 isimli fonksiyonu yürütür. } // DIJITAL GIRIS / CIKISLARIN CIKIS MI YOKSA GIRIS MI OLDUKLARININ BELİRTİLMESİ BURADA BITTI // ANA PROGRAM BURADA BASLADI void loop() { digitalWrite(birinci_led, HIGH); // DİJİTAL 4 PİNİNDEKİ LED YAKILDI delay(2000); // 500 ms BEKLE digitalWrite(birinci_led, LOW); // DİJİTAL 4 PİNİNDEKİ LED SÖNDÜRÜLDÜ digitalWrite(ikinci_led, HIGH); // DİJİTAL 5 PİNİNDEKİ LED YAKILDI delay(2000); // 500 ms BEKLE digitalWrite(ikinci_led, LOW); // DİJİTAL 5 PİNİNDEKİ LED SÖNDÜRÜLDÜ digitalWrite(ucuncu_led, HIGH); // DİJİTAL 6 PİNİNDEKİ LED YAKILDI delay(2000); // 500 ms BEKLE digitalWrite(ucuncu_led, LOW); // DİJİTAL 6 PİNİNDEKİ LED SÖNDÜRÜLDÜ } // ANA PROGRAM BURADA BITTI void kesme() { digitalWrite(dorduncu_led, HIGH); // DİJİTAL 4 PİNİNDEKİ LED YAKILDI digitalWrite(besinci_led, HIGH); // DİJİTAL 5 PİNİNDEKİ LED YAKILDI digitalWrite(altinci_led, HIGH); // DİJİTAL 6 PİNİNDEKİ LED YAKILDI } void kesme2() { digitalWrite(dorduncu_led, LOW); // DİJİTAL 4 PİNİNDEKİ LED SÖNDÜRÜLDÜ digitalWrite(besinci_led, LOW); // DİJİTAL 5 PİNİNDEKİ LED SÖNDÜRÜLDÜ digitalWrite(altinci_led, LOW); // DİJİTAL 6 PİNİNDEKİ LED SÖNDÜRÜLDÜ }