Arduino ve potansiyometre ile kalp atış sesi yapımı I2Cli

Malzemeler 
1 tane Buzzer 
1 tane potansiyometre
1 tane I2C LCD Ekran 0x27
breadboard
arduino uno R3 klon

Şeması




Kodları
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#define POT_PIN A0      // Potansiyometre bağlantı pini
#define SPEAKER_PIN 7   // Hoparlör bağlantı pini

int potValue = 0;      // Potansiyometre değeri
int heartRate = 0;     // Kalp atış hızı

void setup() {
  pinMode(POT_PIN, INPUT);
  pinMode(SPEAKER_PIN, OUTPUT);
  lcd.init();
  lcd.backlight();
}

void loop() {
  // Potansiyometre değerini oku (0-1023 arasında bir değer)
  potValue = analogRead(POT_PIN);
  
  // Potansiyometre değerini kalp atış hızına dönüştür (30-180 arasında bir değer)
  heartRate = map(potValue, 0, 1023, 30, 180);
  
  // Kalp atış hızına bağlı olarak ses çal
  playHeartbeatSound(heartRate); 
}

void playHeartbeatSound(int rate) {
  // Kalp atış hızına bağlı olarak PWM sinyalini ayarla
  int toneValue = map(rate, 30, 180, 100, 1000);
  tone(SPEAKER_PIN, toneValue);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Kalp_Atisi: ");
  lcd.println(heartRate);
  // Kalp atış hızına bağlı olarak bekleme süresini ayarla
  int delayTime = map(rate, 30, 180, 200, 600);
  delay(delayTime);
  
  // Hoparlörü kapat
  noTone(SPEAKER_PIN);
  
  // Bir sonraki atış için biraz bekleyin
  delay(1000 - delayTime);
}

Yorumlar