मैं कुछ डेटा रिकॉर्ड करने के लिए Arduino का उपयोग कर रहा हूं। मेरे Arduino स्केच में मैंने millis()
फ़ंक्शन का भी उपयोग किया ताकि मैं उस समय का ट्रैक रख सकूं जिस पर मेरे द्वारा मापी जाने वाली प्रत्येक वैल्यू ली गई है। हालाँकि, मैंने देखा कि समय सही नहीं है। उदाहरण के लिए वास्तविक जीवन में 30 सेकंड केवल 10 सेकंड (उदाहरण के लिए) के रूप में सामने आते हैं।
क्या मैं यह कहने में सही हूं कि Arduino देरी फ़ंक्शन का उपयोग करते हुए समय को प्रभावित करता है millis()
? दूसरे शब्दों में, मुझे लगता है कि मेरे पास 50ms की देरी है, क्या इसका मतलब यह है कि millis()
फ़ंक्शन उस अवधि के लिए भी रुकता है और फिर कनेक्शन की अवधि के लिए जारी रहता है और इसी तरह? मैंने इस पर ध्यान दिया जब मैंने कुछ डेटा की साजिश रचने की कोशिश की और पाया कि मेरे डेटा में चोटियों की आवृत्ति बहुत बार दी गई थी जो समय बीत चुका था। इसलिए मैं जानना चाहता हूं कि क्या यह समय के इस बेमेल के लिए तर्क है और यदि हां, तो मैं इसे कैसे ठीक करूं ताकि मैं प्रत्येक नमूने के समय को रख सकूं?
यहाँ कुछ संदर्भ देने के लिए मेरा वर्णन है:
#include <eHealth.h>
unsigned long time;
// The setup routine runs once when you press reset:
void setup() {
Serial.begin(9600);
}
// The loop routine runs over and over again forever:
void loop() {
float ECG = eHealth.getECG();
time = millis();
Serial.print(time);
Serial.print(" ");
Serial.print(ECG, 5);
Serial.println("");
delay(50);
}
millis()
बाधित है, इसलिए delay()
इसे प्रभावित नहीं करना चाहिए।