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

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

```