Arduino ve Kızılötesi Sensör ile Nabzınızı Ölçün

34 3.405

Bu projemizde nabzınızı ölçebileceğiniz basit bir proje yapacağız. Projeyi yaparak arduino ve kızılötesi sensör ile nabzınızı ölçün.Nabzımızın ritmini processing arayüz ile görsel olarak görebileceksiniz.

Malzemeler:

  1. Arduino Uno
  2. LM324 Op Amps
  3. 220k, 29k, 2x68k,8.2k, 1k, 470k, 1.8k  Dirençler
  4. 2n3904 Transistör
  5. Kızılötesi Alıcı Verici Sensör

Elektronik Kısım:

Devre şemasına bakarak amplifikatör devresini yapıyoruz.Sensörün kendisi yan yana monte edilmiş ve cilt üstüne yakın şekilde bastırılabilir, bir kızıl ötesi vericisi ve detektörü kapsamaktadır.Kan basıncı yükselişine göre sensörden ışık yansır.Yansıyan ışık amplifikatör devresine girerek gerilim değişimine neden olur.Oluşan gerilim değişimini analog olarak okuyarak processing ekranında görsel olarak ritim değişikliğini görebileceğiz.

Yazılım Kısmı:

Arduino Yazılımı:

void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(analogRead(0));
}

 

Processing Yazılımı:

import processing.serial.*;
Serial myPort; // The serial port
int xPos = 1; // horizontal position of the graph
float oldHeartrateHeight = 0; // for storing the previous reading
 
void setup () {
// set the window size:
size(600, 400);
frameRate(25);
 
// List available serial ports.
println(Serial.list());
 
// Setup which serial port to use.
// This line might change for different computers.
myPort = new Serial(this, Serial.list()[0], 9600);
 
// set inital background:
background(0);
}
 
void draw () {
}
 
void serialEvent (Serial myPort) {
// read the string from the serial port.
String inString = myPort.readStringUntil('\n');
 
if (inString != null) {
// trim off any whitespace:
inString = trim(inString);
// convert to an int
println(inString);
int currentHeartrate = int(inString);
 
// draw the Heartrate BPM Graph.
float heartrateHeight = map(currentHeartrate, 0, 1023, 0, height);
stroke(0,255,0);
line(xPos - 1, height - oldHeartrateHeight, xPos, height - heartrateHeight);
oldHeartrateHeight = heartrateHeight;
// at the edge of the screen, go back to the beginning:
if (xPos >= width) {
xPos = 0;
background(0);
} else {
// increment the horizontal position:
xPos++;
 
}
}
}

Processing arayüz ile şekildeki gibi nabız ritmimizi göreceğiz.

Arduino ile nabzını söyleyen nabızölçer projemize buradan bakabilirsiniz.

 

Bunlar da İlgini Çekebilir

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

34 Yorum
  1. caner demir

    matlapta bunun kodunu nasıl yazabilirim rica etsem paylaşırmısınız

  2. osman

    merhaba processing i kullanmadan lcd ekrana aktarırken arduını kodu üstteki gibi mi olur yine yani Arduino Yazılımı:

    1
    2
    3
    4
    5
    6
    void setup() {
    Serial.begin(9600);
    }
    void loop() {
    Serial.println(analogRead(0));
    }

  3. Halit

    hocam iyi günler
    bir proje ödevimiz vardı da parmaktan nabız ölçerek arduinoda lcd ekrana bilgiler yazdırıcaz. Burdaki devreyi kurup arduinoda kendi yazılımımızı yapsak ölçüm yapabilir miyiz. Analog bi çıkış değeri var değil mi bu opamplı devrenizin ?

  4. EMRE

    Hocam, kaç gündür bu devreyle uğraşıyorum dediğiniz gibi yaptım delay 50 vs .. yok .Bildiğiniz çıldırttı beni.Destek olursanız gerçekten çok sevinirim hocam mail adresim emreturan@live.nl

  5. EMRE

    Hocam merhaba .. bende verdiğiniz malzeme listesini aldım elemanları ve bağlantıları tekrar tekrar tekrar tekrar kontrol ettim ama sonuç hüsran. Tcrt5000 kullandım ve şema bağlantısı vs herşey listenizdeki malzemeler.Proses programında birşey dikkatimi çekti siyah ekran açılıyor ve altta rakamlar çok hızlı 1023 e kadar sayıp başa dönüyor . proses programında altta console nin yanında ERROR bölümünde ise line 12 de hata gösteriyor. TYPE STRING[] OF THE LAST ARGUMENT TO METHOD PRINTLN(OBJECT…) DOESTN’T EXACTLY MATCH THE VARARG PARAMETER TYPE.CAST TO OBJECT[] T..SKETCH_160316A
    yazıyor . Lütfen yardım ediniz.Proje ödevi olduğu için çok mühim … ücret vs sorun değil hallolsun yeter ..

    1. Sezgin GÜL

      arduino kodunda loop kısmında Serial.println(analogRead(0)); den sonra delay(50); yaz gecikme olsun.
      12. satırda hata almanın sebebi serial portla bağlantısı koptuğundan kaynaklanıyor.

      1. EMRE

        hocam dediğiniz gibi yaptım serial portla bağlantının kopması neden kaynaklanır ? nasıl engellerim ?

        1. Sezgin GÜL

          başka programlar portu meşgul ediyor olabilir yada devrede kısa devre filan oluyordur.

  6. Sezgin GÜL

    devreni kontrol et bence yeniden yap

  7. ENES YILDIZ

    hocam processing 2.2.1 de görüntü aldım ertesi gün çalıştırdığımda ise çok parazit vardı ve nabzı göstermiyordu sadece elimi değdirdiğimde 1 saniyeliğine dalgalanma oluyordu.
    Telefonun kamerası ile devreye baktığımda ır verici led in ışık vermediğini fark ettim verici led i değiştirdim fakat çok sönük yanıyor ve aynı hata devam ediyor,entegre yada başka bi parça bozulmuş olabilirmi?
    çözemedim lütfen yardım edin hocam.

    1. Sezgin GÜL

      arduinonun voltaj sorunundan kaynaklıdır.

      1. ENES YILDIZ

        ne tavsiye edersiniz hocam 7805 ile devreye 5v verip sadece sinyal pininimi arduinoya bağlayayım

        1. Sezgin GÜL

          o şekilde de olabilir

          1. ENES YILDIZ

            Devre arduino nun 5v pinine bağlı iken devreye 4.93v,
            9v pil ve 7805 ile bağlı iken 5.01v devreye giriyor.
            7805 i bağladıktan sonra ır verici led parlak ışık vermeye başladı ama sinyaller hala parazitli ve yine sadece el hareketlerimi gösteriyor.
            Ha bide 5dk içinde pilden 1v eksildi.
            Canım sıkıldı arızayı bulamadım devreyi yeniden yapıcam başka aklınza gelen bozulmuş olabilecek bişey varmı hocam.

  8. Mehmet Ali

    Merhaba
    Hocam bu projenin çalışma prensibini de yazabilir misiniz.
    Yazarsanız çok sevinirim.Teşekkürler.

    1. Sezgin GÜL

      Sensörün çalışma mantığında vericiden gönderilen sinyal alıcıya çeşitli dalga boylarında gelir ki böyle gelmesinin sebebi de damarlardaki kan basıncının değişiminden kaynaklanır. Bu değişimde 0 ile 255 arası değerlere oranlanıp processing programına gönderiliyor. Burada grafiksel olarak ekrana yazdırılıyor.

  9. Mehmet Ali

    Merhaba
    Hocam bu projenin çalışma prensibini de yazabilir misin.
    Yazarsanız çok sevinirim.Teşekkürler.

  10. ENES YILDIZ

    Arkadaşlar processing 3te çalışmıyor bilginize (siyah ekran)

  11. dürdane kılıç

    Processing Kodunda hata veriyor.yardımcı olursanız sevinirim.iyi günler

    1. Sezgin GÜL

      Normalde hata vermiyor. Ne hatası alıyorsunuz ?

  12. Fikriye Küçükömeroğlu

    Processing kodunda background(0); şeklinde belirttiğim kısımda program hata veriyor. Yardımcı olursanız sevinirim.

    1. Sezgin GÜL

      Sorunsuz çalışıyor. Sürüm 2.2.1 de hata vermiyor

  13. Fikriye KÜÇÜKÖMEROĞLU

    Processing kodu hata veriyor. background(0); şeklinde belirttiğim kısımda. Yardımcı olursanız sevinirim.

  14. Enes Yıldız

    Hocam alıcı sensör olarak sb5010 kullandım grafik ekranında hiçbirşey çıkmadı.
    Hatanın sebebi sensör olabilirmi,bu devrenin çalışması için illa tcrt5000 mi gerekli?

    1. Sezgin GÜL

      Alıcı ve verici uyumlu olması gerekir. Aksi halde veri alış verişi olmaz. Ondan kaynaklıdır Projedeki sensörü kullanmanı tavsiye ederim

      1. ENES YILDIZ

        yardımınız için teşekkürler başarılar dilerim

        1. Sezgin GÜL

          rica ederim iyi çalışmalar

  15. BUĞRA KANTAR

    hocam hereyi kurdum ama processing de görüntü alamıyorum calıstır dediğimde siyah pencere açılıyor kodların altında 700lü sayılar kendini tekrar edicek dönüyor ilginiz için çok teesekkür ederim emeğineze sağlık

    1. Sezgin GÜL

      bağlanıtları kontrol et ve arduino yazılımı yüklediğinden emin ol. Kod çalışıyor sorun yok.

  16. BUĞRA KANTAR

    processing yazılımında
    if (xPos >= width) {
    bölümünde hata veriyor ; ü kaldırmak lazım galiba kaldırıncada hata veriyor hocam nasıl çalıtırılabilir?

    1. BUĞRA KANTAR

      programın sonundak else kısmındada sorun var galiba

      1. Sezgin GÜL

        Yazılım düzeltildi.Sorunsuz çalışıyor

  17. BUĞRA KANTAR

    iyi aksamlar hocam bu projede sonuc sadece arayüzdemi alınıyor?

    1. Sezgin GÜL

      İyi akşamlar Buğra,
      Evet.Nabzın ritmini processing de grafik olarak çizdiriyor.