Keyestudio Parmak Probu Kalp Hızı Nabız Monitör Sensör Modülü
Keyestudio Parmak Probu Kalp Hızı Nabız Monitör Sensör Modülü
Bu modül, parmak nabzınızı tespit etmek için ultra-parlak bir kızılötesi LED ve bir fototransistör kullanır. Kırmızı LED daha sonra nabzınızla eş zamanlı yanıp söner. Çalışma Prensibi: Parmağınızın diğer tarafındaki fototransistör iletilen ışığın miktarını alırken parlak LED'i parmağınızın bir tarafına doğru tutun. Fototransistörün direnci, kan parmağınızdan attığında hafifçe değişecektir.
Bağlantı Şeması
Örnek Kod
Bu projenin program kısmı oldukça zordur. Aslında, ilk adım tüm kodu çalıştırmak değil, daha sonra algoritma düzenini test etmek için bir elektronik tablo ve çizelgeye verileri toplayacağımız bir test script hazırlamaktır. Test betiği, Listing Project 12'de verilmiştir.
int ledPin = 13; int sensorPin = 0; double alpha = 0.75; int period = 20; double change = 0.0; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(115200); } void loop() { static double oldValue = 0; static double oldChange = 0; int rawValue = analogRead(sensorPin); double value = alpha * oldValue + (1 - alpha) * rawValue; Serial.print(rawValue); Serial.print(","); Serial.println(value); oldValue = value; delay(period); }
Bu komut dosyası analog girişten gelen ham sinyali okur, düzenleme işlevini uygular ve ardından her iki değeri de Seri Monitör'e yazar ki burada bunları analiz için bir elektronik tabloya alabilelim. Seri Monitör’ün iletişimi, verilerin gönderilmesinden kaynaklanan gecikmelerin etkilerini en aza indirmek için en hızlı değere ayarlanmıştır. Seri Monitör'ü başlattığınızda, seri hızı 115200 baud olarak değiştirmeniz gerekecektir. Yakalanan metni kopyalayıp bir elektronik tabloya yapıştırın. Elde edilen veriler ve iki sütundan elde edilen bir çizgi grafik Şekil 5-17'de gösterilmektedir. Daha pürüzlü olan grafik çizgisi, analog porttan okunan ham verilerdendir ve pürüzsüz olan grafik çizgisi net bir şekilde gürültünün çoğunu gidermiştir. Düzeltilmiş iz önemli derecede gürültü gösteriyorsa, özellikle de monitörü birbirine karıştıracak herhangi bir yanlış tepe noktası varsa, alfa değerini azaltarak düzeltme düzeyini artırın. Sensör düzenlemeniz için doğru alfa değerini bulduğunuzda, bu değeri gerçek çizime aktarabilir ve test çizimi yerine gerçek çizimi kullanmaya geçebilirsiniz. Gerçek çizim sonraki sayfada aşağıdaki listede verilmiştir.
int ledPin = 13; int sensorPin = 0; double alpha = 0.75; int period = 20; double change = 0.0; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(115200); } void loop() { static double oldValue = 0; static double oldChange = 0; int rawValue = analogRead(sensorPin); double value = alpha * oldValue + (1 - alpha) * rawValue; Serial.print(rawValue); Serial.print(","); Serial.println(value); oldValue = value; delay(period); }
DİNLEME PROJESİ 12 — TEST YERLEŞTİRME Şimdi sadece zirveleri tespit etme sorunu var. Şekil 5-17'ye baktığımızda, önceki okumayı takip edersek, okumadaki değişiklik kaybolana ve negatif olana kadar okumaların kademeli olarak arttığını görebiliriz. Yani, eski değişiklik pozitif olduğunda LED'i yakarsak, ancak yeni değişiklik negatifse, her darbenin zirvesindeki LED'den kısa bir darbe alırız. Hepsini Bir Araya Getiren Proje 12 için hem test hem de gerçek taslak Arduino Sketchbook'unuzda vardır. Denetleyiciye indirmekle ilgili talimatlar için Bölüm 1'e bakınız. Bahsedildiği gibi, bu projenin işe yaraması biraz zor. Muhtemelen nabzı atmaya başlamak için parmağınızı doğru yere koymanız gerektiğini göreceksiniz. Sorun yaşıyorsanız, dedektörünüzün nabız alıp almadığını ve düzleştirme faktörünün alfa seviyesinin yeterince düşük olduğunu kontrol etmek için test komut dosyasını daha önce açıklandığı gibi çalıştırın.