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

Arduino ile Temassız Ateş Ölçer Yapımı (IR Sensör Kullanarak)

Arduino ile Temassız Ateş Ölçer Yapımı (IR Sensör Kullanarak)

Arduino ile Temassız Ateş Ölçer Yapımı (IR Sensör Kullanarak)

Merhaba sevgili Arduino meraklıları!

Bu yazımızda, Arduino kullanarak temassız bir ateş ölçer yapımını adım adım inceleyeceğiz. Özellikle son zamanlarda oldukça popüler hale gelen bu tür cihazlar, nesnelerin veya insanların vücut sıcaklığını temas etmeden ölçmemize olanak tanıyor. Bu projeyi hayata geçirerek hem eğlenceli bir deneyim yaşayacak, hem de günlük hayatta kullanabileceğiniz faydalı bir alet yapmış olacaksınız.

Projemizde MLX90614 gibi bir kızılötesi (IR) sensör kullanacağız. Bu sensör, bir nesnenin yaydığı kızılötesi radyasyonu algılayarak sıcaklığını ölçer. Arduino ile bu sensörü kullanarak, ölçtüğümüz sıcaklık değerlerini bir LCD ekranda göstereceğiz.

Gerekli Malzemeler

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • MLX90614 Temassız Sıcaklık Sensörü
  • 16x2 LCD Ekran
  • 10k Potansiyometre (LCD kontrast ayarı için)
  • Jumper Kablolar
  • Breadboard (isteğe bağlı, devre kurmayı kolaylaştırır)

Devre Şeması ve Bağlantılar

Devremizi kurarken aşağıdaki bağlantıları dikkatlice yapalım:

  • MLX90614 Sensörü:
    • VCC -> Arduino 5V
    • GND -> Arduino GND
    • SDA -> Arduino A4 (SDA)
    • SCL -> Arduino A5 (SCL)
  • LCD Ekran:
    • VSS -> Arduino GND
    • VDD -> Arduino 5V
    • VO (Kontrast) -> Potansiyometrenin orta ucu. Potansiyometrenin diğer uçları Arduino 5V ve GND'ye bağlanacak.
    • RS -> Arduino Dijital Pin 12
    • EN -> Arduino Dijital Pin 11
    • D4 -> Arduino Dijital Pin 5
    • D5 -> Arduino Dijital Pin 4
    • D6 -> Arduino Dijital Pin 3
    • D7 -> Arduino Dijital Pin 2
    • A (Anot) -> Arduino 5V (100 ohm direnç ile)
    • K (Katot) -> Arduino GND

Arduino Kodu

Aşağıdaki kodu Arduino IDE'nize kopyalayın ve Arduino kartınıza yükleyin.


 #include 
 #include 
 #include 

 // LCD pinlerini tanımla
 const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
 LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

 // MLX90614 sensörünü tanımla
 Adafruit_MLX90614 mlx = Adafruit_MLX90614();

 void setup() {
  Serial.begin(9600);
  Serial.println("Adafruit MLX90614 Temassız Sıcaklık Sensörü Testi");

  mlx.begin();

  // LCD'yi başlat
  lcd.begin(16, 2);
  lcd.print("Temassiz Ates");
  lcd.setCursor(0,1);
  lcd.print("Olcere Hosgeldin!");
  delay(2000);
  lcd.clear();
 }

 void loop() {
  // Ortam sıcaklığını ve nesne sıcaklığını oku
  float ambientTemp = mlx.readAmbientTempC();
  float objectTemp = mlx.readObjectTempC();

  // Sıcaklık değerlerini serial monitöre yazdır
  Serial.print("Ortam Sıcaklığı: ");
  Serial.print(ambientTemp);
  Serial.println(" *C");

  Serial.print("Nesne Sıcaklığı: ");
  Serial.print(objectTemp);
  Serial.println(" *C");

  // Sıcaklık değerlerini LCD ekrana yazdır
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Ortam: ");
  lcd.print(ambientTemp);
  lcd.print(" C");
  lcd.setCursor(0, 1);
  lcd.print("Nesne: ");
  lcd.print(objectTemp);
  lcd.print(" C");

  delay(1000); // 1 saniye bekle
 }
 

Kodun Açıklaması

  • #include <Wire.h>, #include <LiquidCrystal.h>, #include <Adafruit_MLX90614.h>: Gerekli kütüphaneleri projemize dahil ediyoruz.
  • LCD pinlerini tanımlıyoruz.
  • Adafruit_MLX90614 mlx = Adafruit_MLX90614();: MLX90614 sensörünü tanımlıyoruz.
  • mlx.begin();: Sensörü başlatıyoruz.
  • lcd.begin(16, 2);: LCD ekranı 16x2 boyutunda başlatıyoruz.
  • mlx.readAmbientTempC(); ve mlx.readObjectTempC();: Ortam ve nesne sıcaklıklarını Celsius cinsinden okuyoruz.
  • lcd.print(); ve lcd.setCursor();: Sıcaklık değerlerini LCD ekrana yazdırıyoruz.

Çalıştırma ve Sonuç

Devreyi kurduktan ve kodu Arduino'ya yükledikten sonra, LCD ekranda ortam ve nesne sıcaklıklarını görmelisiniz. MLX90614 sensörünü bir nesneye yaklaştırdığınızda, nesne sıcaklığının değiştiğini gözlemleyebilirsiniz. Potansiyometre ile LCD ekranın kontrastını ayarlayarak daha net bir görüntü elde edebilirsiniz.

Ek Notlar

  • MLX90614 sensörünün doğru sonuçlar vermesi için, sensörün yüzeyinin temiz olduğundan emin olun.
  • Ölçüm yaparken, sensörü nesneye çok yaklaştırmamaya özen gösterin. Genellikle birkaç santimetre mesafe yeterlidir.
  • Kodu ve devreyi kendi ihtiyaçlarınıza göre modifiye edebilirsiniz. Örneğin, sıcaklık değerlerini farklı bir ekranda görüntüleyebilir, farklı sıcaklık birimlerinde gösterebilir veya bir alarm sistemi ekleyebilirsiniz.

Umarım bu proje sizin için faydalı olmuştur. Arduino ile keyifli projeler geliştirmeye devam edin!

Etiketler: Arduino, Temassız Ateş Ölçer, IR Sensör, MLX90614, LCD Ekran, Sıcaklık Ölçümü, Proje, Kendin Yap

```

Arduino ile Akıllı Geri Sayım Sayacı: Sınavlar ve Egzersizler için İdeal

Arduino ile Akıllı Geri Sayım Sayacı: Sınavlar ve Egzersizler için İdeal

Arduino ile Akıllı Geri Sayım Sayacı: Sınavlar ve Egzersizler için İdeal

Merhaba sevgili Arduino meraklıları!

Bugün sizlere Arduino ile nasıl akıllı bir geri sayım sayacı yapabileceğinizi anlatacağım. Bu proje, özellikle sınavlara hazırlanan öğrenciler veya egzersiz yapanlar için çok kullanışlı olabilir. Hatta mutfakta yemek yaparken bile size yardımcı olacak bir zamanlayıcıya dönüştürebilirsiniz.

Projenin Amacı

Bu projenin amacı, Arduino kullanarak belirli bir süre geri sayım yapabilen ve süre dolduğunda sesli veya görsel bir uyarı verebilen bir cihaz oluşturmaktır. Bu cihazı ihtiyacınıza göre özelleştirebilirsiniz.

Gerekli Malzemeler

İhtiyacımız olan malzemeler oldukça basit:

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • Bir adet 16x2 LCD ekran
  • 4 adet buton (veya push button)
  • 1 adet buzzer (sesli uyarı için)
  • 10k potansiyometre (LCD ekran kontrast ayarı için)
  • Birkaç adet jumper kablo
  • Breadboard (isteğe bağlı, ama önerilir)

Bağlantı Şeması

Şimdi de malzemeleri Arduino'ya nasıl bağlayacağımıza bakalım:

  1. LCD Ekran Bağlantısı:
    • LCD VSS pin -> Arduino GND
    • LCD VDD pin -> Arduino 5V
    • LCD VO pin -> Potansiyometrenin orta pini (Potansiyometrenin diğer iki pini GND ve 5V'a bağlanacak)
    • LCD RS pin -> Arduino Dijital Pin 12
    • LCD Enable pin -> Arduino Dijital Pin 11
    • LCD D4 pin -> Arduino Dijital Pin 5
    • LCD D5 pin -> Arduino Dijital Pin 4
    • LCD D6 pin -> Arduino Dijital Pin 3
    • LCD D7 pin -> Arduino Dijital Pin 2
    • LCD A pin (Arka ışık anot) -> Arduino 5V (direnç ile bağlanması önerilir, örneğin 220 ohm)
    • LCD K pin (Arka ışık katot) -> Arduino GND
  2. Buton Bağlantıları:

    Her bir buton bir ucu Arduino'nun bir dijital pinine (örneğin 6, 7, 8, 9) bağlanacak. Diğer ucu ise GND'ye bir 10k ohm'luk direnç ile bağlanacak. Butona basıldığında, dijital pin HIGH sinyali alacak.

    • 1. Buton -> Arduino Dijital Pin 6
    • 2. Buton -> Arduino Dijital Pin 7
    • 3. Buton -> Arduino Dijital Pin 8
    • 4. Buton -> Arduino Dijital Pin 9
    • Her butonun GND tarafına 10k direnç
  3. Buzzer Bağlantısı:
    • Buzzer pozitif (+) ucu -> Arduino Dijital Pin 10
    • Buzzer negatif (-) ucu -> Arduino GND

Arduino Kodu

Aşağıdaki kod, temel bir geri sayım sayacı işlevini yerine getirir. Butonlar ile süreyi ayarlayabilir, başlatıp durdurabilirsiniz. LCD ekran üzerinde kalan süre gösterilir ve süre bittiğinde buzzer çalar.


#include <LiquidCrystal.h>

// LCD pin tanımlamaları
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

// Buton pin tanımlamaları
const int button1Pin = 6; // Süreyi artırma
const int button2Pin = 7; // Süreyi azaltma
const int button3Pin = 8; // Başlat/Durdur
const int button4Pin = 9; // Reset
const int buzzerPin = 10;   // Buzzer pini

int timeLeft = 60;          // Geri sayım süresi (saniye)
bool timerRunning = false;  // Zamanlayıcının çalışıp çalışmadığı

void setup() {
  lcd.begin(16, 2);
  pinMode(button1Pin, INPUT_PULLUP);
  pinMode(button2Pin, INPUT_PULLUP);
  pinMode(button3Pin, INPUT_PULLUP);
  pinMode(button4Pin, INPUT_PULLUP);
  pinMode(buzzerPin, OUTPUT);

  updateDisplay();
}

void loop() {
  if (digitalRead(button1Pin) == LOW) { // Süreyi artır
    timeLeft += 10;
    if (timeLeft > 3600) timeLeft = 3600; // Maksimum 1 saat
    updateDisplay();
    delay(200); // Buton debounce
  }

  if (digitalRead(button2Pin) == LOW) { // Süreyi azalt
    timeLeft -= 10;
    if (timeLeft < 0) timeLeft = 0;
    updateDisplay();
    delay(200); // Buton debounce
  }

  if (digitalRead(button3Pin) == LOW) { // Başlat/Durdur
    timerRunning = !timerRunning;
    delay(200); // Buton debounce
  }
    if (digitalRead(button4Pin) == LOW) { // Reset
    timeLeft = 60;
    timerRunning = false;
    updateDisplay();
    delay(200); // Buton debounce
  }

  if (timerRunning) {
    delay(1000);
    timeLeft--;
    updateDisplay();

    if (timeLeft <= 0) {
      timerRunning = false;
      buzzerAlarm();
      timeLeft = 0; // Süre negatif olmasın
      updateDisplay();
    }
  }
}

void updateDisplay() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Kalan Sure:");
  lcd.setCursor(0, 1);
  lcd.print(timeLeft / 60);
  lcd.print(":");
  if (timeLeft % 60 < 10) lcd.print("0"); // Saniyeyi iki haneli gösterme
  lcd.print(timeLeft % 60);
}

void buzzerAlarm() {
  for (int i = 0; i < 5; i++) {
    tone(buzzerPin, 1000); // 1 kHz ton
    delay(500);
    noTone(buzzerPin);
    delay(500);
  }
}

Bu kodu Arduino IDE'sine kopyalayın ve kartınıza yükleyin.

Kod Açıklaması

  • #include <LiquidCrystal.h>: LCD kütüphanesini projeye dahil eder.
  • LiquidCrystal lcd(rs, en, d4, d5, d6, d7);: LCD ekranın pin bağlantılarını tanımlar.
  • pinMode(buttonPin, INPUT_PULLUP);: Buton pinlerini giriş olarak ayarlar ve dahili pull-up dirençlerini etkinleştirir. Bu, butonlara harici direnç bağlamamıza gerek kalmadan çalışmasını sağlar.
  • updateDisplay(): LCD ekranı günceller ve kalan süreyi gösterir.
  • buzzerAlarm(): Süre bittiğinde buzzer'ı çaldırır.

Projenin Geliştirilmesi

Bu projeyi daha da geliştirmek isterseniz, şunları ekleyebilirsiniz:

  • Farklı alarm sesleri
  • Menü sistemi ile süre ayarlama
  • Bluetooth modülü ile uzaktan kontrol
  • Gerçek zamanlı saat modülü (RTC) ile doğru zaman takibi

Sonuç

Arduino ile akıllı bir geri sayım sayacı yapmak oldukça kolay ve eğlenceli. Bu proje, elektronik ve programlama becerilerinizi geliştirmenize yardımcı olurken, aynı zamanda günlük hayatınızda kullanabileceğiniz pratik bir araç sunar. Umarım bu blog yazısı size ilham vermiştir. Bir sonraki projede görüşmek üzere!

Etiketler: Arduino, geri sayım sayacı, sınav, egzersiz, timer, proje, kod, elektronik, DIY, zamanlayıcı, lcd ekran, buzzer

```