led etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

💡 Dijital Giriş ve Çıkış Pinleri Nedir? Nasıl Kullanılır? (pinMode(), digitalWrite(), digitalRead())

💡 Dijital Giriş ve Çıkış Pinleri Nedir? Nasıl Kullanılır? (pinMode(), digitalWrite(), digitalRead())

💡 Dijital Giriş ve Çıkış Pinleri Nedir? Nasıl Kullanılır? (pinMode(), digitalWrite(), digitalRead())

Merhaba Arduino severler! Bu yazımızda Arduino'nun temel taşlarından olan dijital giriş ve çıkış pinlerini yakından tanıyacağız. Arduino projelerinizde sensörlerden veri okumak, LED'leri kontrol etmek veya motorları sürmek gibi birçok işlem için bu pinleri kullanmanız gerekecek. Hazırsanız, dijital dünyanın kapılarını aralayalım!

Dijital Pinler Ne İşe Yarar?

Arduino'nun dijital pinleri, sadece iki farklı durumda (HIGH veya LOW) sinyal gönderebilir veya alabilir. Bu durumlar genellikle "1" (HIGH) ve "0" (LOW) olarak temsil edilir. Arduino'nun çalışma voltajına bağlı olarak, HIGH genellikle 5V (veya 3.3V), LOW ise 0V anlamına gelir. Dijital pinler, sensörlerden basit aç/kapa sinyallerini okumak veya LED'leri yakıp söndürmek gibi temel işlemleri gerçekleştirmek için idealdir.

Pinleri Tanımlama: pinMode() Fonksiyonu

Herhangi bir pini kullanmadan önce, o pinin giriş mi yoksa çıkış mı olarak kullanılacağını Arduino'ya bildirmemiz gerekir. İşte tam bu noktada pinMode() fonksiyonu devreye giriyor. Bu fonksiyon, bir pinin davranışını tanımlamamızı sağlar.


 pinMode(pinNumarasi, MOD);
 
  • pinNumarasi: Ayarlamak istediğiniz pinin numarası (2-13 ve A0-A5 gibi).
  • MOD: Pin modunu belirtir. Üç farklı seçenek vardır:
    • INPUT: Pin, dışarıdan bir sinyal alacak şekilde ayarlanır (sensörlerden veri okuma gibi).
    • OUTPUT: Pin, dışarıya bir sinyal gönderecek şekilde ayarlanır (LED'i yakma, motoru kontrol etme gibi).
    • INPUT_PULLUP: INPUT moduna benzer, ancak dahili bir direnç etkinleştirilir. Bu, harici bir direnç kullanmadan pini belirli bir durumda tutmaya yardımcı olur.

Örnek:


 // 7 numaralı pini çıkış olarak ayarla
 pinMode(7, OUTPUT);

 // 8 numaralı pini giriş olarak ayarla
 pinMode(8, INPUT);

 // 9 numaralı pini dahili dirençli giriş olarak ayarla
 pinMode(9, INPUT_PULLUP);
 

Çıkış Pinlerini Kontrol Etme: digitalWrite() Fonksiyonu

Bir pini OUTPUT olarak ayarladıktan sonra, o pinden HIGH veya LOW sinyali göndermek için digitalWrite() fonksiyonunu kullanırız. Bu fonksiyon, çıkış pinlerimizin davranışını kontrol etmemizi sağlar.


 digitalWrite(pinNumarasi, DEGER);
 
  • pinNumarasi: Kontrol etmek istediğiniz çıkış pininin numarası.
  • DEGER: Pinin alacağı değer. İki seçenek vardır:
    • HIGH: Pinden 5V (veya 3.3V) sinyali gönderilir.
    • LOW: Pinden 0V sinyali gönderilir.

Örnek:


 // 7 numaralı pini HIGH yap (LED'i yak)
 digitalWrite(7, HIGH);

 // 7 numaralı pini LOW yap (LED'i söndür)
 digitalWrite(7, LOW);
 

Giriş Pinlerinden Veri Okuma: digitalRead() Fonksiyonu

Bir pini INPUT olarak ayarladıktan sonra, o pindeki sinyali okumak için digitalRead() fonksiyonunu kullanırız. Bu fonksiyon, giriş pinlerimizdeki durumu (HIGH veya LOW) belirlememizi sağlar.


 int okunanDeger = digitalRead(pinNumarasi);
 
  • pinNumarasi: Okumak istediğiniz giriş pininin numarası.
  • okunanDeger: Fonksiyonun döndürdüğü değer. HIGH (1) veya LOW (0) olabilir.

Örnek:


 // 8 numaralı pindeki değeri oku
 int sensorDegeri = digitalRead(8);

 // Eğer sensör değeri HIGH ise
 if (sensorDegeri == HIGH) {
   // Bir şeyler yap...
 } else {
   // Başka bir şeyler yap...
 }
 

Basit Bir LED Yakıp Söndürme Projesi

Şimdi öğrendiklerimizi kullanarak basit bir LED yakıp söndürme projesi yapalım. Bu projede, 13 numaralı pine bağlı bir LED'i her saniye yakıp söndüreceğiz.

Malzemeler:

  • Arduino kartı
  • LED
  • 220 ohm direnç (LED'i korumak için)
  • Breadboard (isteğe bağlı)
  • Jumper kabloları

Bağlantılar:

  • LED'in uzun bacağı (anot) -> 220 ohm direnç -> Arduino'nun 13 numaralı pini
  • LED'in kısa bacağı (katot) -> Arduino'nun GND (toprak) pini

Kod:


 int ledPin = 13; // LED'in bağlı olduğu pin

 void setup() {
   // 13 numaralı pini çıkış olarak ayarla
   pinMode(ledPin, OUTPUT);
 }

 void loop() {
   // LED'i yak
   digitalWrite(ledPin, HIGH);
   delay(1000); // 1 saniye bekle

   // LED'i söndür
   digitalWrite(ledPin, LOW);
   delay(1000); // 1 saniye bekle
 }
 

Bu kod, LED'i her saniye yakıp söndürecektir. Kodu Arduino'ya yükleyin ve sonucu gözlemleyin!

Daha Fazla İpucu ve Püf Noktası

  • Direnç Kullanımı: LED'leri Arduino'ya bağlarken mutlaka bir direnç kullanın. Aksi takdirde, LED'iniz zarar görebilir veya yanabilir.
  • Pull-up Dirençleri: Buton gibi elemanlarla çalışırken, INPUT_PULLUP modunu kullanarak harici bir direnç kullanmaktan kurtulabilirsiniz.
  • Pin Kısıtlamaları: Bazı pinler özel amaçlar için kullanılır (örneğin, 0 ve 1 numaralı pinler seri iletişim için kullanılır). Bu pinleri kullanırken dikkatli olun.

Umarım bu yazı, Arduino'nun dijital giriş ve çıkış pinleri hakkında size temel bir anlayış kazandırmıştır. Artık basit projeler yapmaya başlayabilir ve Arduino dünyasını keşfedebilirsiniz. Bol şans!

Etiketler: Arduino, Dijital Giriş, Dijital Çıkış, pinMode, digitalWrite, digitalRead, LED, Sensör, Elektronik

```

🔌 Arduino Nedir? Nasıl Çalışır? Başlangıç Rehberi

🔌 Arduino Nedir? Nasıl Çalışır? Başlangıç Rehberi

🔌 Arduino Nedir? Nasıl Çalışır? Başlangıç Rehberi

Merhaba sevgili Arduino meraklıları! Elektronikle uğraşmaya yeni başlayan ya da sadece merak eden herkes için Arduino, harika bir başlangıç noktasıdır. Bu yazıda, Arduino'nun ne olduğunu, nasıl çalıştığını ve temel prensiplerini en basit haliyle anlatmaya çalışacağım. Hazırsanız, elektronik dünyaya adım atalım!

Arduino Nedir?

Arduino, kullanımı kolay bir donanım (hardware) ve yazılım (software) platformudur. Temelde, bir mikrodenetleyici (microcontroller) içeren bir geliştirme kartıdır. Bu kart sayesinde, sensörlerden veri okuyabilir, motorları kontrol edebilir, LED'leri yakıp söndürebilir ve aklınıza gelebilecek birçok elektronik projeyi gerçekleştirebilirsiniz. Arduino'nun en büyük avantajı, programlanmasının kolay olması ve geniş bir topluluğa sahip olmasıdır.

Arduino Nasıl Çalışır?

Arduino'nun çalışma prensibi oldukça basittir. Arduino kartı üzerinde bulunan mikrodenetleyici, kendisine yüklenen programı (sketch) çalıştırır. Bu program, Arduino'nun giriş (input) ve çıkış (output) pinlerini kontrol eder. Giriş pinleri, sensörlerden gelen verileri okumak için kullanılırken, çıkış pinleri ise LED'leri, motorları veya diğer elektronik bileşenleri kontrol etmek için kullanılır.

Temel Bileşenler

Bir Arduino kartı genellikle şu temel bileşenlerden oluşur:

  • Mikrodenetleyici (Microcontroller): Arduino'nun beyni olan bu çip, programınızı çalıştırır. Genellikle ATMega serisi mikrodenetleyiciler kullanılır.
  • Giriş/Çıkış Pinleri (I/O Pins): Sensörlerden veri almak veya elektronik bileşenleri kontrol etmek için kullanılır. Dijital (digital) ve analog (analog) olmak üzere iki tür pini bulunur.
  • USB Portu: Arduino'yu bilgisayara bağlamak ve program yüklemek için kullanılır. Aynı zamanda Arduino'ya güç de sağlayabilir.
  • Güç Girişi (Power Input): Arduino'yu harici bir güç kaynağı ile beslemek için kullanılır.
  • Reset Butonu: Arduino'yu sıfırlamak ve programı yeniden başlatmak için kullanılır.

Arduino ile İlk Proje: LED Yakıp Söndürme

Arduino ile yapılabilecek en basit projelerden biri, bir LED'i yakıp söndürmektir. Bu projeyi gerçekleştirmek için aşağıdaki adımları izleyebilirsiniz:

  1. Gerekli Malzemeler:
    • Arduino kartı (Örneğin, Arduino Uno)
    • LED
    • 220 ohm direnç (LED'i korumak için)
    • Jumper kablolar
  2. Devreyi Kurulumu: Aşağıdaki bağlantıları kullanarak devreyi kurun:
    • LED'in uzun bacağı (anot) -> 220 ohm direncin bir bacağı
    • 220 ohm direncin diğer bacağı -> Arduino'nun 13 numaralı dijital pini
    • LED'in kısa bacağı (katot) -> Arduino'nun GND (toprak) pini
  3. Programı Yazma: Arduino IDE'yi açın ve aşağıdaki kodu yazın:
    
    void setup() {
      // 13 numaralı pini çıkış olarak ayarla
      pinMode(13, OUTPUT);
    }
    
    void loop() {
      // 13 numaralı pini yüksek (HIGH) yap (LED'i yak)
      digitalWrite(13, HIGH);
      // 1 saniye bekle
      delay(1000);
      // 13 numaralı pini düşük (LOW) yap (LED'i söndür)
      digitalWrite(13, LOW);
      // 1 saniye bekle
      delay(1000);
    }
    
  4. Programı Yükleme: Arduino'yu bilgisayarınıza bağlayın, Arduino IDE'de doğru portu seçin ve programı yükleyin.
  5. Sonuç: LED'inizin 1 saniye aralıklarla yanıp söndüğünü göreceksiniz!

Arduino IDE Nedir?

Arduino IDE (Integrated Development Environment), Arduino programlarını yazmak, derlemek ve Arduino kartına yüklemek için kullanılan bir yazılımdır. Arduino'nun resmi web sitesinden ücretsiz olarak indirilebilir. IDE, basit ve kullanıcı dostu bir arayüze sahiptir ve yeni başlayanlar için idealdir.

Nereden Başlamalıyım?

Arduino ile başlamak için aşağıdaki kaynakları kullanabilirsiniz:

  • Arduino'nun Resmi Web Sitesi: Arduino hakkında detaylı bilgi, dokümantasyon ve örnek projeler içerir.
  • Arduino Kitleri: Yeni başlayanlar için hazırlanmış, gerekli malzemeleri ve projeleri içeren başlangıç kitleri mevcuttur.
  • Online Eğitimler: YouTube, Udemy gibi platformlarda Arduino ile ilgili birçok ücretsiz ve ücretli eğitim bulabilirsiniz.
  • Arduino Forumları ve Topluluklar: Sorularınızı sorabileceğiniz, deneyimlerinizi paylaşabileceğiniz ve projeleriniz için ilham alabileceğiniz birçok online topluluk bulunmaktadır.

Umarım bu yazı, Arduino'nun ne olduğunu ve nasıl çalıştığını anlamanıza yardımcı olmuştur. Unutmayın, elektronik dünyası sonsuz olasılıklarla dolu! Denemekten, öğrenmekten ve projeler üretmekten çekinmeyin. Başarılar dilerim!

Etiketler: arduino, elektronik, mikrodenetleyici, proje, başlangıç, led, kodlama, sensör, arduino ide

```

Arduino Kontrollü Akıllı Masa Lambası: Ortam Işığına Göre Ayarlanabilir

Arduino Kontrollü Akıllı Masa Lambası: Ortam Işığına Göre Ayarlanabilir

Arduino Kontrollü Akıllı Masa Lambası: Ortam Işığına Göre Ayarlanabilir

Herkese merhaba Arduino severler! Bu yazımızda, etrafımızdaki ışık koşullarına göre parlaklığını otomatik olarak ayarlayan, akıllı bir masa lambası projesi geliştireceğiz. Bu proje hem Arduino'ya yeni başlayanlar için harika bir giriş olacak, hem de daha deneyimli kullanıcılar için keyifli bir uygulama örneği sunacak. Hazırsanız, malzemelere ve kodlamaya geçelim!

Neden Akıllı Masa Lambası?

Akıllı masa lambası, okuma, çalışma veya hobilerinizle uğraşırken gözlerinizi yormamak için ideal bir çözüm sunar. Ortamdaki ışık azaldığında lamba otomatik olarak parlaklığını artırır, ortam aydınlandığında ise parlaklığı kısar. Böylece, her zaman ideal bir aydınlatma seviyesine sahip olursunuz.

Gerekli Malzemeler

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • LDR (Işık Bağımlı Direnç)
  • 10k Ohm Direnç
  • Potansiyometre (10k Ohm idealdir)
  • LED (Yüksek parlaklığa sahip)
  • 220 Ohm Direnç (LED için)
  • Breadboard
  • Jumper kablolar

Devre Şeması ve Bağlantılar

Devremizi kurarken aşağıdaki bağlantı şemasına dikkat edelim:

  • LDR:
    • LDR'nin bir bacağı -> Arduino 5V (Vcc) pinine
    • LDR'nin diğer bacağı -> 10k Ohm direncin bir bacağına
    • 10k Ohm direncin diğer bacağı -> GND'ye
    • LDR ve 10k Ohm direncin birleştiği noktadan -> Arduino A0 pinine
  • Potansiyometre:
    • Potansiyometrenin bir ucu -> Arduino 5V'a (VCC)
    • Potansiyometrenin diğer ucu -> GND'ye
    • Potansiyometrenin orta ucu (silgi) -> Arduino A1 pinine
  • LED:
    • LED'in uzun bacağı (anot) -> 220 Ohm direncin bir bacağına
    • 220 Ohm direncin diğer bacağı -> Arduino Dijital 9 pinine (PWM pini)
    • LED'in kısa bacağı (katot) -> GND'ye

Arduino Kodu

Şimdi de Arduino kodumuza göz atalım. Bu kod, LDR'den gelen ışık değerini okuyacak, bu değeri potansiyometre ile ayarlanan hassasiyete göre ölçeklendirecek ve LED'in parlaklığını buna göre ayarlayacak.


 const int ldrPin = A0;
 const int potPin = A1;
 const int ledPin = 9;

 void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
 }

 void loop() {
  // LDR'den ışık değerini oku
  int ldrValue = analogRead(ldrPin);

  // Potansiyometreden hassasiyet değerini oku
  int potValue = analogRead(potPin);

  // Hassasiyet değerini 0-1023'ten 1-100 arasına ölçeklendir
  int sensitivity = map(potValue, 0, 1023, 1, 100);

  // Işık değerini 0-255 arasına ölçeklendir ve hassasiyet ile çarp
  int ledBrightness = map(ldrValue, 0, 1023, 255, 0); // Ters çevrildi çünkü düşük ışıkta daha parlak istiyoruz
  ledBrightness = constrain(ledBrightness * sensitivity / 100, 0, 255); // Hassasiyet ayarı ve sınırlama

  // LED'in parlaklığını ayarla
  analogWrite(ledPin, ledBrightness);

  // Seri monitöre değerleri yazdır (isteğe bağlı)
  Serial.print("LDR: ");
  Serial.print(ldrValue);
  Serial.print(", Pot: ");
  Serial.print(potValue);
  Serial.print(", Brightness: ");
  Serial.println(ledBrightness);

  delay(50); // Daha kararlı okumalar için kısa bir gecikme
 }
 

Kodun Açıklaması

  • ldrPin, potPin, ledPin: LDR, potansiyometre ve LED'in bağlandığı pinleri tanımlar.
  • setup(): Seri iletişimi başlatır ve LED pinini çıkış olarak ayarlar.
  • loop(): Sürekli olarak çalışan ana döngüdür.
    • analogRead(): LDR ve potansiyometreden analog değerleri okur.
    • map(): Değerleri farklı aralıklara ölçeklendirir. LDR değeri ters çevrilir (255'ten 0'a) çünkü düşük ışıkta LED'in daha parlak olmasını isteriz.
    • constrain(): LED parlaklığının 0 ile 255 arasında kalmasını sağlar. Hassasiyet ayarı bu noktada yapılır.
    • analogWrite(): LED'in parlaklığını PWM sinyali ile ayarlar.
    • Serial.print(): Değerleri seri monitöre yazdırır (isteğe bağlı, hata ayıklama için yararlı).
    • delay(): Kısa bir gecikme ekler.

Proje Nasıl Çalışır?

LDR, üzerine düşen ışık miktarına göre direnci değişen bir sensördür. Ortamdaki ışık azaldığında direnci artar ve Arduino A0 pinine daha düşük bir voltaj gönderir. Arduino, bu voltajı okuyarak ortamın ne kadar karanlık olduğunu anlar. Potansiyometre ise, sistemin hassasiyetini ayarlamanıza olanak tanır. Potansiyometre ile, ortam ışığındaki küçük değişikliklere lamba ne kadar tepki versin, onu belirleyebilirsiniz. Arduino, LDR ve potansiyometreden gelen verileri işleyerek, LED'in parlaklığını otomatik olarak ayarlar.

İpuçları ve İyileştirmeler

  • Kalibrasyon: LDR'nin hassasiyeti ortam ışığına göre değişebilir. Kodu çalıştırmadan önce farklı ışık koşullarında LDR'nin değerlerini kontrol edin ve `map()` fonksiyonundaki aralıkları buna göre ayarlayın.
  • Hassasiyet Ayarı: Potansiyometre ile hassasiyet ayarını deneyerek, farklı ışık koşullarına en uygun ayarı bulun.
  • LED Seçimi: Daha parlak bir LED kullanarak, daha iyi bir aydınlatma sağlayabilirsiniz. Ancak, LED'in akım gereksinimlerini dikkate alarak uygun bir direnç kullanmayı unutmayın.
  • Kasa Tasarımı: Devrenizi daha şık hale getirmek için 3D yazıcıda veya farklı malzemeler kullanarak özel bir kasa tasarlayabilirsiniz.
  • Renk Ayarı: RGB LED kullanarak, lamba rengini de ortam ışığına göre otomatik olarak ayarlayabilirsiniz.

Umarım bu proje size Arduino dünyasına keyifli bir giriş yapmanıza yardımcı olur. Herhangi bir sorunuz olursa, yorumlarda sormaktan çekinmeyin. İyi kodlamalar!

Etiketler: arduino, akıllı lamba, ortam ışığı, ldr, potansiyometre, led, proje, elektronik, kodlama, diy

```

Fonksiyonlar İçine Değişken Atama (Arduino Programlama - C/C++ dersleri 3)

Merhaba arkadaşlar bu yazımda daha önce oluşturduğumuz fonksiyonları biraz daha özelleştireceğiz ve parantez içine bir şeyler ekleyip eklediğimiz şeylere göre farklı sonuçlar elde edeceğiz. Tanım biraz karışık gelmiş olabilir farkındayım ama kodlar içindeki açıklamalar size yardımcı olacaktır.


İlk olarak daha önce burada örneğini yaptığımız led uygulamasının basit halini yapacağız sizde Arduinoya ısınmak için bu örneği aşağıdaki yöntemle yaparsanız sizin için çok iyi olur. Takıldığınız yer olursa yorum olarak sormaktan çekinmeyin.

İlk örnekte devre kurmamıza gerek yok direk Arduino kartımızda bulunan ledi kullanacağız.

 
// arduonik.blogspot.com
// Bu örnekte Arduino kartımızda dahili bulunan ve 13. pine bağlı led kullanacağız
int led = 13;  // pinimize "led" adını veriyoruz


void ac_kapa(int bekleme){ //daha sonra "ac_kapa" adında bir fonksiyon oluşturuyoruz ama daha önceki parantez içinin aksine burada bekleme adında bir int değişken var
// fonksiyonu kullanırken bu değişken yerine istediğimiz değeri yazarsak sadece bu fonksiyon içinde kullanılan bekleme değişkenleri yazdığımız değeri alacak
    digitalWrite(led, HIGH);   // ilk başta ledimizi açık duruma getiriyoruz
  delay(bekleme);               // ve bekleme değişkeni kadar bekliyoruz
  digitalWrite(led, LOW);    // ardından ledi kapatiyoruz
  delay(bekleme);            // ve led kapalıyken bekleme değişkeninin değeri kadar bekliyoruz
}  // fonksiyonu kapatmayı unutmayın :)
//kendi fonksiyonumuzdan sonra Setup fonksiyonunu oluşturuyoru
void setup() {

  pinMode(led, OUTPUT);  //led olarak adlandırdığımız 13 nolu pini çıkış pini olarak ayarlıyoruz
}

// Daha sonrada loop fonksiyonuna geçiyoruz
void loop() {
ac_kapa(500);             // ac_kapa fonksiyonunu çalıştırıyoruz ve bekleme değişkenini 500 yapıyoruz yani her iki delay da 500 ms olacak
}

Şimdi bu kodu biraz daha geliştirip açık kalma ve kapalı kalma sürelerini farklı farklı olarak kullanalım

// arduonik.blogspot.com
// Bu örnekte Arduino kartımızda dahili bulunan ve 13. pine bağlı led kullanacağız
int led = 13;  // pinimize "led" adını veriyoruz


void ac_kapa(int bekleme_acik,int bekleme_kapali){ //daha sonra "ac_kapa" adında bir fonksiyon oluşturuyoruz ama daha önceki parantez içinin aksine burada 
//bekleme_acik ve bekleme_kapali adında iki int değişken ekliyoruz
// fonksiyonu kullanırken bu değişkenler yerine istediğimiz değeri yazarsak  bu fonksiyon içinde kullanılan bekleme_acik ve bekleme_kapali değişkenleri yazdığımız değerleri alacak
    digitalWrite(led, HIGH);   // ilk başta ledimizi açık duruma getiriyoruz
  delay(bekleme_acik);               // ve bekleme_acik değişkeni kadar bekliyoruz
  digitalWrite(led, LOW);    // ardından ledi kapatiyoruz
  delay(bekleme_kapali);            // ve led kapalıyken bekleme_kapali değişkeninin değeri kadar bekliyoruz
}  // fonksiyonu kapatmayı unutmayın :)
//kendi fonksiyonumuzdan sonra Setup fonksiyonunu oluşturuyoru
void setup() {

  pinMode(led, OUTPUT);  //led olarak adlandırdığımız 13 nolu pini çıkış pini olarak ayarlıyoruz
}

// Daha sonrada loop fonksiyonuna geçiyoruz
void loop() {
ac_kapa(500,250);             // ac_kapa fonksiyonunu çalıştırıyoruz ve bekleme_acik değişkenini 500, bekleme_kapalı değişkenini 250 yapıyoruz yani her iki delay da farklı olacak
}

Daha öncede dediğim gibi blogta ki örneklerden Trafik Lambası örneğinin devresini kurup kendi yazdığınız foknsiyon ile fonksiyon içine yazılan rengi yakacak bir kod yazmak size bir şeyler katacaktır. Takıldığınız yeri  yorumda sorabilirsiniz.

Fonksiyonlar ve void setup - void loop ( BareMinimum) (Arduino Programlama - C/C++ dersleri 2)





    Uzun bir aradan sonra merhaba. Bu yazımda önce Arduino programlarken her zaman kullanacağımız   Setup, loop terimlerinden ve kendimiz nasıl yeni fonksiyon yazacağımız dan bahsedeceğim. Zaten yandaki şekil Setup ve Loop için kafanızda bir şeyler canlandırmıştır. Bu arada Void setup ve Void loop yani Arduinonun çalışması için gereken kodlara BareMinimum denmektedir.



    Void Setup

    void setup bir fonksiyondur ve yeni Arduino IDE lerinde siz yazmadan yeni sayafada karşınıza gelir. bu fonksiyon karta elektrik verdiğimizde sadece bir sefer çaılışır ve sırasını loop fonksiyonuna bırakır. Eğer reset butonuna basarsak yani gücü kesip geri verirsek tekrar çalışır. Sadece bir defa çalıştığı için adından da anlaşıldığı üzere kartın kurulum bilgilerini barındırır. Genelde seri bağlantı başlatılması, pinlerin nasıl çalışacağının belirlenmesi gibi sadece başta ve  bir defa yapılması gereken işlemler burada belirtilir. pinlere isim takma yada değişken belirleme işleri ise bu fonksiyon çalışmadan yapılır.

   Void Loop

   Setup fonksiyonun bir sefer çalışması ardından devamlı çalışan kısımdır. Bu kısımda devamlı olarak çalışmasını istediğimiz sensör ölçümü ve işlenmesi, veri alışverişi, pini aktif ve pasif ( 1-0 durumu) gibi kodlar içerir.


    Kullanımları aşağıda ki gibidir.

void setup() {
  // yalnızca bir sefer çalışacak kurulum kodları
}

void loop() {
  // devamlı bir döngü ile çalışacak işlem kodları
}

   Fonksiyon Oluşturma

    Fonksiyonlar bir işleme isim takma gibi düşünebiliriz. Özellikle uzun kodlarda kafamız karışabilir veya bir işlemi birçok kez kullanmamız gerekebilir, bu gibi durumlarda fonksiyonları kullanmak çok yararlı olacaktır. Mesela bir çizgi izleyen robot yaptığımızda motrun sola ve sağa dönmesi için iki farklı fonksiyon yazdığımızda kodumuz dağa anlaşılır olacak ayrıca düzeltmeleri  daha kolay yaparsınız. sözlü anlatımdan ziyade bir örnek daha anlaşılır olacaktır.


int led = 13; // 13. pinimizin adını led olarak belirliyoruz
void setup() {
  // sadece bir defa çalışacak kurulum kodlarımızı yazıyoruz(pin mod, seri bağlantı başlangıcı gibi)
  pinMode(led, OUTPUT); // led pinini çıkış pini olarak ayarlıyoruz
}

void loop() {
  //sürekli döngü içinde çalışacak kodumuzu yazıyoruz
ac_kapa();//ac kapa fonksiyonunu çalıştırıyoruz fonksiyon loop içinde olduğu için 
}

void ac_kapa(){
  //kendimize ait bir fonksiyon yazıyoruz
  digitalWrite(led, HIGH);   // Ledi yakıyoruz
  delay(1000);                  // bir saniye led açık durumda bekliyoruz
  digitalWrite(led, LOW);    // ledi kapıyoruz
  delay(1000);                  // bir saniye daha bekliyoruz
  }

Daha sonra eklenecek örnek projelerde kullanımları ile fonksiyonları daha iyi kullanacağız.Ayrıca devre şemasını eklemiyorum sitemde 3 farklı örnek bulunmakta. Direnç eklemeyi unutmayın her ledin farklı bir iç direnci olduğu için bazı ledler direnç kullanmadan yanarken bazıları küçük dirençler kullansanız dahi bozulabilir bunun hesabını da ilerleyen günlerde paylaşacağım