Skip to the content.

Arduino Örnek Projeler

Arduino IDE Ayarları:

LED Yakma Rehberi

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#define LED_PIN 7  // LED'in bağlı olduğu dijital pin

void setup() {
  // LED_PIN'i çıkış olarak ayarla
  pinMode(LED_PIN, OUTPUT);
}

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

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

Açıklama

Bu basit devre ve kodla, Arduino ile LED’inizi kolayca yakıp söndürebilirsiniz.

Butona Basınca Serial Ekranına Bilgi Verme

Bağlantı Şeması

Bağlantı Talimatları:

NOT1: GND ve Direnç düğmenin aynı tarafındaki ayaklara bağlanmalıdır.

NOT2: Pin ucu düğmenin diğer tarafında tek başına bağlanmalıdır.

Butona Basınca Serial Ekranına Bilgi Verme

Örnek Kod

#define BUTTON_PIN 2  // Butonun bağlı olduğu dijital pin

void setup() {
  Serial.begin(9600);  // Serial iletişimi başlat
  pinMode(BUTTON_PIN, INPUT);
}

void loop() {
  if (digitalRead(BUTTON_PIN) == HIGH) {
    Serial.println("Butona basıldı!");
    delay(500);  // Yeniden basılmasını engellemek için kısa bir gecikme
  }
}

Açıklama

Buton Basınca Çalışan Buzzer

Bağlantı Şeması

Bağlantı Talimatları:

NOT1: GND ve Direnç düğmenin aynı tarafındaki ayaklara bağlanmalıdır.

NOT2: Pin ucu düğmenin diğer tarafında tek başına bağlanmalıdır.

Örnek Kod

#define BUTTON_PIN 2  // Butonun bağlı olduğu dijital pin
#define BUZZER_PIN 8  // Buzzer'ın bağlı olduğu dijital pin

void setup() {
  pinMode(BUTTON_PIN, INPUT);
  pinMode(BUZZER_PIN, OUTPUT);
}

void loop() {
  if (digitalRead(BUTTON_PIN) == HIGH) {
    digitalWrite(BUZZER_PIN, HIGH);  // Buzzer'ı çalıştır
  } else {
    digitalWrite(BUZZER_PIN, LOW);   // Buzzer'ı durdur
  }
}

Açıklama

Butona Basınca Çalışan LED

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#define BUTTON_PIN 2  // Butonun bağlı olduğu dijital pin
#define LED_PIN 7     // LED'in bağlı olduğu dijital pin

void setup() {
  pinMode(BUTTON_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  if (digitalRead(BUTTON_PIN) == HIGH) {
    digitalWrite(LED_PIN, HIGH);  // LED'i yak
  } else {
    digitalWrite(LED_PIN, LOW);   // LED'i söndür
  }
}

Açıklama

Tekli Röle ile Lamba Yakma

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#define RELAY_PIN 4  // Rölenin bağlı olduğu dijital pin

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
}

void loop() {
  digitalWrite(RELAY_PIN, HIGH);  // Lambayı yak
  delay(1000);  // 1 saniye bekle
  digitalWrite(RELAY_PIN, LOW);   // Lambayı söndür
  delay(1000);  // 1 saniye bekle
}

Açıklama

İkili Röle ile Lamba Yakma

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#define RELAY1_PIN 4  // 1. Rölenin bağlı olduğu dijital pin
#define RELAY2_PIN 5  // 2. Rölenin bağlı olduğu dijital pin

void setup() {
  pinMode(RELAY1_PIN, OUTPUT);
  pinMode(RELAY2_PIN, OUTPUT);
}

void loop() {
  digitalWrite(RELAY1_PIN, HIGH);  // 1. lambayı yak
  digitalWrite(RELAY2_PIN, HIGH);  // 2. lambayı yak
  delay(1000);  // 1 saniye bekle

  digitalWrite(RELAY1_PIN, LOW);   // 1. lambayı söndür
  digitalWrite(RELAY2_PIN, LOW);   // 2. lambayı söndür
  delay(1000);  // 1 saniye bekle
}

Açıklama

LDR Durumunu Serial Ekrana Yazma

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#define LDR_PIN A0  // LDR'nin bağlı olduğu analog pin

void setup() {
  Serial.begin(9600);  // Serial iletişimi başlat
}

void loop() {
  int ldrValue = analogRead(LDR_PIN);  // LDR değerini oku
  Serial.println(ldrValue);  // Değeri serial ekrana yazdır
  delay(1000);  // 1 saniye bekle
}

Açıklama

LDR Durumuna Göre LED Parlaklığı Ayarlama

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#define LDR_PIN A0  // LDR'nin bağlı olduğu analog pin
#define LED_PIN 9   // LED'in bağlı olduğu dijital pin

void setup() {
  pinMode(LED_PIN, OUTPUT);  // LED pinini çıkış olarak ayarla
}

void loop() {
  int ldrValue = analogRead(LDR_PIN);  // LDR değerini oku
  int brightness = map(ldrValue, 0, 1023, 0, 255);  // Değeri 0-255 aralığına dönüştür
  analogWrite(LED_PIN, brightness);  // LED parlaklığını ayarla
  delay(100);  // Kodu daha hızlı döngüye almak için gecikmeyi 100 ms yapabilirsiniz
}

Açıklama

SCSR04 Mesafe Ölçüm Sonucunu Serial Ekrana Yazma

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#define TRIG_PIN 10  // Trig pininin bağlı olduğu dijital pin
#define ECHO_PIN 11  // Echo pininin bağlı olduğu dijital pin

void setup() {
  Serial.begin(9600);  // Serial iletişimi başlat
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

void loop() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  
  long duration = pulseIn(ECHO_PIN, HIGH);  // Eko süresini oku
  long distance = (duration / 2) * 0.0344;  // Mesafeyi hesapla (cm)
  
  Serial.print("Mesafe: ");
  Serial.print(distance);
  Serial.println(" cm");
  delay(1000);  // 1 saniye bekle
}

Açıklama

SCSR04 ile Nesneye 10 cm’den Az Kalınca Buzzer Çalıştırma

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#define TRIG_PIN 10  // Trig pininin bağlı olduğu dijital pin
#define ECHO_PIN 11  // Echo pininin bağlı olduğu dijital pin
#define BUZZER_PIN 8 // Buzzer'ın bağlı olduğu dijital pin

void setup() {
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(BUZZER_PIN, OUTPUT);
}

void loop() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  
  long duration = pulseIn(ECHO_PIN, HIGH);  // Eko süresini oku
  long distance = (duration / 2) * 0.0344;  // Mesafeyi hesapla (cm)
  
  if (distance < 10) {
    digitalWrite(BUZZER_PIN, HIGH);  // Buzzer'ı çalıştır
  } else {
    digitalWrite(BUZZER_PIN, LOW);   // Buzzer'ı durdur
  }
  delay(1000);  // 1 saniye bekle
}

Açıklama

Potansiyometre Değerini Serial Ekrana Yazma

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#define POT_PIN A0  // Potansiyometrenin bağlı olduğu analog pin

void setup() {
  Serial.begin(9600);  // Serial iletişimi başlat
}

void loop() {
  int potValue = analogRead(POT_PIN);  // Potansiyometre değerini oku
  Serial.println(potValue);  // Değeri serial ekrana yazdır
  delay(1000);  // 1 saniye bekle
}

Açıklama

Potansiyometre ile LED Parlaklığı Ayarlama

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#define POT_PIN A0  // Potansiyometrenin bağlı olduğu analog pin
#define LED_PIN 9   // LED'in bağlı olduğu dijital pin

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  int potValue = analogRead(POT_PIN);

  // Potansiyometre değerini oku
  int brightness = map(potValue, 0, 1023, 0, 255);  // Değeri 0-255 aralığına dönüştür
  analogWrite(LED_PIN, brightness);  // LED parlaklığını ayarla
  delay(1000);  // 1 saniye bekle
}

Açıklama

5 LED ile Karaşimşek

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#define LED1_PIN 2
#define LED2_PIN 3
#define LED3_PIN 4
#define LED4_PIN 5
#define LED5_PIN 6

void setup() {
  pinMode(LED1_PIN, OUTPUT);
  pinMode(LED2_PIN, OUTPUT);
  pinMode(LED3_PIN, OUTPUT);
  pinMode(LED4_PIN, OUTPUT);
  pinMode(LED5_PIN, OUTPUT);
}

void loop() {
  // Karaşimşek efekti
  for (int i = 0; i < 5; i++) {
    digitalWrite(LED1_PIN, HIGH);
    delay(100);
    digitalWrite(LED1_PIN, LOW);
    delay(100);
    
    digitalWrite(LED2_PIN, HIGH);
    delay(100);
    digitalWrite(LED2_PIN, LOW);
    delay(100);
    
    digitalWrite(LED3_PIN, HIGH);
    delay(100);
    digitalWrite(LED3_PIN, LOW);
    delay(100);
    
    digitalWrite(LED4_PIN, HIGH);
    delay(100);
    digitalWrite(LED4_PIN, LOW);
    delay(100);
    
    digitalWrite(LED5_PIN, HIGH);
    delay(100);
    digitalWrite(LED5_PIN, LOW);
    delay(100);
  }
}

Açıklama

16x02 LCD Kullanımı: “Merhaba Dünya” Örneği

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#include <LiquidCrystal.h>  // LCD kütüphanesini ekle

// LCD pinlerini tanımla
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2);  // LCD'yi 16 sütun ve 2 satır olarak başlat
  lcd.print("Merhaba, Dünya!");  // LCD'ye "Merhaba, Dünya!" yaz
}

void loop() {
  // Kod burada devam edebilir
}

Açıklama

Bu temel örnekle LCD ekranınızı kullanarak mesajlar görüntüleyebilirsiniz.

İki Düğme Durumunu LCD Ekrana Yazdırma

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

#include <LiquidCrystal.h>  // LCD kütüphanesini ekle

// LCD pinlerini tanımla
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// Düğme pinlerini tanımla
#define BUTTON1_PIN 2
#define BUTTON2_PIN 3

void setup() {
  lcd.begin(16, 2);  // LCD'yi 16 sütun ve 2 satır olarak başlat
  pinMode(BUTTON1_PIN, INPUT_PULLUP);  // Düğme pinlerini giriş olarak ayarla
  pinMode(BUTTON2_PIN, INPUT_PULLUP);
}

void loop() {
  int button1State = digitalRead(BUTTON1_PIN);  // Düğme 1'in durumunu oku
  int button2State = digitalRead(BUTTON2_PIN);  // Düğme 2'nin durumunu oku

  lcd.clear();  // LCD ekranını temizle
  lcd.setCursor(0, 0);  // İlk satıra git
  lcd.print("Button 1: "); 
  lcd.print(button1State == LOW ? "Pressed" : "Released");  // Düğme 1 durumunu yazdır

  lcd.setCursor(0, 1);  // İkinci satıra git
  lcd.print("Button 2: ");
  lcd.print(button2State == LOW ? "Pressed" : "Released");  // Düğme 2 durumunu yazdır

  delay(500);  // 0.5 saniye bekle
}

Açıklama

Bu örnek, iki düğmenin durumunu LCD ekranda göstermenizi sağlar. Düğmelere basıldığında, LCD ekranında “Pressed” yazısı görünecek; basılmadığında “Released” yazısı görünecek.

MPU6050 Sonucunu Serial Ekrana Yazma

Bağlantı Şeması

Bağlantı Talimatları:

Örnek Kod

Aşağıdaki kod, MPU6050 sensöründen veri okumak ve bu verileri serial ekrana yazdırmak için kullanılır. Bu kodun çalışabilmesi için Wire ve MPU6050 kütüphanelerine ihtiyacınız olacak. MPU6050 kütüphanesini bu bağlantıdan indirebilirsiniz.

#include <Wire.h>            // I2C kütüphanesini ekle
#include <MPU6050.h>         // MPU6050 kütüphanesini ekle

MPU6050 mpu;  // MPU6050 nesnesini oluştur

void setup() {
  Serial.begin(9600);  // Serial iletişimi başlat
  Wire.begin();        // I2C iletişimini başlat
  mpu.initialize();    // MPU6050'i başlat

  if (!mpu.testConnection()) {
    Serial.println("MPU6050 bağlantısı başarısız!");
    while (1);  // Bağlantı başarısızsa sonsuz döngüye gir
  }
}

void loop() {
  int16_t ax, ay, az;
  int16_t gx, gy, gz;

  mpu.getAcceleration(&ax, &ay, &az);  // İvme ölçer verilerini oku
  mpu.getRotation(&gx, &gy, &gz);      // Jiroskop verilerini oku

  Serial.print("İvme: X=");
  Serial.print(ax);
  Serial.print(" Y=");
  Serial.print(ay);
  Serial.print(" Z=");
  Serial.println(az);

  Serial.print("Jiroskop: X=");
  Serial.print(gx);
  Serial.print(" Y=");
  Serial.print(gy);
  Serial.print(" Z=");
  Serial.println(gz);

  delay(1000);  // 1 saniye bekle
}

Açıklama

Bu kod, MPU6050 sensöründen ivme ve jiroskop verilerini okuyarak her saniye serial ekrana yazdırır.

Rotary Switch Sonucunu Serial Ekrana Yazma

Bağlantı Şeması

Rotary switch (dönücü anahtar) genellikle 3 veya 4 pinli olur ve şu şekilde bağlanır:

Bağlantı Talimatları:

Örnek Kod

Aşağıdaki kod, rotary switch’in yönünü ve düğmeye basılıp basılmadığını okur ve bu bilgileri serial ekrana yazdırır. Kod, bir rotary enkoder ve düğme kombinasyonu için örnektir.

#define ENCODER_CLK_PIN 3  // CLK pininin bağlı olduğu dijital pin
#define ENCODER_DT_PIN 4   // DT pininin bağlı olduğu dijital pin
#define BUTTON_PIN 5       // SW pininin bağlı olduğu dijital pin (varsa)

volatile int encoderPos = 0;  // Encoder pozisyonu
int lastEncoderPos = 0;       // Son okunan encoder pozisyonu
bool buttonPressed = false;   // Düğme durumu

void setup() {
  Serial.begin(9600);          // Serial iletişimi başlat
  pinMode(ENCODER_CLK_PIN, INPUT);
  pinMode(ENCODER_DT_PIN, INPUT);
  pinMode(BUTTON_PIN, INPUT_PULLUP);

  attachInterrupt(digitalPinToInterrupt(ENCODER_CLK_PIN), handleEncoder, CHANGE);
  attachInterrupt(digitalPinToInterrupt(BUTTON_PIN), handleButton, FALLING);
}

void loop() {
  if (encoderPos != lastEncoderPos) {
    if (encoderPos > lastEncoderPos) {
      Serial.println("Sağa çevrildi");
    } else {
      Serial.println("Sola çevrildi");
    }
    lastEncoderPos = encoderPos;
  }

  if (buttonPressed) {
    Serial.println("Basıldı");
    buttonPressed = false;
  }

  delay(100);  // 0.1 saniye bekle
}

void handleEncoder() {
  int dtState = digitalRead(ENCODER_DT_PIN);
  if (dtState == HIGH) {
    encoderPos++;
  } else {
    encoderPos--;
  }
}

void handleButton() {
  buttonPressed = true;
}

Açıklama

Bu kod, rotary encoder’in yönünü ve düğmeye basılıp basılmadığını algılar ve bu bilgileri serial ekrana yazdırır.