🧠 Arduino IDE ve Alternatifleri: Kurulum ve İlk Kod

🧠 Arduino IDE ve Alternatifleri: Kurulum ve İlk Kod

🧠 Arduino IDE ve Alternatifleri: Kurulum ve İlk Kod

Merhaba sevgili Arduino severler! Bu yazımızda, elektronik projeler dünyasına adım atmanın en temel adımlarından biri olan Arduino IDE kurulumunu ve ilk kodumuzu yazmayı ele alacağız. Ayrıca, Arduino IDE'ye alternatif bazı geliştirme ortamlarına da göz atacağız. Hazırsanız, başlayalım!

Arduino IDE: Nedir ve Neden Kullanmalıyız?

Arduino IDE (Entegre Geliştirme Ortamı), Arduino kartlarımızı programlamak için kullandığımız ücretsiz ve açık kaynaklı bir yazılımdır. Kullanıcı dostu arayüzü sayesinde, hem yeni başlayanlar hem de deneyimli kullanıcılar için ideal bir seçenektir. Arduino IDE ile kod yazabilir, derleyebilir ve Arduino kartımıza yükleyebiliriz.

Arduino IDE Kurulumu

Arduino IDE'yi kurmak oldukça basittir. İşte adım adım kurulum rehberi:

  1. Arduino'nun Resmi Web Sitesini Ziyaret Edin: https://www.arduino.cc/en/software adresine gidin.
  2. İşletim Sistemine Uygun Sürümü İndirin: Windows, macOS veya Linux işletim sisteminize uygun olan sürümü seçerek indirin.
  3. Kurulum Dosyasını Çalıştırın: İndirdiğiniz kurulum dosyasını çalıştırın ve ekrandaki yönergeleri takip edin. Genellikle "Next" (İleri) butonuna tıklayarak ve lisans sözleşmesini kabul ederek kurulumu tamamlayabilirsiniz.
  4. Sürücüleri Yükleyin (Gerekirse): Kurulum tamamlandıktan sonra, Arduino kartınızı bilgisayarınıza bağlayın. Windows kullanıcıları için, Arduino sürücülerinin otomatik olarak yüklenmesi gerekebilir. Eğer sürücüler otomatik olarak yüklenmezse, Arduino IDE'nin kurulu olduğu klasördeki "drivers" klasöründen sürücüleri manuel olarak yükleyebilirsiniz.

İlk Kodumuz: "Hello World" (Blink Örneği)

Her programlama dilinde olduğu gibi, Arduino'da da ilk kodumuz genellikle "Hello World" olarak bilinir. Arduino dünyasındaki "Hello World" karşılığı ise, kart üzerindeki LED'i yakıp söndürmektir (Blink örneği). İşte Blink örneğinin kodu:


 void setup() {
  // LED'in bağlı olduğu pini çıkış olarak ayarla
  pinMode(LED_BUILTIN, OUTPUT);
 }

 void loop() {
  // LED'i yak
  digitalWrite(LED_BUILTIN, HIGH);
  // 1 saniye bekle
  delay(1000);
  // LED'i söndür
  digitalWrite(LED_BUILTIN, LOW);
  // 1 saniye bekle
  delay(1000);
 }
 

Kodun Açıklaması:

  • void setup(): Bu fonksiyon, programın başında sadece bir kez çalışır. Burada, LED'in bağlı olduğu pini (LED_BUILTIN) çıkış olarak ayarlıyoruz.
  • void loop(): Bu fonksiyon, program çalıştığı sürece sürekli olarak tekrar eder. Burada, LED'i yakıp söndürme işlemlerini gerçekleştiriyoruz.
  • digitalWrite(LED_BUILTIN, HIGH): LED'i yakar (pini yüksek voltaja ayarlar).
  • digitalWrite(LED_BUILTIN, LOW): LED'i söndürür (pini düşük voltaja ayarlar).
  • delay(1000): 1000 milisaniye (1 saniye) bekler.

Arduino Kartına Yükleme:

  1. Arduino kartınızı bilgisayarınıza USB kablosu ile bağlayın.
  2. Arduino IDE'de, "Araçlar" menüsünden kartınızı (Örneğin, "Arduino Uno") ve portunuzu (Örneğin, "COM3" veya "/dev/ttyACM0") seçin.
  3. Yukarıdaki kodu Arduino IDE'ye yapıştırın.
  4. "Yükle" butonuna tıklayın (sağ üst köşedeki ok işareti).
  5. Yükleme tamamlandıktan sonra, Arduino kartınız üzerindeki LED'in yanıp söndüğünü göreceksiniz.

Blink Devresi (Harici LED ile)

Eğer dahili LED yerine harici bir LED kullanmak isterseniz, aşağıdaki bağlantıları yapmanız gerekecektir:

  • LED'in uzun bacağı (anot) -> 220 ohm direnç -> Arduino Dijital Pin 13
  • LED'in kısa bacağı (katot) -> Arduino GND

Bu durumda kodunuzda LED_BUILTIN yerine 13 kullanmalısınız:


 void setup() {
  // LED'in bağlı olduğu pini çıkış olarak ayarla
  pinMode(13, OUTPUT);
 }

 void loop() {
  // LED'i yak
  digitalWrite(13, HIGH);
  // 1 saniye bekle
  delay(1000);
  // LED'i söndür
  digitalWrite(13, LOW);
  // 1 saniye bekle
  delay(1000);
 }
 

Arduino IDE Alternatifleri

Arduino IDE, başlangıç için harika bir seçenek olsa da, daha gelişmiş özelliklere ihtiyaç duyan kullanıcılar için bazı alternatifler de bulunmaktadır. İşte bazı popüler Arduino IDE alternatifleri:

  • PlatformIO IDE: Daha gelişmiş bir geliştirme ortamıdır. VS Code, Atom gibi popüler editörlerle entegre çalışabilir. Proje yönetimi, kütüphane yönetimi ve hata ayıklama gibi konularda daha gelişmiş özellikler sunar.
  • Visual Micro: Visual Studio içerisinde Arduino projeleri geliştirmek için bir eklentidir. Visual Studio'nun tüm avantajlarından faydalanmanızı sağlar.
  • Codebender: Web tabanlı bir Arduino IDE'dir. Herhangi bir kurulum gerektirmez ve projelerinizi bulutta saklayabilirsiniz.
  • Tinkercad Circuits: Başlangıç seviyesi için harika bir seçenek. Hem devre tasarımı hem de kod yazma imkanı sunar. Simülasyon özelliği sayesinde, projelerinizi fiziksel olarak kurmadan test edebilirsiniz.

Sonuç

Bu yazımızda, Arduino IDE kurulumunu, ilk kodumuzu yazmayı ve alternatif geliştirme ortamlarını inceledik. Umarız bu bilgiler, Arduino dünyasına adım atmanıza yardımcı olur. Unutmayın, elektronik projeler dünyası sonsuz olasılıklarla dolu! Denemekten, öğrenmekten ve yaratmaktan çekinmeyin!

Etiketler: Arduino, Arduino IDE, Arduino Kurulumu, İlk Kod, Blink, PlatformIO, Visual Micro, Codebender, Tinkercad, Elektronik Projeler, Arduino Dersleri

```

🔌 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

```

LCD Ekranlı Mini Oyun: Tahmin Etmece (Buton Kontrollü)

LCD Ekranlı Mini Oyun: Tahmin Etmece (Buton Kontrollü)

LCD Ekranlı Mini Oyun: Tahmin Etmece (Buton Kontrollü)

Herkese merhaba Arduino severler! Bugün, hem eğlenceli hem de öğretici bir projeye imza atacağız: LCD ekran ve butonlar kullanarak tahmin etmece oyunu geliştireceğiz. Bu proje sayesinde hem LCD ekran kullanımını, hem buton okumayı, hem de temel programlama mantığını pekiştireceğiz. Hazırsanız, malzemeleri hazırlayın ve kodlamaya başlayalım!

Gerekli Malzemeler

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • 16x2 LCD Ekran
  • 3 adet Buton
  • 10K Ohm Direnç (3 adet)
  • 10K Ohm Potansiyometre
  • Breadboard
  • Jumper Kablolar

Devre Şeması

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

  • LCD Ekran Bağlantıları:
    • LCD VSS pin -> Arduino GND
    • LCD VDD pin -> Arduino 5V
    • LCD VO (Contrast) pin -> Potansiyometrenin orta bacağı (Potansiyometrenin diğer iki bacağı 5V ve GND'ye bağlanacak)
    • LCD RS pin -> Arduino Pin 12
    • LCD Enable pin -> Arduino Pin 11
    • LCD D4 pin -> Arduino Pin 5
    • LCD D5 pin -> Arduino Pin 4
    • LCD D6 pin -> Arduino Pin 3
    • LCD D7 pin -> Arduino Pin 2
    • LCD A (Anode) pin -> Arduino 5V (direnç üzerinden bağlanabilir)
    • LCD K (Cathode) pin -> Arduino GND
  • Buton Bağlantıları:
    • Her bir butonun bir bacağı -> Arduino Dijital Pin 8, 9 ve 10 (sırasıyla)
    • Her bir butonun diğer bacağı -> GND (ve 10K Ohm direnç ile Arduino 5V'a pull-up yapılarak)

Açıklama: Butonlar, pull-up dirençler sayesinde normalde HIGH durumunda olacaklar. Butona basıldığında ise LOW sinyali Arduino'ya iletilecek.

Arduino Kodu

Şimdi de kod kısmına geçelim. Aşağıdaki kodu Arduino IDE'sine kopyalayın ve kartınıza yükleyin.


 #include <LiquidCrystal.h>

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

 // Buton pinleri
 const int buttonUpPin = 8;
 const int buttonDownPin = 9;
 const int buttonEnterPin = 10;

 int randomNumber;
 int guess;
 bool gameStarted = false;

 void setup() {
  lcd.begin(16, 2);
  pinMode(buttonUpPin, INPUT_PULLUP);
  pinMode(buttonDownPin, INPUT_PULLUP);
  pinMode(buttonEnterPin, INPUT_PULLUP);

  lcd.print("Tahmin Etmece!");
  lcd.setCursor(0, 1);
  lcd.print("Baslamak icin OK");
  randomSeed(analogRead(A0)); // Rastgele sayı üretimi için seed
 }

 void loop() {
  if (!gameStarted) {
   if (digitalRead(buttonEnterPin) == LOW) {
    startGame();
   }
  } else {
   checkButtons();
   displayGuess();
  }
 }

 void startGame() {
  gameStarted = true;
  randomNumber = random(1, 101); // 1 ile 100 arasında rastgele sayı
  guess = 50; // Başlangıç tahmini
  lcd.clear();
  lcd.print("Tahmin: ");
 }

 void checkButtons() {
  if (digitalRead(buttonUpPin) == LOW) {
   delay(100); // Buton debounce
   if (guess < 100) {
    guess++;
   }
  }
  if (digitalRead(buttonDownPin) == LOW) {
   delay(100); // Buton debounce
   if (guess > 1) {
    guess--;
   }
  }
  if (digitalRead(buttonEnterPin) == LOW) {
   delay(100); // Buton debounce
   checkGuess();
  }
 }

 void displayGuess() {
  lcd.setCursor(8, 0);
  lcd.print(guess);
  lcd.print("  "); // Sayıyı temizlemek için
 }

 void checkGuess() {
  if (guess == randomNumber) {
   lcd.clear();
   lcd.print("Tebrikler!");
   lcd.setCursor(0, 1);
   lcd.print("Bildiniz!");
   delay(2000);
   gameStarted = false;
   lcd.clear();
   lcd.print("Tekrar icin OK");
   lcd.setCursor(0, 1);
   lcd.print("Basin");


  } else if (guess < randomNumber) {
   lcd.clear();
   lcd.print("Daha Yuksek!");
   delay(1000);
   lcd.clear();
   lcd.print("Tahmin: ");
  } else {
   lcd.clear();
   lcd.print("Daha Dusuk!");
   delay(1000);
   lcd.clear();
   lcd.print("Tahmin: ");
  }
 }
 

Kodun Açıklaması

  • LiquidCrystal Kütüphanesi: LCD ekranı kullanabilmek için gerekli olan kütüphane.
  • Pin Tanımlamaları: LCD ve butonların bağlı olduğu pinler tanımlanıyor.
  • setup() Fonksiyonu: LCD ekran başlatılıyor, buton pinleri giriş olarak ayarlanıyor ve rastgele sayı üretimi için bir başlangıç değeri (seed) belirleniyor.
  • loop() Fonksiyonu: Oyunun ana döngüsü. Oyun başlamadıysa, "OK" butonuna basılmasını bekliyor. Oyun başladıysa, butonları kontrol ediyor ve tahmini ekrana yazdırıyor.
  • startGame() Fonksiyonu: Oyunu başlatıyor, rastgele bir sayı üretiyor ve ilk tahmini ayarlıyor.
  • checkButtons() Fonksiyonu: Butonlara basılıp basılmadığını kontrol ediyor.
  • displayGuess() Fonksiyonu: Mevcut tahmini LCD ekrana yazdırıyor.
  • checkGuess() Fonksiyonu: Tahminin doğru olup olmadığını kontrol ediyor ve kullanıcıya geri bildirim veriyor.

Oyunun Oynanışı

  1. Arduino'yu bilgisayarınıza bağlayın ve kodu yükleyin.
  2. LCD ekranda "Tahmin Etmece!" yazısı belirecek.
  3. Oyunu başlatmak için "OK" butonuna basın.
  4. Yukarı ve aşağı butonlarını kullanarak tahmininizi ayarlayın.
  5. Tahmininizden eminseniz, "OK" butonuna basın.
  6. Eğer tahmininiz doğruysa, "Tebrikler!" yazısı belirecek. Değilse, "Daha Yüksek!" veya "Daha Düşük!" uyarıları alacaksınız.
  7. Tekrar oynamak için "OK" butonuna basın.

İpuçları ve Geliştirme Fikirleri

  • Oyuna bir zorluk seviyesi ekleyebilirsiniz (örneğin, daha geniş bir sayı aralığı).
  • Oyuna bir can sayısı ekleyebilirsiniz (örneğin, kullanıcı 5 hakkı olduğunda kaybedecek).
  • LCD ekranda kalan can sayısını gösterebilirsiniz.
  • Skor tablosu ekleyerek en iyi skorları saklayabilirsiniz.

Umarım bu proje sizin için faydalı olmuştur. İyi eğlenceler ve kodlamalar!

Etiketler: Arduino, LCD, Buton, Tahmin Etmece, Oyun, Proje, Elektronik, Kodlama, Hobi, Öğrenme

```

Arduino ile Uyan: Titreşimli Bileklik Alarm Sistemi

Arduino ile Uyan: Titreşimli Bileklik Alarm Sistemi

Arduino ile Uyan: Titreşimli Bileklik Alarm Sistemi

Günaydın arkadaşlar! Bugün sizlere Arduino kullanarak nasıl titreşimli bir bileklik alarm sistemi yapacağımızı anlatacağım. Bu proje, özellikle sabahları uyanmakta zorlananlar veya sessiz bir alarm arayanlar için harika bir çözüm olabilir. Gelin, adım adım bu projeyi nasıl hayata geçirebileceğimize birlikte bakalım.

Proje Amacı

Amacımız, belirlenen saatte titreşim motorunu çalıştırarak kullanıcıyı uyandırmak. Bu sayede, hem gürültüsüz bir alarm elde edeceğiz, hem de Arduino'nun potansiyelini kullanarak eğlenceli bir proje geliştirmiş olacağız.

Gerekli Malzemeler

İşte projemiz için ihtiyacımız olan malzemeler:

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • Titreşim motoru
  • DS3231 Gerçek Zaman Saati (RTC) modülü
  • 16x2 LCD ekran (isteğe bağlı, saat bilgisini göstermek için)
  • Buton (alarmı ayarlamak için)
  • 10k ohm direnç (butona bağlamak için)
  • Jumper kablolar
  • Bileklik (Titreşim motorunu ve diğer komponentleri sabitlemek için)

Devre Şeması

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

  • Titreşim Motoru:
    • Titreşim Motoru (+) -> Arduino Dijital Pin 8
    • Titreşim Motoru (-) -> Arduino GND
  • DS3231 RTC Modülü:
    • RTC VCC -> Arduino 5V
    • RTC GND -> Arduino GND
    • RTC SDA -> Arduino A4 (SDA)
    • RTC SCL -> Arduino A5 (SCL)
  • LCD Ekran (isteğe bağlı):
    • LCD VSS -> Arduino GND
    • LCD VDD -> Arduino 5V
    • LCD VO -> Potansiyometre orta bacağı (kontrast ayarı için)
    • LCD RS -> Arduino Dijital Pin 12
    • LCD EN -> Arduino Dijital Pin 11
    • LCD D4 -> Arduino Dijital Pin 5
    • LCD D5 -> Arduino Dijital Pin 4
    • LCD D6 -> Arduino Dijital Pin 3
    • LCD D7 -> Arduino Dijital Pin 2
    • LCD A -> Arduino 5V (direnç üzerinden)
    • LCD K -> Arduino GND
  • Buton:
    • Buton bir bacağı -> Arduino Dijital Pin 9
    • Buton diğer bacağı -> Arduino 5V (10k ohm direnç ile GND'ye çekilir)

Arduino Kodu

Şimdi de Arduino kodumuzu inceleyelim. Bu kod, RTC modülünden saat bilgisini alacak, belirlenen alarm saatine ulaşıldığında titreşim motorunu çalıştıracak ve LCD ekranda (isteğe bağlı) saat bilgisini gösterecektir.


#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal.h> // LCD ekran kullanıyorsanız bu kütüphaneyi ekleyin

// RTC modülü için nesne oluştur
RTC_DS3231 rtc;

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

// Titreşim motoru pini
const int vibrationPin = 8;

// Buton pini
const int buttonPin = 9;

// Alarm saati
int alarmHour = 7;
int alarmMinute = 0;

void setup() {
  Serial.begin(9600);

  // RTC modülünü başlat
  if (! rtc.begin()) {
    Serial.println("RTC bulunamadı!");
    while (1);
  }

  // LCD ekranı başlat (isteğe bağlı)
  lcd.begin(16, 2);
  lcd.print("Titreşimli Alarm");

  // Titreşim motoru pinini çıkış olarak ayarla
  pinMode(vibrationPin, OUTPUT);

  // Buton pinini giriş olarak ayarla ve pull-up direncini etkinleştir
  pinMode(buttonPin, INPUT_PULLUP);

  // İlk alarm saatini ayarla (isteğe bağlı)
  // rtc.adjust(DateTime(2024, 10, 27, 7, 0, 0)); // Yıl, Ay, Gün, Saat, Dakika, Saniye
}

void loop() {
  // Saat bilgisini al
  DateTime now = rtc.now();

  // Saat bilgisini seri port ekranında göster (isteğe bağlı)
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.day(), DEC);
  Serial.print(" (");
  Serial.print(dayStr(now.dayOfTheWeek()));
  Serial.print(") ");
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.println(now.second(), DEC);

  // Saat bilgisini LCD ekranda göster (isteğe bağlı)
  lcd.setCursor(0, 1);
  lcd.print(now.hour());
  lcd.print(":");
  if (now.minute() < 10) {
    lcd.print("0");
  }
  lcd.print(now.minute());
  lcd.print(":");
  if (now.second() < 10) {
    lcd.print("0");
  }
  lcd.print(now.second());

  // Alarm kontrolü
  if (now.hour() == alarmHour && now.minute() == alarmMinute && now.second() == 0) {
    // Alarmı çal (titreşim motorunu çalıştır)
    Serial.println("Alarm Çalıyor!");
    digitalWrite(vibrationPin, HIGH);
    delay(5000); // 5 saniye titreşim
    digitalWrite(vibrationPin, LOW);

    // Butona basılana kadar bekle
    while (digitalRead(buttonPin) == HIGH) {
      delay(100);
    }
    Serial.println("Alarm Susturuldu!");
  }

  delay(1000);
}

// Gün isimlerini döndüren fonksiyon
char* dayStr(int day) {
  switch (day) {
    case 0: return "Pazar";
    case 1: return "Pazartesi";
    case 2: return "Salı";
    case 3: return "Çarşamba";
    case 4: return "Perşembe";
    case 5: return "Cuma";
    case 6: return "Cumartesi";
    default: return "Bilinmiyor";
  }
}

Kodu Açıklayalım

  • Kütüphaneler: `Wire.h` (I2C iletişimi için), `RTClib.h` (RTC modülü için), `LiquidCrystal.h` (LCD ekran için).
  • Pin Tanımlamaları: Kullanılan pinlerin tanımları yapılıyor.
  • RTC Başlatma: `setup()` fonksiyonunda RTC modülü başlatılıyor ve eğer bulunamazsa hata mesajı veriliyor.
  • LCD Başlatma: Eğer LCD kullanılıyorsa, LCD ekran başlatılıyor.
  • Alarm Kontrolü: `loop()` fonksiyonunda sürekli olarak saat bilgisi kontrol ediliyor ve alarm saatine ulaşıldığında titreşim motoru çalıştırılıyor.
  • Buton Kontrolü: Alarm çaldıktan sonra butona basılana kadar bekleniyor ve butona basıldığında alarm susturuluyor.

Proje Uygulaması ve İpuçları

Projeyi bilekliğe monte ederken, titreşim motorunun cilde temas etmesini sağlayın. Bu, titreşimin daha iyi hissedilmesini sağlayacaktır. Ayrıca, kabloların sağlam bir şekilde bağlandığından emin olun. Pil ömrünü uzatmak için, Arduino'nun uyku modunu kullanabilirsiniz.

Bu proje, Arduino ile basit bir alarm sistemi yapmanın güzel bir örneği. Umarım beğenirsiniz ve kendi projelerinizde kullanırsınız. Başarılar dilerim!

Etiketler: Arduino, Titreşimli Bileklik, Alarm, RTC, DS3231, Proje, Elektronik, Hobi, Öğrenci, DIY, Titreşim Motoru, Saat, Alarm Sistemi

```

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 severler!

Bugün sizlere, özellikle sınavlara hazırlanan öğrenciler ve düzenli egzersiz yapmak isteyenler için hayat kurtarıcı olabilecek bir projeyi tanıtacağım: Arduino ile Akıllı Geri Sayım Sayacı. Bu proje sayesinde, sınav sürelerinizi hassas bir şekilde takip edebilir, egzersiz aralıklarınızı kolayca kontrol edebilir ve zamanı daha verimli kullanabilirsiniz. Gelin, bu projeyi adım adım nasıl oluşturacağımıza birlikte bakalım.

Neden Akıllı Bir Geri Sayım Sayacına İhtiyacımız Var?

Geri sayım sayaçları, odaklanmayı ve zamanı yönetmeyi kolaylaştıran basit ama etkili araçlardır. Özellikle:

  • Sınavlara hazırlıkta: Deneme sınavlarını çözerken gerçek sınav süresini simüle etmek, sınav stresini azaltmaya yardımcı olur.
  • Egzersizlerde: Isınma, setler arası dinlenme ve soğuma sürelerini kontrol etmek, antrenman verimliliğini artırır.
  • Sunumlarda: Konuşma süresini aşmamak için.
  • Yemek pişirirken: Pişirme sürelerini hassas bir şekilde takip etmek için.

İşte bu akıllı sayaç tam da bu ihtiyaçları karşılamak için tasarlandı!

Gerekli Malzemeler

Bu projeyi gerçekleştirmek için aşağıdaki malzemelere ihtiyacınız olacak:

  • 1 adet Arduino Uno (veya benzeri bir Arduino kartı)
  • 1 adet 16x2 LCD Ekran
  • 1 adet Potansiyometre (LCD ekran kontrastını ayarlamak için)
  • 3 adet Buton (Başlat/Durdur, Arttır, Azalt)
  • 3 adet 10k Ohm Direnç (Butonlar için)
  • Jumper Kablolar
  • Breadboard

Devre Şeması ve Bağlantılar

Devreyi kurarken aşağıdaki bağlantıları dikkatlice yapın:

  • LCD Ekran Bağlantıları:
    • LCD RS pini -> Arduino Dijital Pin 12
    • LCD Enable pini -> Arduino Dijital Pin 11
    • LCD D4 pini -> Arduino Dijital Pin 5
    • LCD D5 pini -> Arduino Dijital Pin 4
    • LCD D6 pini -> Arduino Dijital Pin 3
    • LCD D7 pini -> Arduino Dijital Pin 2
    • LCD RW pini -> GND (Toprak)
    • LCD VSS pini -> GND (Toprak)
    • LCD VDD pini -> Arduino 5V
    • LCD A pini (Arka Işık Anot) -> Arduino 5V (100-220 Ohm direnç ile)
    • LCD K pini (Arka Işık Katot) -> GND (Toprak)
  • Potansiyometre Bağlantısı:
    • Potansiyometrenin bir ucu -> Arduino 5V
    • Potansiyometrenin diğer ucu -> GND (Toprak)
    • Potansiyometrenin orta ucu -> LCD VO (Kontrast) pini
  • Buton Bağlantıları:
    • Başlat/Durdur Butonu -> Arduino Dijital Pin 8 (10k Ohm direnç ile GND'ye)
    • Arttır Butonu -> Arduino Dijital Pin 9 (10k Ohm direnç ile GND'ye)
    • Azalt Butonu -> Arduino Dijital Pin 10 (10k Ohm direnç ile GND'ye)

Arduino Kodu

Aşağıdaki Arduino kodunu kullanarak geri sayım sayacımızı programlayabiliriz:


 #include <LiquidCrystal.h>

 // 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);

 // Buton pinlerini tanımla
 const int startStopButton = 8;
 const int increaseButton = 9;
 const int decreaseButton = 10;

 // Değişkenler
 int seconds = 0;
 int minutes = 0;
 bool isRunning = false;

 void setup() {
  // LCD'yi başlat
  lcd.begin(16, 2);
  lcd.print("Geri Sayim");
  lcd.setCursor(0, 1);
  lcd.print("Baslamak Icin");
  delay(2000);
  lcd.clear();

  // Buton pinlerini giriş olarak ayarla ve dahili pull-up dirençlerini etkinleştir
  pinMode(startStopButton, INPUT_PULLUP);
  pinMode(increaseButton, INPUT_PULLUP);
  pinMode(decreaseButton, INPUT_PULLUP);

  // Seri iletişimi başlat (isteğe bağlı, hata ayıklama için)
  Serial.begin(9600);
 }

 void loop() {
  // Buton durumlarını oku
  int startStopState = digitalRead(startStopButton);
  int increaseState = digitalRead(increaseButton);
  int decreaseState = digitalRead(decreaseButton);

  // Başlat/Durdur butonu
  if (startStopState == LOW) {
   isRunning = !isRunning;
   delay(200); // Buton sekmelerini engellemek için kısa bir gecikme
  }

  // Arttır butonu
  if (increaseState == LOW) {
   if (minutes < 59) {
     minutes++;
   } else {
    minutes = 0;
   }
   delay(200);
  }

  // Azalt butonu
  if (decreaseState == LOW) {
   if(minutes > 0) {
      minutes--;
   } else {
      minutes = 59;
   }

   delay(200);
  }

  // Geri sayım işlemi
  if (isRunning) {
   displayTime();
   delay(1000); // 1 saniye bekle
   seconds--;

   if (seconds < 0) {
    seconds = 59;
    minutes--;

    if (minutes < 0) {
     minutes = 0;
     seconds = 0;
     isRunning = false;
     lcd.clear();
     lcd.print("Sure Bitti!");
     delay(2000);
     lcd.clear();
    }
   }
  } else {
   // Sayaç durduğunda saati göster
   displayTime();
  }
 }

 // Zamanı LCD'ye yazdıran fonksiyon
 void displayTime() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Kalan Sure:");
  lcd.setCursor(0, 1);
  if (minutes < 10) {
   lcd.print("0");
  }
  lcd.print(minutes);
  lcd.print(":");
  if (seconds < 10) {
   lcd.print("0");
  }
  lcd.print(seconds);
 }
 

Kodu Açıklayalım

  • #include <LiquidCrystal.h>: LCD kütüphanesini projeye dahil eder.
  • Pin tanımlamaları: LCD ekran ve butonların Arduino üzerindeki pin bağlantılarını belirtir.
  • LiquidCrystal lcd(...): LCD ekran nesnesini oluşturur.
  • setup() fonksiyonu: LCD'yi başlatır, buton pinlerini giriş olarak ayarlar ve seri iletişimi başlatır (isteğe bağlı).
  • loop() fonksiyonu: Sürekli olarak buton durumlarını okur, geri sayım işlemini gerçekleştirir ve zamanı LCD ekrana yazdırır.
  • displayTime() fonksiyonu: Kalan süreyi LCD ekrana yazdırmak için kullanılır.

Projenin Kullanımı

  1. Devreyi kurun ve kodu Arduino'ya yükleyin.
  2. Potansiyometreyi kullanarak LCD ekranın kontrastını ayarlayın.
  3. Arttır ve Azalt butonlarını kullanarak başlangıç süresini belirleyin.
  4. Başlat/Durdur butonuna basarak geri sayımı başlatın veya durdurun.
  5. Geri sayım bittiğinde LCD ekranda "Süre Bitti!" mesajı görünecektir.

Geliştirme İpuçları

  • Sesli Alarm: Geri sayım bittiğinde bir buzzer ile sesli alarm çalabilirsiniz.
  • Farklı Modlar: Sınav modu, egzersiz modu gibi farklı modlar ekleyebilirsiniz.
  • Bluetooth Kontrolü: Bluetooth modülü ile sayacı akıllı telefonunuzdan kontrol edebilirsiniz.
  • Daha Büyük Ekran: Daha büyük bir LCD ekran veya bir LED matris kullanarak daha görünür bir sayaç yapabilirsiniz.

Umarım bu proje size ilham verir ve Arduino dünyasına keyifli bir adım atmanızı sağlar. Unutmayın, elektronik projeler deneme yanılma yoluyla öğrenilir. Başarılar dilerim!

Etiketler: arduino, geri sayım sayacı, sınav, egzersiz, lcd, proje, elektronik, kod, eğitim

```

Arduino ile Sesle Kontrol Edilebilen Lamba Sistemi (Arduino + Ses Sensörü)

Arduino ile Sesle Kontrol Edilebilen Lamba Sistemi (Arduino + Ses Sensörü)

Arduino ile Sesle Kontrol Edilebilen Lamba Sistemi (Arduino + Ses Sensörü)

Merhaba sevgili Arduino meraklıları!

Bu yazımızda, Arduino kullanarak sesle kontrol edilebilen basit bir lamba sistemi geliştireceğiz. Bu proje hem yeni başlayanlar için harika bir başlangıç noktası olacak, hem de daha deneyimli kullanıcılar için ilham verici bir fikir olabilir. Projemiz, bir ses sensörü ve bir Arduino kartı kullanarak, belirli bir ses komutu algılandığında lambayı açıp kapatacak.

Gerekli Malzemeler

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • Ses Sensörü Modülü (KY-038 veya benzeri)
  • LED Lamba (veya bir röle ile kontrol edilebilen bir lamba devresi)
  • 220 Ohm Direnç (LED için)
  • Jumper Kablolar

Devre Şeması ve Bağlantılar

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

  • Ses Sensörü VCC pini -> Arduino 5V pinine
  • Ses Sensörü GND pini -> Arduino GND pinine
  • Ses Sensörü OUT pini -> Arduino Dijital 2 numaralı pinine
  • LED'in anot (+) bacağı -> 220 Ohm direnç üzerinden Arduino Dijital 13 numaralı pinine
  • LED'in katot (-) bacağı -> Arduino GND pinine

Eğer daha güçlü bir lamba kullanmak isterseniz, LED yerine bir röle modülü kullanarak lambanızı kontrol edebilirsiniz. Röle bağlantıları için röle modülünüzün kullanım kılavuzuna başvurmanız önemlidir.

Arduino Kodu

Şimdi de Arduino kartımıza yükleyeceğimiz kodu inceleyelim:


// Pin tanımlamaları
const int sesSensoruPin = 2;   // Ses sensörünün bağlandığı pin
const int ledPin = 13;         // LED'in bağlandığı pin

// Değişkenler
int sesDegeri = 0;          // Ses sensöründen okunan değer
bool lambaDurumu = false;    // Lambanın açık/kapalı durumu

void setup() {
  // Pin modlarını ayarla
  pinMode(sesSensoruPin, INPUT);
  pinMode(ledPin, OUTPUT);

  // Seri haberleşmeyi başlat (debug için)
  Serial.begin(9600);
}

void loop() {
  // Ses sensöründen değeri oku
  sesDegeri = digitalRead(sesSensoruPin);

  // Eğer ses algılandıysa (sesDegeri LOW ise)
  if (sesDegeri == LOW) {
    Serial.println("Ses Algilandi!"); // Seri port ekranına yazdır

    // Lambanın durumunu tersine çevir
    lambaDurumu = !lambaDurumu;

    // Lambayı aç veya kapat
    digitalWrite(ledPin, lambaDurumu);

    // Kısa bir gecikme ile durumu sabitle
    delay(500);
  }
}

Bu kodu Arduino IDE'sine kopyalayıp, kartınıza yükleyin. Kod, ses sensöründen gelen veriyi sürekli olarak okur. Ses algılandığında (sensörden LOW sinyali geldiğinde), lambanın durumunu tersine çevirir (açıksa kapatır, kapalıysa açar). Serial.println komutu, seri port ekranında "Ses Algilandi!" mesajını gösterir. Bu sayede projenizin doğru çalışıp çalışmadığını kontrol edebilirsiniz.

Kodun Açıklaması

  • `const int sesSensoruPin = 2;` ve `const int ledPin = 13;`: Ses sensörünün ve LED'in Arduino kartında bağlandığı pinleri tanımlar.
  • `int sesDegeri = 0;` ve `bool lambaDurumu = false;`: Ses sensöründen okunan değeri ve lambanın mevcut durumunu (açık/kapalı) saklamak için kullanılan değişkenlerdir.
  • `pinMode(sesSensoruPin, INPUT);` ve `pinMode(ledPin, OUTPUT);`: Belirtilen pinlerin giriş (ses sensörü) veya çıkış (LED) olarak ayarlanmasını sağlar.
  • `sesDegeri = digitalRead(sesSensoruPin);`: Ses sensöründen dijital bir değer okur (HIGH veya LOW).
  • `if (sesDegeri == LOW)`: Eğer ses sensöründen LOW sinyali gelirse (yani ses algılandıysa) koşulunu kontrol eder. Çoğu ses sensörü, ses algıladığında LOW sinyali verir.
  • `lambaDurumu = !lambaDurumu;`: Lambanın mevcut durumunu tersine çevirir (TRUE ise FALSE, FALSE ise TRUE yapar).
  • `digitalWrite(ledPin, lambaDurumu);`: LED'i (veya röle üzerinden lambayı) açar veya kapatır.
  • `delay(500);`: Durumu sabitlemek için kısa bir gecikme ekler (yarım saniye). Bu, lambanın çok hızlı bir şekilde açılıp kapanmasını engeller.

Projenin Çalışması

Devreyi kurup kodu yükledikten sonra, ses sensörüne yakın bir yerde (örneğin, elinizi çırparak veya belirli bir kelime söyleyerek) ses çıkarın. Sensör sesi algıladığında, lamba açılacak veya kapanacaktır. Ses komutunuzun net ve yüksek olduğundan emin olun.

Geliştirme Fikirleri

  • Farklı ses komutları için farklı lambaları kontrol edebilirsiniz.
  • Ses sensörünün hassasiyetini potansiyometre ile ayarlayabilirsiniz.
  • Bluetooth modülü ekleyerek, lambayı akıllı telefonunuzdan kontrol edebilirsiniz.
  • Ev otomasyonu sisteminize entegre edebilirsiniz.

Umarım bu proje size Arduino dünyasına güzel bir giriş yapmanız için yardımcı olur. Herhangi bir sorunuz olursa, yorumlarda belirtmekten çekinmeyin. İyi kodlamalar!

Etiketler: arduino, ses sensörü, lamba kontrolü, elektronik, proje, kendinyap, otomasyon, sesle kontrol

```

Arduino ile Hava Durumu İstasyonu: Sıcaklık, Nem ve Basınç Ölçümü

Arduino ile Hava Durumu İstasyonu: Sıcaklık, Nem ve Basınç Ölçümü

Arduino ile Hava Durumu İstasyonu: Sıcaklık, Nem ve Basınç Ölçümü

Merhaba sevgili Arduino severler!

Bu yazımızda, Arduino kullanarak basit ama etkili bir hava durumu istasyonu kurmayı öğreneceğiz. Bu istasyon sayesinde ortam sıcaklığını, nemini ve basıncını ölçebilecek ve bu verileri bir LCD ekranda görüntüleyebileceğiz. Projemiz özellikle hava durumuyla ilgilenen öğrenciler ve hobi amaçlı projeler geliştirmek isteyenler için ideal. Hadi başlayalım!

Gerekli Malzemeler

  • Arduino Uno (veya uyumlu bir kart)
  • BMP180 veya BMP280 Barometrik Basınç Sensörü (sıcaklık da ölçer)
  • DHT11 veya DHT22 Sıcaklık ve Nem Sensörü
  • 16x2 LCD Ekran
  • I2C LCD Adaptörü (isteğe bağlı, kablolamayı kolaylaştırır)
  • Jumper Kabloları
  • Breadboard (isteğe bağlı, prototip için kullanışlı)

Kablolama

Sensörleri ve LCD ekranı Arduino'ya nasıl bağlayacağımızı adım adım inceleyelim:

DHT11/DHT22 Bağlantısı:

  • DHT11/DHT22 VCC pini -> Arduino 5V
  • DHT11/DHT22 DATA pini -> Arduino Dijital Pin 2 (veya istediğiniz bir dijital pin)
  • DHT11/DHT22 GND pini -> Arduino GND

BMP180/BMP280 Bağlantısı:

Eğer I2C kullanıyorsanız (önerilir):

  • BMP180/BMP280 VIN pini -> Arduino 3.3V veya 5V (sensörün spesifikasyonuna bakın)
  • BMP180/BMP280 GND pini -> Arduino GND
  • BMP180/BMP280 SDA pini -> Arduino A4 (SDA)
  • BMP180/BMP280 SCL pini -> Arduino A5 (SCL)

Eğer SPI kullanıyorsanız, sensörün dökümantasyonuna göre bağlantıları yapın.

LCD Ekran Bağlantısı (I2C ile):

  • LCD VCC pini -> Arduino 5V
  • LCD GND pini -> Arduino GND
  • LCD SDA pini -> Arduino A4 (SDA)
  • LCD SCL pini -> Arduino A5 (SCL)

Arduino Kodu

Şimdi de Arduino kodunu inceleyelim. Bu kod, sensörlerden verileri okuyacak ve LCD ekrana yazdıracak:


 #include <Wire.h>
 #include <LiquidCrystal_I2C.h>
 #include <DHT.h>
 #include <Adafruit_BMP280.h>

 #define DHTPIN 2     // DHT veri pini
 #define DHTTYPE DHT11   // DHT modeli (DHT11, DHT22, DHT21)

 DHT dht(DHTPIN, DHTTYPE);
 Adafruit_BMP280 bmp; // I2C

 LiquidCrystal_I2C lcd(0x27, 16, 2);  // LCD adresini kontrol edin, gerekirse değiştirin.

 void setup() {
  Serial.begin(9600);
  lcd.init();
  lcd.backlight();
  dht.begin();
  if (!bmp.begin(0x76)) { // BMP280 adresini kontrol edin, gerekirse değiştirin.
    Serial.println(F("BMP280 bulunamadı, bağlantıları kontrol edin!"));
    while (1) delay(10);
  }
  Serial.println(F("BMP280 bulundu!"));
}

 void loop() {
  // Sensörlerden veri okuma
  float sicaklik = dht.readTemperature();
  float nem = dht.readHumidity();
  float basin = bmp.readPressure() / 100.0F;  // HPa cinsinden basınç

  // Veri kontrolü
  if (isnan(sicaklik) || isnan(nem) || isnan(basin)) {
    Serial.println(F("Sensör okuma hatası!"));
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Hata!");
    delay(2000);
    return;
  }

  // LCD ekrana yazdırma
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Sicaklik: ");
  lcd.print(sicaklik);
  lcd.print(" C");

  lcd.setCursor(0, 1);
  lcd.print("Nem: ");
  lcd.print(nem);
  lcd.print(" %  Basin: ");
  lcd.print(basin);
  lcd.print(" hPa");

  // Seri port'a yazdırma (isteğe bağlı)
  Serial.print("Sicaklik: ");
  Serial.print(sicaklik);
  Serial.print(" C, Nem: ");
  Serial.print(nem);
  Serial.print(" %, Basin: ");
  Serial.print(basin);
  Serial.println(" hPa");

  delay(2000); // 2 saniyede bir ölçüm yap
 }
 

Kod Açıklaması

  • Kütüphaneler: Gerekli kütüphaneler (`Wire.h`, `LiquidCrystal_I2C.h`, `DHT.h`, `Adafruit_BMP280.h`) eklenir.
  • Pin Tanımları: DHT sensörünün bağlı olduğu pin numarası ve DHT sensörünün modeli tanımlanır.
  • Nesne Oluşturma: DHT, BMP280 ve LCD nesneleri oluşturulur. LCD adresini kontrol etmeyi unutmayın (genellikle 0x27 veya 0x3F).
  • `setup()` Fonksiyonu: Seri port başlatılır, LCD başlatılır ve arka ışığı açılır, DHT sensörü başlatılır ve BMP280 sensörü başlatılır. BMP280 sensörünün bulunup bulunmadığı kontrol edilir.
  • `loop()` Fonksiyonu:
    • Sensörlerden sıcaklık, nem ve basınç değerleri okunur.
    • Okunan verilerin geçerli olup olmadığı kontrol edilir (`isnan()`).
    • Veriler LCD ekrana yazdırılır.
    • Veriler seri porta (isteğe bağlı) yazdırılır.
    • 2 saniye beklenir.

Ek Bilgiler ve İpuçları

  • LCD Adresi: LCD ekranınızın adresini bulmak için I2C tarayıcı kodu kullanabilirsiniz.
  • Sensör Seçimi: DHT11 daha ucuzdur ancak DHT22 daha hassas ölçümler yapar. BMP180 ve BMP280 de benzer şekilde farklı hassasiyetlere sahiptir.
  • Kalibrasyon: Daha doğru sonuçlar için sensörleri kalibre edebilirsiniz.
  • Geliştirme: Bu projeyi daha da geliştirmek için, verileri bir SD karta kaydedebilir, bir web sunucusuna gönderebilir veya bir grafik arayüzü oluşturabilirsiniz.

Umarım bu proje size ilham verir ve Arduino ile hava durumu istasyonu kurma konusunda yardımcı olur. Herhangi bir sorunuz olursa, yorumlarda sormaktan çekinmeyin!

Bol projeli günler!

Etiketler: arduino, hava durumu istasyonu, sıcaklık, nem, basınç, bmp180, bmp280, dht11, dht22, lcd, i2c, sensör, proje, elektronik, hobi

```