এই প্রশ্ন সম্পর্কে
আমার কাছে একটি ইলেকট্রনিক্স ইঞ্জিনিয়ারিং ব্যাকগ্রাউন্ড নেই, এবং এটি আই 2 সি এর মাধ্যমে যোগাযোগ করা এবং একটি রেজিস্টারে লেখার মাধ্যমে আমার প্রথম চ্যালেঞ্জগুলির মধ্যে একটি, তাই দয়া করে আমার পক্ষ থেকে খুব বেশি জ্ঞান অনুমান করবেন না। আমি একটি আরডিনো প্রোগ্রাম করছি।
নির্দিষ্ট ইলেকট্রনিক উপাদান / চিপ সম্পর্কে জিজ্ঞাসা করার সময়, আমি ধরে নিয়েছি লোকেরা আমাকে সঠিক উত্তর দেওয়ার জন্য পরীক্ষা / পরীক্ষা করতে পারবেন না। আমি আরও আশা করি যে লোকেরা এই উপাদানটিও জানবে না। সুতরাং আমি এই প্রশ্নে অনেক তথ্য যুক্ত করার চেষ্টা করব।
আপনার আরও তথ্যের প্রয়োজন হলে আমাকে জানান।
উপাদানটির চারটি এডিসি রয়েছে
4 চ্যানেল উপাদান, MCP3424 (ব্যবহার করছি উপাত্তপত্র )। এটি দুটি প্যাকেজে আসে। আমি এমসিপি 3424 ই / এসএল, 4 টি চ্যানেল এসওআইসি সংস্করণ ব্যবহার করছি, এমসিপি 3422 বা এমসিপি 3423 2 চ্যানেল সংস্করণ নয়।
আমি বিশ্বাস করি এর চারটি এডিসি রয়েছে। আরএস-অনলাইনে, মনে হয় ই / এসএল সংস্করণটিতে 4 টি এডিসি রয়েছে ( সরাসরি লিঙ্ক ), অন্যদিকে ই / এসটি-তে কেবল একটি ( সরাসরি লিঙ্ক ) রয়েছে।
আমি ধরে নিচ্ছি এর অর্থ অবশ্যই হওয়া উচিত, এটি একই সাথে বেশ কয়েকটি চ্যানেলে নমুনা তৈরি করতে পারে। উপাদানটিতে একাধিক এডিসি রাখার আমি অন্য কোনও কারণ দেখতে পাচ্ছি না।
আমি কি সঠিক?
আই 2 সি এর মাধ্যমে যোগাযোগ
যোগাযোগটি একটি কনফিগার বাইট প্রেরণে ঘটে, তারপরে একটি নমুনা শেষ হওয়ার অপেক্ষায় এবং ফলাফলটি পড়ে read
কনফিগার বাইটের ফর্ম্যাট
আকর্ষণীয় বিষয়গুলি হ'ল:
- বাম থেকে বিট তিন, 1 থেকে গণনা: অবিচ্ছিন্ন নমুনা
- বাম থেকে এক এবং দুটি, 1 থেকে গণনা: ঠিকানা
কনফিগার বাইট সম্পর্কে আরও ডেটাশিট পৃষ্ঠায় পাওয়া যাবে 18, এছাড়াও এখানে চিত্রিত ।
পড়ার ফলাফলের ফর্ম্যাট
আমার উদাহরণগুলি কেবলমাত্র একটি 18 বিট রেজোলিউশনের সাথে থাকবে (বিট 5 এবং 6 সেটটি 1)। রিড ব্যাকের ফলাফলটি চারটি বাইট হবে: প্রথমটি তিনটি মানযুক্ত এবং চতুর্থটি কনফিগার বাইটযুক্ত।
তবে, বামদিকের বিট, আরডিওয়াই, শেষ পাঠের পর থেকে মানটি "নতুন", অর্থাত্ যদি এটি একটি নতুন পঠন হয়, তা বলে। প্রথমবার একটি ফলাফল পড়ার পরে মান 0 হয় এবং পরবর্তীগুলির জন্য এটি 1 হয়, যতক্ষণ না এডিসি একটি নতুন নমুনা মান সহ প্রস্তুত না হয়।
সমান্তরালে নমুনা ছাড়াই এটি কীভাবে ব্যবহার করবেন
আমি এটি পুরোপুরি ভাল জানি কিভাবে এটি করতে হয়। এবং সমস্ত উদাহরণ আমি অনলাইনে খুঁজে পেয়েছি, এটি সহজ দুটিও। উপাদানটিতে একটি কনফিগার বাইট লিখুন, তারপরে একটি মান ফিরে যান read
প্রতিটি চ্যানেল কীভাবে স্বয়ংক্রিয়ভাবে স্বতন্ত্রভাবে নমুনায় সেট করা যায় এবং চ্যানেলগুলিকে সমান্তরালে পড়তে হয় read
সিউডো কোডটি স্মেথের মতো হতে পারে
setup():
start sampling channel 1, 18bit, 0gain, continuously
start sampling channel 2, 18bit, 0gain, continuously
start sampling channel 3, 18bit, 4gain, continuously
start sampling channel 1, 18bit, 2gain, continuously
readADCs():
// Run every 500ms
// 18 bit samples take 375ms, so must happen in parallel
// to get a new sample for all every 500ms
read channel 1
read channel 2
read channel 3
read channel 4
আমার সেরা চেষ্টা
সুতরাং আমি আশা করি, নিম্নলিখিত প্রতিটি এডিসি নিয়মিত নমুনা সেট করে। এটি আরডুইনো কোড।
void setup() {
Wire.write(0b00011100);
Wire.write(0b01011100);
Wire.write(0b10011110);
Wire.write(0b11011101);
}
তারপরে, আমি কীভাবে একটি নির্দিষ্ট চ্যানেল পড়ব। আমি যদি ফলাফলটির জন্য কেবল উপাদানটি জিজ্ঞাসা করি তবে এটি চ্যানেলের ফলাফল রেজিস্টারটিতে ফিরিয়ে দেবে। উপরের সেটআপটি দিয়ে আমি চ্যানেল 4 পড়তে পেলাম তবে বলি যে আমি চ্যানেল 2 থেকে পঠন চাই some কিছু উপায়ে আমাকে কেবল এটি বলা দরকার, আমি চ্যানেল 2 এর ফলাফল চাই I আমি চাই না এটিকে যে কোনও কিছু নমুনা করতে বলুন, এটি কেবল একটি ক্রমাগত নমুনা চালিয়ে যাওয়া উচিত এবং আমি কেবলমাত্র স্বয়ংক্রিয়ভাবে নমুনা দেওয়ার সময় তৈরি করা সবচেয়ে বিরক্তিপূর্ণ নমুনা চাই।
নীচে আমার সেরা অনুমান করা হয়
void readADCs() {
// Channel 1
// ...
// Channel 2
Wire.beginTransmission(104);
Wire.write(0b01011100); // I hope not to affect, just to select
Wire.endTransmission();
Wire.requestFrom(104);
Wire.read(); // val byte 1
Wire.read(); // val byte 2
Wire.read(); // val byte 3
Wire.read(); // config byte
}
সুতরাং আমার সেরা অনুমান হয়। আমি যদি চ্যানেল 2 পড়তে চাই, আমি একটি কনফিগার বাইট লিখি যা ঠিক একই, আমি চ্যানেল 2 স্যাম্পলিং শুরু করার জন্য যা ব্যবহার করেছি as
তবে, এটি কাজ করে না। প্রয়োজনীয় নমুনা 375 মিমি বেশি থাকলেও কোনও নমুনা প্রস্তুত নেই।
আমি কীভাবে এটি অর্জন করব?
আমি পছন্দসই ফলাফল এবং আমি যা চেষ্টা করেছি তার বর্ণনা দিয়ে যথাসাধ্য চেষ্টা করার চেষ্টা করেছি, তবে আমি জানি এটি পড়া সহজ নয়।
আপনি কীভাবে আমাকে সব এডিসি নমুনাটিকে সমান্তরালভাবে রাখবেন এবং তারপরে হস্তক্ষেপ না করে কীভাবে পড়তে পারেন সে সম্পর্কে পরামর্শ দিতে পারেন?