- आवश्यक घटक
- पल्स सेंसर SEN-11574
- पल्स सेंसर के लिए सर्किट आरेख PIC माइक्रोकंट्रोलर के साथ इंटरफेसिंग
- हार्ट बीट मॉनिटर के लिए PIC16F877A कोड स्पष्टीकरण
किसी भी व्यक्ति के स्वास्थ्य की निगरानी में हार्ट बीट की दर सबसे महत्वपूर्ण पैरामीटर है। पहनने योग्य उपकरणों के आधुनिक युग में, बहुत सारे उपकरण हैं जो हृदय की धड़कन, रक्तचाप, पैरों की गति, कैलोरी को जला सकते हैं और बहुत सी अन्य चीजों को माप सकते हैं। इन उपकरणों में पल्स रेट को समझने के लिए उनके अंदर पल्स सेंसर होता है। आज, हम हृदय की धड़कन प्रति मिनट और इंटर-बीट अंतराल को गिनने के लिए PIC माइक्रोकंट्रोलर के साथ एक पल्स सेंसर का भी उपयोग करेंगे, इन मूल्यों को 16x2 वर्ण एलसीडी पर आगे प्रदर्शित किया जाएगा। हम इस परियोजना में PIC16F877A PIC माइक्रोकंट्रोलर का उपयोग करेंगे । हमने पहले से ही रोगी निगरानी प्रणाली के लिए Arduino के साथ पल्स सेंसर को बाधित किया है।
आवश्यक घटक
- PIC16F877A माइक्रोकंट्रोलर
- 20 मेगाहर्ट्ज क्रिस्टल
- 33pF संधारित्र 2 पीसी
- 4.7k रोकनेवाला 1 पीसी
- 16x2 चरित्र एलसीडी
- एलसीडी के विपरीत नियंत्रण के लिए 10K पॉट
- SEN-11574 पल्स सेंसर
- नाइलोन के कपड़े का पट्टा
- 5V पावर एडॉप्टर
- ब्रेडबोर्ड और हुकअप तार
पल्स सेंसर SEN-11574
दिल की धड़कन को मापने के लिए हमें एक पल्स सेंसर की आवश्यकता होती है। यहां हमने SEN-11574 पल्स सेंसर का चयन किया है जो ऑनलाइन या ऑफलाइन स्टोर पर आसानी से उपलब्ध है। हमने इस सेंसर का उपयोग किया क्योंकि निर्माता से नमूना कोड प्रदान किए गए हैं, लेकिन यह एक Arduino कोड है। हमने उस कोड को अपने PIC माइक्रोकंट्रोलर के लिए बदल दिया।
सेंसर वास्तव में छोटा है और ईयरलोब पर या उंगलियों पर दिल की धड़कन को पढ़ने के लिए एकदम सही है। यह ०.६२५ ”व्यास और ०.१२५” गोल पीसीबी पक्ष से मोटी है।
यह सेंसर एक एनालॉग सिग्नल प्रदान करता है और सेंसर को 3V या 5V से संचालित किया जा सकता है, सेंसर की वर्तमान खपत 4 mA है, जो मोबाइल एप्लिकेशन के लिए बहुत अच्छा है। सेंसर तीन वायर के साथ आता है जिसमें अंत में 24 ”लंबा हुकअप केबल और बर्ग पुरुष हेडर होता है। इसके अलावा, सेंसर इसे उंगलियों के पार पहनने के लिए वेल्क्रो फिंगर स्ट्रैप के साथ आता है।
पल्स सेंसर योजनाबद्ध भी निर्माता द्वारा प्रदान किया गया है और स्पार्कफुन डॉट कॉम पर भी उपलब्ध है।
सेंसर स्कीमैटिक में ऑप्टिकल हार्ट-रेट सेंसर, नॉइज़ कैंसलेशन आरसी सर्किट्री या फिल्टर होते हैं, जिन्हें योजनाबद्ध आरेख में देखा जा सकता है। विश्वसनीय प्रवर्धित एनालॉग आउटपुट के लिए R2, C2, C1, C3 और एक ऑपरेशनल एम्पलीफायर MCP6001 का उपयोग किया जाता है।
हार्ट बीट मॉनिटरिंग के लिए कुछ अन्य सेंसर हैं लेकिन इलेक्ट्रॉनिक्स परियोजनाओं में SEN-11574 पल्स सेंसर का व्यापक रूप से उपयोग किया जाता है।
पल्स सेंसर के लिए सर्किट आरेख PIC माइक्रोकंट्रोलर के साथ इंटरफेसिंग
यहाँ हमने माइक्रोकंट्रोलर यूनिट के 2 एन डी पिन के पार पल्स सेंसर को कनेक्ट किया है । जैसा कि सेंसर एनालॉग डेटा प्रदान करता है, हमें आवश्यक गणना करके एनालॉग डेटा को डिजिटल सिग्नल में बदलने की आवश्यकता है।
20Mhz के क्रिस्टल औसिलेटर दो चीनी मिट्टी 33pF संधारित्र के साथ माइक्रो यूनिट के दो ओएससी पिंस भर में जुड़ा हुआ है। एलसीडी माइक्रोकंट्रोलर के आरबी बंदरगाह भर में जुड़ा हुआ है।
हार्ट बीट मॉनिटर के लिए PIC16F877A कोड स्पष्टीकरण
कोड शुरुआती के लिए थोड़ा जटिल है। निर्माता ने SEN-11574 सेंसर के लिए नमूना कोड प्रदान किए, लेकिन यह Arduino प्लेटफॉर्म के लिए लिखा गया था। हमें अपने माइक्रोचिप, PIC16F877A के लिए गणना करने की आवश्यकता है। इस प्रोजेक्ट के अंत में डिमॉन्स्ट्रेशन वीडियो के साथ पूरा कोड दिया गया है । और सहायक C फ़ाइलों को यहाँ से डाउनलोड किया जा सकता है।
हमारा कोड प्रवाह अपेक्षाकृत सरल है और हमने स्विच केस का उपयोग करके चरण बनाए हैं । निर्माता के अनुसार, हमें प्रत्येक 2 मिली सेकेंड में सेंसर से डेटा प्राप्त करना होगा। इसलिए, हमने एक टाइमर इंटरप्ट सर्विस रूटीन का उपयोग किया, जो हर 2 मिलीसेकंड में एक फंक्शन को फायर करेगा।
स्विच स्टेटमेंट में हमारा कोड फ्लो इस प्रकार होगा:
केस 1: एडीसी पढ़ें
केस 2: हार्ट बीट और आईबीआई की गणना करें
केस 3: एलसीडी पर दिल की धड़कन और आईबीआई दिखाएं
केस 4: आईडीएलई (कुछ भी न करें)
टाइमर इंटरप्ट फ़ंक्शन के अंदर, हम प्रोग्राम की स्थिति को केस 1 में बदलते हैं: प्रत्येक 2 मिलीसेकेंड पर एडीसी पढ़ें।
इसलिए, मुख्य कार्य में, हमने कार्यक्रम की स्थिति और सभी स्विच मामलों को परिभाषित किया ।
शून्य मुख्य () { system_init (); main_state = READ_ADC; जबकि (1) { स्विच (main_state) { केस READ_ADC: { adc_value = ADC_Read (0); // 0 चैनल नंबर main_state = CALCULATE_HEART_BEAT है; टूटना; } मामला CALCULATE_HEART_BEAT: { गणना_हार्ट_बीट (adc_value); main_state = SHOW_HEART_BEAT; टूटना; } मामला SHOW_HEART_BEAT: { अगर (QS == सच) {// एक दिल की धड़कन मिली // बीपीएम और आईबीआई निर्धारित किया गया है / मात्रा निर्धारित स्व "QS" सच है जब Arduino एक दिल की धड़कन QS या झूठ पाता है ; // अगली बार के लिए क्वांटिफाइड सेल्फ फ्लैग को रीसेट करें // 0.9 का उपयोग बेहतर डेटा प्राप्त करने के लिए किया जाता है। वास्तव में BPM = BPM * 0.9 का उपयोग नहीं किया जाना चाहिए ; IBI = IBI / 0.9; lcd_com (0x80); lcd_puts ("BPM: -"); lcd_print_number (BPM); lcd_com (0xC0); lcd_puts ("IBI: -"); lcd_print_number (IBI); } } main_state = IDLE; टूटना; मामला IDLE: { ब्रेक; } डिफ़ॉल्ट: { } } } }
हम PIC16F877A के दो हार्डवेयर बाह्य उपकरणों का उपयोग कर रहे हैं: टाइमर और एडीसी ।
टाइमर0.c फ़ाइल के अंदर, TMR0 = (uint8_t) (tmr0_mask & (256 - ((2 * _XTAL_FREQ) / (256 * 4)) / 1000));
यह गणना 2 मिलीसेकंड टाइमर रुकावट प्रदान कर रही है। गणना सूत्र है
// TimerCountMax - ((देरी (ms) * फ़ॉक् स (hz)) / (PreScale_Val * 4)) / 1000)
यदि हम टाइमर_र्र फ़ंक्शन देखते हैं, तो यह है-
शून्य टाइमर_आईएसआर () { main_state = READ_ADC; }
इस फंक्शन में प्रोग्राम स्टेट को हर 2ms में READ_ADC में बदल दिया जाता है।
फिर CALCULATE_HEART_BEAT फ़ंक्शन को Arduino उदाहरण कोड से लिया गया है।
शून्य गणना_हार्ट_बीट (int adc_value) { सिग्नल = adc_value; sampleCounter + = 2; // इस चर int n = sampleCounter के साथ mS में समय का ध्यान रखें - lastBeatTime; // शोर से बचने के लिए अंतिम बीट के समय की निगरानी करें। // पल्स वेव के शिखर और गर्त को खोजें यदि (सिग्नल <थ्रेश एंड & एन> (IBI / 5) * 3) {// 3/5 का इंतजार करके द्विध्रुवीय शोर से बचें अंतिम IBI के अगर (सिग्नल <टी) {// टी गर्त टी = सिग्नल है; // पल्स वेव में सबसे निचले बिंदु } } ……… का ट्रैक रखें । ………………………..
इसके अलावा, पूरा कोड नीचे दिया गया है और टिप्पणियों द्वारा अच्छी तरह से समझाया गया है। यह हार्ट बीट सेंसर डेटा को आगे क्लाउड पर अपलोड किया जा सकता है और कहीं से भी इंटरनेट पर नजर रखी जा सकती है, जो इसे IoT आधारित हार्ट बीट मॉनिटरिंग सिस्टम बनाता है, अधिक जानने के लिए लिंक का अनुसरण करें।
इस PIC पल्स सेंसर प्रोजेक्ट के लिए सहायक फ़ाइलें यहाँ से डाउनलोड करें।