Arduino ve Kızılötesi Sensör ile Nabzınızı Ölçün
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:
- Arduino Uno
- LM324 Op Amps
- 220k, 29k, 2x68k,8.2k, 1k, 470k, 1.8k Dirençler
- 2n3904 Transistör
- 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.
matlapta bunun kodunu nasıl yazabilirim rica etsem paylaşırmısınız
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));
}
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 ?
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
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 ..
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.
hocam dediğiniz gibi yaptım serial portla bağlantının kopması neden kaynaklanır ? nasıl engellerim ?
başka programlar portu meşgul ediyor olabilir yada devrede kısa devre filan oluyordur.
devreni kontrol et bence yeniden yap
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.
arduinonun voltaj sorunundan kaynaklıdır.
ne tavsiye edersiniz hocam 7805 ile devreye 5v verip sadece sinyal pininimi arduinoya bağlayayım
o şekilde de olabilir
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.
Merhaba
Hocam bu projenin çalışma prensibini de yazabilir misiniz.
Yazarsanız çok sevinirim.Teşekkürler.
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.
Merhaba
Hocam bu projenin çalışma prensibini de yazabilir misin.
Yazarsanız çok sevinirim.Teşekkürler.
Arkadaşlar processing 3te çalışmıyor bilginize (siyah ekran)
Processing Kodunda hata veriyor.yardımcı olursanız sevinirim.iyi günler
Normalde hata vermiyor. Ne hatası alıyorsunuz ?
Processing kodunda background(0); şeklinde belirttiğim kısımda program hata veriyor. Yardımcı olursanız sevinirim.
Sorunsuz çalışıyor. Sürüm 2.2.1 de hata vermiyor
Processing kodu hata veriyor. background(0); şeklinde belirttiğim kısımda. Yardımcı olursanız sevinirim.
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?
Alıcı ve verici uyumlu olması gerekir. Aksi halde veri alış verişi olmaz. Ondan kaynaklıdır Projedeki sensörü kullanmanı tavsiye ederim
yardımınız için teşekkürler başarılar dilerim
rica ederim iyi çalışmalar
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
bağlanıtları kontrol et ve arduino yazılımı yüklediğinden emin ol. Kod çalışıyor sorun yok.
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?
programın sonundak else kısmındada sorun var galiba
Yazılım düzeltildi.Sorunsuz çalışıyor
iyi aksamlar hocam bu projede sonuc sadece arayüzdemi alınıyor?
İyi akşamlar Buğra,
Evet.Nabzın ritmini processing de grafik olarak çizdiriyor.