আমি সিরিয়াল বন্দর থেকে সময় এবং ভোল্টেজের তথ্য পাইথনে প্লট করার জন্য পাঠাতে একটি আরডুইনো ইউনো ব্যবহার করছি। তবে ধারাবাহিক সময়ের স্ট্যাম্পগুলির মধ্যে ব্যবধানের সময়গুলি সময়ের সাথে সাথে আমার চক্রান্তকে প্রভাবিত করে বলে মনে হচ্ছে। এটি বিশেষত সত্য যখন বাউডের হারটি 9600 এ সেট করা থাকে, যেখানে আমার প্রাথমিক সময়ের পার্থক্য হতে পারে 1320 এবং তুলনামূলকভাবে স্বল্প সময়ের পরে বেড়ে 16400 হয়ে যায়। এই হারটি সর্বাধিক 115200 বিপিএসে রাখলে পরিবর্তনটি ধীরে ধীরে এবং কম লক্ষণীয় হয়, প্রায় 1340 থেকে 1500 প্রেরণের তুলনামূলক দীর্ঘ সময় পরেও। সমস্ত সময় মাইক্রোসেকেন্ডে দেওয়া হয়।
আমি জানতে চাই যে আমি এই প্রভাবকে হ্রাস করতে বা অপসারণ করতে পারি এবং কেন এটি বিদ্যমান তা বুঝতে পারছি না। আমি এর ফলে বাধা এবং বিলম্ব সম্পর্কে কিছু পড়েছি, তবে আমি ইলেক্ট্রনিক্সের জটিলতার পুরোপুরি প্রশংসা করি না এবং জানতে চাই:
- আমি কি সময়টিতে আরও নির্ভুলতা পেতে পারি?
- সময় পরিবর্তনের ফলে কী ঘটে?
আমার কাছে বর্তমানে যা আছে তা এখানে:
#include <eHealth.h>
extern volatile unsigned long timer0_overflow_count;
float fanalog0;
int analog0;
unsigned long time;
byte serialByte;
void setup() {
Serial.begin(9600);
}
void loop() {
while (Serial.available()>0){
serialByte=Serial.read();
if (serialByte=='S'){
while(1){
fanalog0=eHealth.getECG();
// Use the timer0 => 1 tick every 4 us
time=(timer0_overflow_count << 8) + TCNT0;
// Microseconds conversion.
time=(time*4);
//Print in a file for simulation
//Serial.print(time);
//Serial.print(" ");
Serial.print(fanalog0,5);
Serial.print("\n");
if (Serial.available()>0){
serialByte=Serial.read();
if (serialByte=='F') break;
}
}
}
}
}
eHealth.getECG()
? সেই কলটি কি সর্বদা একই পরিমাণে স্থায়ী হয়?