ভূমিকা: এই নিবন্ধটি ডিজিটাল থার্মোমিটার তৈরিতে কাস্টম DS18B20 ডিজিটাল তাপমাত্রা সেন্সর প্রয়োগের বিস্তারিত ব্যাখ্যা করে. কাজের নীতি সহ, হার্ডওয়্যার সংযোগ, সফ্টওয়্যার প্রোগ্রামিং এবং সিমুলেশন বাস্তবায়ন. সম্পূর্ণ প্রোটিউস সিমুলেশন ডায়াগ্রাম প্রদান করুন, পাঠকদের DS18B20-এর ব্যবহার গভীরভাবে বুঝতে ও অনুশীলন করতে সাহায্য করার জন্য C সোর্স কোড এবং ফলাফল বিশ্লেষণ.
পরামিতি তথ্য: পাওয়ার সাপ্লাই: 3.0ভি – 5.5ভি; সামঞ্জস্যযোগ্য রেজোলিউশন: 9 – 12 বিট; তাপমাত্রা পরিসীমা: -55 ℃ থেকে +125 ℃; আউটপুট : লাল (ভিসিসি), হলুদ (ডেটা), কালো (জিএনডি);
যা পাবেন: আপনি পাবেন 4 DS18B20 তাপমাত্রা সেন্সর, 4 অ্যাডাপ্টার মডিউল এবং 4 মহিলা থেকে মহিলা জাম্পার তারের; অ্যাডাপ্টার মডিউলটিতে একটি পুল-আপ প্রতিরোধক রয়েছে, যা একটি বহিরাগত প্রতিরোধক ছাড়া রাস্পবেরি পাই এর সাথে সামঞ্জস্যপূর্ণ হতে পারে;
DS18B20 তাপমাত্রা সেন্সর: স্টেইনলেস স্টীল হাউজিং আকার প্রায়. 6 x 50 মিমি/ 0.2 x 2 ইঞ্চি, এবং ডিজিটাল তাপমাত্রা তাপ তারের প্রায় মোট দৈর্ঘ্য আছে. 1 মি/ 39.4 ইঞ্চি, যা আপনার প্রয়োজন মেটাতে যথেষ্ট দীর্ঘ;
গুণমান উপাদান: প্রোব মানের স্টেইনলেস স্টীল উপাদান তৈরি করা হয়, যা জলরোধী, আর্দ্রতা-প্রমাণ এবং মরিচা সহজ নয়, যাতে শর্ট সার্কিট প্রতিরোধ করা যায়;
ব্যাপক আবেদন: এই DS18B20 তাপমাত্রা সেন্সর রাস্পবেরি পাই এর সাথে সামঞ্জস্যপূর্ণ, এবং তারের পরিখার তাপমাত্রা পর্যবেক্ষণে ব্যাপকভাবে প্রয়োগ করা হয়, বয়লার, কি, কৃষি গ্রিনহাউস, পরিষ্কার ঘর, ইত্যাদি.
1. DS18B20 সেন্সরের বৈশিষ্ট্য
DS18B20 সেন্সর আধুনিক তাপমাত্রা পর্যবেক্ষণের ক্ষেত্রে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে. এটি উচ্চ নির্ভুলতার সাথে তাপমাত্রা পরিমাপ করতে পারে, এবং এর রেজোলিউশন প্রয়োজন অনুযায়ী সামঞ্জস্য করা যেতে পারে, যাতে বিভিন্ন ডিগ্রী নির্ভুলতার সাথে তাপমাত্রা পর্যবেক্ষণ করা যায়. উপরন্তু, DS18B20 এর ছোট আকার এটিকে সীমিত স্থান সহ পরিবেশে ব্যবহারের জন্য উপযুক্ত করে তোলে, এবং এর সহজ-ব্যবহারযোগ্য বৈশিষ্ট্য নতুনদের থেকে পেশাদারদের প্রযুক্তিগত প্রান্তিকে হ্রাস করে.
DS18B20 এর পারফরম্যান্স প্যারামিটারগুলি আরও অন্বেষণ করার আগে, প্রথমে এর কাজের নীতি বুঝতে হবে. DS18B20 ডিজিটাল সংকেতের মাধ্যমে তাপমাত্রার তথ্য যোগাযোগ করে, যা তাপমাত্রার তথ্য সংগ্রহের সুবিধা নিয়ে আসে. ঐতিহ্যগত এনালগ তাপমাত্রা সেন্সর সঙ্গে তুলনা, ডিজিটাল সেন্সর যেমন DS18B20 আরো সঠিক রিডিং প্রদান করতে পারে এবং সিগন্যাল ট্রান্সমিশনের সময় শব্দের প্রতি কম সংবেদনশীল.
DS18B20-এর এই সুবিধাগুলোকে পুরোপুরি কাজে লাগাতে, আমাদের অবশ্যই এর পারফরম্যান্স প্যারামিটার সম্পর্কে গভীর ধারণা থাকতে হবে. এই পরামিতি তাপমাত্রা পরিমাপ পরিসীমা অন্তর্ভুক্ত, নির্ভুলতা, রেজোলিউশন, এবং সরবরাহ ভোল্টেজ. এই পরামিতিগুলি শুধুমাত্র DS18B20 নির্দিষ্ট অ্যাপ্লিকেশনের চাহিদা পূরণ করতে পারে কিনা তা নির্ধারণ করে না, কিন্তু সমগ্র সিস্টেমের কর্মক্ষমতা এবং নির্ভরযোগ্যতা প্রভাবিত করে.
এই অধ্যায়ে, আমরা বিস্তারিতভাবে DS18B20 এর পারফরম্যান্স পরামিতি উপস্থাপন করব, এর কাজের নীতি বিশ্লেষণ করুন, এবং বিভিন্ন অ্যাপ্লিকেশনে এর সুবিধাগুলি অন্বেষণ করুন. এই বিষয়বস্তু মাধ্যমে, পাঠকরা DS18B20 সেন্সর সম্পর্কে গভীর উপলব্ধি অর্জন করবে এবং পরবর্তীতে আরও জটিল অ্যাপ্লিকেশন এবং প্রোগ্রামিংয়ের জন্য একটি শক্ত ভিত্তি স্থাপন করবে.
2. DS18B20 এর 1-ওয়্যার কমিউনিকেশন প্রোটোকলের বিস্তারিত ব্যাখ্যা
DS18B20 সেন্সর ব্যাপকভাবে ব্যবহৃত হওয়ার কারণ মূলত এর অনন্য যোগাযোগ প্রোটোকলের কারণে – 1-তারের যোগাযোগ প্রোটোকল. এই প্রোটোকলটি হার্ডওয়্যার সংযোগের প্রয়োজনীয়তা সহজ করে এবং ডেটা প্রেরণের একটি কার্যকর উপায় প্রদান করে. এই অধ্যায়টি পরবর্তী প্রোগ্রামিং অনুশীলনের জন্য একটি শক্ত ভিত্তি স্থাপনের জন্য 1-লাইন যোগাযোগ প্রোটোকলের কার্যপ্রণালী এবং ডেটা বিনিময় প্রক্রিয়া গভীরভাবে বিশ্লেষণ করবে।.
2.1 1-ওয়্যার কমিউনিকেশন প্রোটোকলের বেসিক
2.1.1 1-ওয়্যার কমিউনিকেশন প্রোটোকলের বৈশিষ্ট্য:
DS18B20 1-ওয়্যার কমিউনিকেশন প্রোটোকলও বলা হয় “একক বাস” প্রযুক্তি. এটি নিম্নলিখিত বৈশিষ্ট্য আছে: – একক বাস যোগাযোগ: দ্বিমুখী ডেটা ট্রান্সমিশনের জন্য শুধুমাত্র একটি ডেটা লাইন ব্যবহার করা হয়, যা ঐতিহ্যগত মাল্টি-ওয়্যার সেন্সর যোগাযোগ পদ্ধতির তুলনায় তারের জটিলতাকে ব্যাপকভাবে হ্রাস করে. – মাল্টি-ডিভাইস সংযোগ: একটি ডাটা বাসে একাধিক ডিভাইস সংযুক্ত করা সমর্থন করে, এবং ডিভাইস সনাক্তকরণ কোডের মাধ্যমে সনাক্ত করে এবং যোগাযোগ করে. – কম শক্তি খরচ: যোগাযোগের সময়, যোগাযোগে অংশগ্রহণ না করার সময় ডিভাইসটি কম-পাওয়ার স্ট্যান্ডবাই অবস্থায় থাকতে পারে. – উচ্চ নির্ভুলতা: একটি সংক্ষিপ্ত ডেটা ট্রান্সমিশন সময় সঙ্গে, এটি বাহ্যিক হস্তক্ষেপ কমাতে পারে এবং ডেটা সঠিকতা উন্নত করতে পারে.
2.1.2 1-তারের যোগাযোগের ডেটা বিন্যাস এবং সময় বিশ্লেষণ
1-ওয়্যার কমিউনিকেশন প্রোটোকলের ডেটা ফরম্যাট একটি নির্দিষ্ট সময়ের নিয়ম অনুসরণ করে. এটি প্রারম্ভিক সময় অন্তর্ভুক্ত, সময় লিখুন এবং টাইমিং পড়ুন:
প্রারম্ভিক সময়: হোস্ট প্রথমে উপস্থিতি সনাক্তকরণের সময় শুরু করে (উপস্থিতি পালস) একটি নির্দিষ্ট সময়ের জন্য বাস থেকে নামিয়ে, এবং সেন্সর তখন প্রতিক্রিয়া হিসাবে একটি উপস্থিতি পালস পাঠায়.
টাইমিং লিখুন: হোস্ট যখন একটি লেখার সময় পাঠায়, এটি প্রথমে প্রায় জন্য বাসটি নামিয়ে দেয় 1-15 মাইক্রোসেকেন্ড, তারপর বাস ছেড়ে দেয়, এবং সেন্সর বাসটি নিচে টেনে নিয়ে যায় 60-120 প্রতিক্রিয়া জানাতে মাইক্রোসেকেন্ড.
টাইমিং পড়ুন: হোস্ট বাস থেকে নামিয়ে এবং ছেড়ে দিয়ে ডেটা পাঠাতে সেন্সরকে অবহিত করে, এবং সেন্সর একটি নির্দিষ্ট বিলম্বের পরে বাসে ডেটা বিট আউটপুট করবে.
3. থার্মোমিটার হার্ডওয়্যার সংযোগ পদ্ধতি
হার্ডওয়্যার সংযোগ একটি ডিজিটাল থার্মোমিটার তৈরির প্রথম এবং সবচেয়ে গুরুত্বপূর্ণ পদক্ষেপ. DS18B20 সেন্সর এবং মাইক্রোকন্ট্রোলারের মধ্যে সঠিক সংযোগ সঠিক ডেটা ট্রান্সমিশন নিশ্চিত করবে এবং আরও সফ্টওয়্যার প্রোগ্রামিং এবং ডেটা প্রক্রিয়াকরণের জন্য একটি শক্ত ভিত্তি প্রদান করবে. এই অধ্যায়ে DS18B20 এবং মাইক্রোকন্ট্রোলারের মধ্যে ইন্টারফেস ডিজাইনের নীতিগুলি এবং সার্কিট সংযোগের নির্দিষ্ট ধাপগুলি বিস্তারিতভাবে উপস্থাপন করা হবে, এবং পাওয়ার সাপ্লাই এবং সিগন্যাল কন্ডিশনিং এর প্রাসঙ্গিক বিষয়বস্তু কভার করে.
3.1 DS18B20 এবং মাইক্রোকন্ট্রোলারের মধ্যে ইন্টারফেস
3.1.1 ইন্টারফেস সার্কিট ডিজাইন নীতি
DS18B20 এর ইন্টারফেস সার্কিট ডিজাইনকে ডিভাইসটির স্থিতিশীল এবং দক্ষ অপারেশন নিশ্চিত করতে বেশ কয়েকটি মূল নীতি অনুসরণ করতে হবে:
স্থিতিশীল বিদ্যুৎ সরবরাহ: DS18B20 ডেটা লাইন থেকে পাওয়ার পেতে পারে “ডিকিউ” (ডাকা “পরজীবী শক্তি মোড”), অথবা এটি স্বাধীনভাবে একটি বহিরাগত পাওয়ার সাপ্লাই দ্বারা চালিত হতে পারে. যাই হোক না কেন পদ্ধতি ব্যবহার করা হয়, পাওয়ার সাপ্লাই ওঠানামার কারণে ডেটা ট্রান্সমিশন ত্রুটি প্রতিরোধ করতে পাওয়ার সাপ্লাই স্থিতিশীল হতে হবে.
সংকেত অখণ্ডতা: যেহেতু DS18B20 একটি একক লাইনের মাধ্যমে ডেটা প্রেরণ করে, সংকেত অখণ্ডতা বিশেষ করে সমালোচনামূলক. সিগন্যালের হস্তক্ষেপ বিরোধী ক্ষমতা এবং সিগন্যালের বৈদ্যুতিক বৈশিষ্ট্যের মিল বিবেচনা করা প্রয়োজন।.
সার্কিট সুরক্ষা: ওভারকারেন্ট সুরক্ষা এবং ইলেক্ট্রোস্ট্যাটিক স্রাব (ESD) সেন্সর বা মাইক্রোকন্ট্রোলারের ক্ষতি এড়াতে সার্কিট ডিজাইনে সুরক্ষা ব্যবস্থা অন্তর্ভুক্ত করা উচিত.
3.1.2 সার্কিট সংযোগের জন্য নির্দিষ্ট পদক্ষেপ
একটি মাইক্রোকন্ট্রোলারের সাথে DS18B20 সংযোগ করা সাধারণত নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করে৷:
বিদ্যুৎ সংযোগ: DS18B20 এর VDD পিনটিকে একটি 3.3V বা 5V পাওয়ার সাপ্লাইয়ের সাথে সংযুক্ত করুন (মাইক্রোকন্ট্রোলারের ভোল্টেজ লেভেলের উপর নির্ভর করে), এবং GND পিন গ্রাউন্ড লাইনে.
ডাটা লাইন সংযোগ: DQ পিন মাইক্রোকন্ট্রোলারের একটি ডিজিটাল I/O পিনের সাথে সংযুক্ত. তথ্য প্রেরণের স্থিতিশীলতা নিশ্চিত করার জন্য, ডেটা লাইন এবং পাওয়ার সাপ্লাইয়ের মধ্যে একটি পুল-আপ প্রতিরোধক যোগ করা যেতে পারে, 4.7kΩ থেকে 10kΩ একটি সাধারণ মান সহ.
রিসেট এবং উপস্থিতি পালস পিন প্রক্রিয়াকরণ: সাধারনত, রিসেট পিন (আরএসটি) এবং উপস্থিতি পালস পিন (PAR) DS18B20 বাহ্যিকভাবে সংযুক্ত করার প্রয়োজন নেই, এগুলি অভ্যন্তরীণভাবে ব্যবহৃত সংকেত.
এই বিভাগে, আমরা একটি মৌলিক সার্কিট ডিজাইন করেছি যার মাধ্যমে DS18B20 তাপমাত্রা সেন্সর একটি মাইক্রোকন্ট্রোলারের সাথে সংযুক্ত করা যেতে পারে. নীচে Arduino Uno এবং সংশ্লিষ্ট বিবরণের উপর ভিত্তি করে একটি উদাহরণ সার্কিট ডায়াগ্রাম:
ফ্লোচার্ট LR
DS18B20 — |ভিডিডি| 5ভি
DS18B20 — |জিএনডি| জিএনডি
DS18B20 — |ডিকিউ| 2
ডিকিউ — |টান আপ| 5ভি
তাদের মধ্যে ড, DS18B20 ডিজিটাল তাপমাত্রা সেন্সর প্রতিনিধিত্ব করে, 5V হল মাইক্রোকন্ট্রোলারের পাওয়ার আউটপুট, GND হল স্থল তার, এবং 2 Arduino এর পিন নম্বর প্রতিনিধিত্ব করে. 2, যা ডেটা ট্রান্সমিশনের জন্য ব্যবহৃত হয়. DQ এবং 5V এর মধ্যে সংযোগটি পুল-আপ প্রতিরোধকের প্রতিনিধিত্ব করে.
3.2 পাওয়ার সাপ্লাই এবং সিগন্যাল কন্ডিশনিং
3.2.1 পাওয়ার সাপ্লাই পদ্ধতির পছন্দ
DS18B20 দুটি পাওয়ার সাপ্লাই পদ্ধতি প্রদান করে:
পরজীবী শক্তি মোড: এই মোডে, ডেটা লাইন (ডিকিউ) শুধুমাত্র তথ্য প্রেরণ করতে পারে না, কিন্তু এছাড়াও DS18B20 শক্তি. এই সময়ে, পর্যাপ্ত বিদ্যুৎ সরবরাহ নিশ্চিত করতে ডেটা লাইনে উচ্চ-স্তরের ভোল্টেজ কমপক্ষে 3.0V হওয়া উচিত. এই মোডটি সাধারণত ব্যবহৃত হয় যখন বাসের দৈর্ঘ্য ছোট হয় এবং ডেটা ট্রান্সমিশন খুব ঘন ঘন হয় না.
বাহ্যিক পাওয়ার সাপ্লাই মোড: এই মোডে, DS18B20 এর একটি স্বাধীন পাওয়ার ইনপুট VDD আছে. বাহ্যিক পাওয়ার সাপ্লাই দিয়ে পাওয়ার করা সেন্সরের সিগন্যাল শক্তি বাড়াতে পারে এবং হস্তক্ষেপ-বিরোধী ক্ষমতা উন্নত করতে পারে, যা দীর্ঘ-দূরত্বের সংক্রমণ বা ঘন ঘন ডেটা ট্রান্সমিশনের জন্য উপযুক্ত.
3.2.2 সিগন্যাল ফিল্টারিং এবং স্থিতিশীলতা
সংকেত স্থায়িত্ব এবং সঠিক ডেটা রিডিং নিশ্চিত করার জন্য, সংকেত সঠিকভাবে ফিল্টার করা এবং স্থিতিশীল করা প্রয়োজন:
পুল-আপ প্রতিরোধক: ডাটা লাইন এবং পাওয়ার সাপ্লাইয়ের মধ্যে পুল-আপ রেসিস্টর যোগ করা হয় যাতে ডাটা লাইনটি নিষ্ক্রিয় অবস্থায় উচ্চ-স্তরের অবস্থায় থাকে।.
ডি-জিটার সার্কিট: লাইনের হস্তক্ষেপ বা তাৎক্ষণিক ভোল্টেজ ওঠানামার কারণে ভুল রিডিং দূর করার জন্য, সংকেত মাইক্রোকন্ট্রোলারের দিকে সফ্টওয়্যার-ডি-জিটারড হতে পারে.
ESD সুরক্ষা: ESD সুরক্ষা উপাদান (যেমন টিভিএস ডায়োড) ইলেক্ট্রোস্ট্যাটিক স্রাব দ্বারা সৃষ্ট ক্ষতি রোধ করতে সেন্সর এবং মাইক্রোকন্ট্রোলারের পোর্টে যুক্ত করা হয়.
সারণী আকারে পাওয়ার সাপ্লাই এবং সিগন্যাল কন্ডিশনিং নির্বাচন করার সময় যে বিষয়গুলি বিবেচনা করা উচিত সেগুলি এই বিভাগে আরও বিস্তারিত করে:
| প্রকল্প | পরজীবী শক্তি মোড | বাহ্যিক শক্তি মোড | বর্ণনা | | — | — | — | — | | প্রযোজ্য পরিস্থিতিতে | ছোট লাইন, বিরল তথ্য | লম্বা লাইন, ঘন ঘন ডেটা | প্রকৃত অ্যাপ্লিকেশন পরিস্থিতি অনুযায়ী নির্বাচন করুন | | পাওয়ার সাপ্লাই স্থায়িত্ব | নিম্ন | উচ্চতর | দীর্ঘ লাইন বা উচ্চ ফ্রিকোয়েন্সির জন্য বাহ্যিক বিদ্যুৎ সরবরাহের পরামর্শ দেওয়া হয় | | খরচ | নিম্ন | উচ্চতর | বাহ্যিক বিদ্যুৎ সরবরাহের জন্য অতিরিক্ত শক্তি ব্যবস্থাপনা উপাদান প্রয়োজন | | বিরোধী হস্তক্ষেপ | দুর্বল | শক্তিশালী | বাহ্যিক বিদ্যুৎ সরবরাহ উচ্চ-হস্তক্ষেপ পরিবেশের জন্য আরও উপযুক্ত |
উপরের সংযোগ পদ্ধতি এবং সংকেত প্রক্রিয়াকরণ কৌশলগুলি কার্যকরভাবে DS18B20 তাপমাত্রা সেন্সরকে যেকোনো মাইক্রোকন্ট্রোলার সিস্টেমে সংহত করতে পারে. পরবর্তী অধ্যায়ে সি ল্যাঙ্গুয়েজ কিভাবে ব্যবহার করতে হয় তা তুলে ধরা হবে:
DS18B20 এর কার্যকরী প্রোগ্রামিং অনুশীলন:
4. DS18B20 ডিজিটাল থার্মোমিটার সি ভাষা প্রোগ্রামিং
4.1 প্রোগ্রামিং ভিত্তি এবং পরিবেশ প্রস্তুতি
4.1.1 প্রোগ্রাম নকশা ধারণা এবং কাঠামো নির্মাণ
DS18B20 ডিজিটাল থার্মোমিটারের C ভাষা প্রোগ্রাম লিখতে শুরু করার আগে, আপনাকে প্রথমে প্রোগ্রাম ডিজাইনের প্রাথমিক ধারণাগুলি স্থাপন করতে হবে. DS18B20 সেন্সর 1-তারের যোগাযোগ প্রোটোকলের মাধ্যমে মাইক্রোকন্ট্রোলারের সাথে যোগাযোগ করে. অতএব, প্রোগ্রামের প্রধান কাজ হল 1-ওয়্যার কমিউনিকেশন প্রোটোকলের সম্পর্কিত ক্রিয়াকলাপগুলি বাস্তবায়ন করা, DS18B20 শুরু করা সহ, নির্দেশাবলী পাঠানো, তাপমাত্রা ডেটা পড়া, এবং পঠিত ডেটা রূপান্তর এবং প্রদর্শন করা.
প্রোগ্রাম ফ্রেমওয়ার্ক মোটামুটি নিম্নলিখিত অংশে বিভক্ত করা হয়:
সূচনা: মাইক্রোকন্ট্রোলার এবং DS18B20 সেন্সর শুরু করুন.
প্রধান লুপ: একটি লুপ রয়েছে যা ক্রমাগত সেন্সর ডেটা পড়ে.
1-তারের যোগাযোগ ফাংশন লাইব্রেরি: এক তারের যোগাযোগ প্রোটোকল বাস্তবায়নের জন্য ফাংশন রয়েছে.
ডেটা প্রসেসিং: সেন্সর দ্বারা প্রত্যাবর্তিত কাঁচা ডেটাকে পাঠযোগ্য তাপমাত্রার মানগুলিতে রূপান্তর করুন.
আউটপুট প্রদর্শন করুন: Display the processed temperature data on the LCD screen or output it to the computer through the serial port.
4.1.2 Development environment construction and configuration
In order to program and develop the DS18B20 digital thermometer, you need to prepare the development environment and configure it appropriately. The following are the basic steps for development:
Select the development environment: Select the appropriate integrated development environment (IDE) according to the type of microcontroller, such as for development based on the ARM Cortex-M series microcontroller. You can use Keil MDK or STM32CubeIDE.
Configure the compiler: ব্যবহৃত IDE অনুযায়ী, সি ভাষার কোড সঠিকভাবে কম্পাইল করা যায় তা নিশ্চিত করতে কম্পাইলার কনফিগার করুন.
হার্ডওয়্যার উন্নয়ন বোর্ড তৈরি করুন: একটি উপযুক্ত মাইক্রোকন্ট্রোলার ডেভেলপমেন্ট বোর্ড নির্বাচন করুন, যেমন STM32 এর উপর ভিত্তি করে, ESP32, ইত্যাদি.
উন্নয়ন বোর্ড সংযুক্ত করুন: DS18B20 সেন্সরটিকে 1-তারের যোগাযোগ প্রোটোকলের মাধ্যমে মাইক্রোকন্ট্রোলারের নির্দিষ্ট পিনের সাথে সংযুক্ত করুন.
কোড লিখুন: IDE-তে একটি নতুন C ভাষা প্রকল্প তৈরি করুন এবং প্রোগ্রাম কোড লেখা শুরু করুন.
কম্পাইল এবং ডিবাগ: কোড কম্পাইল করতে IDE টুল ব্যবহার করুন এবং ডিবাগিংয়ের জন্য ডেভেলপমেন্ট বোর্ডে চালান.
#অন্তর্ভুক্ত <stdio.h>
// DS18B20 প্রথম-লাইন যোগাযোগ ফাংশন লাইব্রেরি ঘোষণা
void DS18B20_Init();
void DS18B20_রিসেট();
void DS18B20_WriteByte(স্বাক্ষরবিহীন char dat);
স্বাক্ষরবিহীন char DS18B20_ReadByte();
int DS18B20_ReadTemperature();
int প্রধান() {
// DS18B20 সেন্সর শুরু করুন
DS18B20_তাপ();
// প্রধান লুপ
যখন(1) {
// তাপমাত্রা মান পড়ুন
int তাপমাত্রা = DS18B20_ReadTemperature();
// Output temperature value to serial port or other display device
printf(“Current temperature: %d\n”, তাপমাত্রা);
}
ফিরে 0;
}
4.2 DS18B20 temperature reading program implementation
4.2.1 Construction of the one-wire communication function library
In order to realize the temperature reading of DS18B20, you first need to build a one-wire communication function library. The following are the implementation methods of several key functions:
DS18B20_তাপ(): Initialize the one-wire communication timing.
DS18B20_Reset(): Reset the sensor and detect its pulse.
DS18B20_WriteByte(স্বাক্ষরবিহীন char dat): Write a byte of data to the sensor.
DS18B20_ReadByte(): Read a byte of data from the sensor.
DS18B20_ReadTemperature(): Read the temperature and convert it.
The implementation of the one-wire communication function library of DS18B20 is quite complicated because it requires precise control of the pin level changes to follow the one-wire communication protocol. The following is an example of a function implementation:
void DS18B20_রিসেট() {
// One-line communication reset sequence, including pulling down the data line, বিলম্ব, releasing the bus, and detecting the presence pulse
// …
}
The purpose of this function is to send a reset pulse to the DS18B20. রিসেট সফল হওয়ার পর, the DS18B20 will return a presence pulse.
4.2.2 Implementation of the temperature reading algorithm
Reading the temperature value of the DS18B20 sensor is a more complicated process, because it is necessary to send specific instructions to the sensor in a certain timing and read the returned data correctly. The algorithm for reading the temperature value is as follows:
Reset the sensor.
Send the “skip ROM” command (0xCC).
Send the “convert temperature” command (0x44).
Wait for the conversion to complete.
Send the “read register” command (0xBE).
Read two bytes of temperature data.
নিম্নলিখিত কোড দেখায় কিভাবে DS18B20 তাপমাত্রার মান পড়তে হয়:
int DS18B20_ReadTemperature() {
স্বাক্ষরবিহীন চর temp_low, তাপমাত্রা_উচ্চ;
স্বাক্ষরবিহীন int temp;
// সেন্সর রিসেট করুন এবং রম নির্দেশাবলী এড়িয়ে যান
DS18B20_Reset();
DS18B20_WriteByte(0xCC); // রম কমান্ড এড়িয়ে যান
// রূপান্তর তাপমাত্রা কমান্ড পাঠান
DS18B20_WriteByte(0x44);
// Wait for the conversion to complete. এখানে আপনাকে DS18B20 এর রূপান্তর সময় অনুযায়ী অপেক্ষা করতে হবে
// …
// সেন্সর রিসেট করুন এবং তাপমাত্রার ডেটা পড়ুন
DS18B20_Reset();
DS18B20_WriteByte(0xCC); // রম কমান্ড এড়িয়ে যান
DS18B20_WriteByte(0xBE); // রেজিস্টার কমান্ড পড়ুন
// দুই বাইট ডেটা পড়ুন
temp_low = DS18B20_ReadByte();
temp_high = DS18B20_ReadByte();
// একটি 16-বিট পূর্ণসংখ্যাতে দুটি বাইট ডেটা একত্রিত করুন
temp = (তাপমাত্রা_উচ্চ << 8) | temp_low;
// তাপমাত্রার মান ফেরত দিন, DS18B20 এর রেজোলিউশনের উপর ভিত্তি করে যথাযথভাবে রূপান্তর করা হচ্ছে
তাপমাত্রা ফেরত;
}
4.2.3 প্রোগ্রাম ডিবাগিং এবং ব্যতিক্রম হ্যান্ডলিং
একটি DS18B20 পড়ার প্রোগ্রাম লেখার সময়, প্রোগ্রাম ডিবাগিং এবং ব্যতিক্রম হ্যান্ডলিং খুবই গুরুত্বপূর্ণ. ডিবাগিংয়ের সময়, you may need to use the serial port debugging assistant to check whether the output temperature value is correct, or use a logic analyzer to monitor the signal timing of the first-line communication. Exception handling needs to take into account hardware failures, communication errors, and abnormal responses of DS18B20.
The following are some debugging and exception handling strategies:
Data verification: After each data read, use a checksum or check bit to confirm the correctness of the data.
Exception capture: Add an exception capture mechanism to the program, such as a timeout retry mechanism, reset the sensor, ইত্যাদি.
Debug information: Add sufficient debugging information output to the program to help locate the problem.
int প্রধান() {
// DS18B20 সেন্সর শুরু করুন
DS18B20_তাপ();
// প্রধান লুপ
যখন(1) {
int temperature;
// Read temperature and check for errors
temperature = DS18B20_ReadTemperature();
যদি (তাপমাত্রা < 0) {
printf(“Error reading temperature!\n”);
// You can choose to retry or other error handling mechanisms
} অন্য {
printf(“Current temperature: %d\n”, তাপমাত্রা);
}
}
ফিরে 0;
}
This chapter introduces the C language programming foundation and environment preparation of the DS18B20 digital thermometer, as well as the implementation of the temperature reading program, and emphasizes the importance of program debugging and exception handling. Through the introduction of this chapter, readers should be able to build a development environment, understand the importance of the first-line communication function library, and write a basic temperature reading program. The following chapters will further delve into the construction and use of the Proteus simulation environment, providing a simulation test method for actual hardware assembly.
5. Proteus simulation diagram and simulation result analysis
5.1 Proteus simulation environment construction
5.1.1 Basic operation of Proteus software
Before starting to build the simulation model of the DS18B20 digital thermometer, you first need to understand and master the basic operation of Proteus software. Proteus is a powerful electronic circuit simulation software that can not only design circuit schematics, but also design circuit PCB layouts and provide simulation functions. Here are some key steps to help you get started with Proteus:
Open the Proteus software and create a new project.
Search and select the required components in the component library, such as DS18B20 sensors, microcontrollers, পাওয়ার সাপ্লাই, connecting wires, ইত্যাদি.
Drag the selected components to the design area and use the mouse to place and layout them.
একটি সম্পূর্ণ সার্কিট গঠন করতে প্রতিটি উপাদানের পিন সংযোগ করতে তারের টুল ব্যবহার করুন.
একটি উপাদান বা তারের বৈশিষ্ট্য পরিবর্তন করতে ডাবল-ক্লিক করুন, যেমন প্রতিরোধের মান, পাওয়ার সাপ্লাই ভোল্টেজ, ইত্যাদি.
নিশ্চিত করুন যে সমস্ত উপাদান সঠিকভাবে সংযুক্ত আছে এবং ত্রুটি বা বাদ আছে কিনা তা পরীক্ষা করুন.
5.1.2 একটি DS18B20 সিমুলেশন প্রকল্প তৈরি করুন
DS18B20 ডিজিটাল থার্মোমিটারের জন্য একটি সিমুলেশন প্রকল্প তৈরি করার পদক্ষেপগুলি নিম্নরূপ:
প্রোটিয়াস শুরু করুন এবং নির্বাচন করুন “নতুন প্রকল্প” একটি নতুন প্রকল্প তৈরি করতে.
প্রকল্পের নাম এবং অবস্থান নির্ধারণ করার পরে, ক্লিক “পরবর্তী”.
একটি প্রকল্প টেমপ্লেট নির্বাচন করুন, যেমন “মাইক্রোপ্রসেসর ভিত্তিক”, এবং ক্লিক করুন “পরবর্তী”.
মধ্যে “প্রকল্প আইটেম” ট্যাব, চেক “ডিফল্ট উপাদান অন্তর্ভুক্ত করুন” এবং একটি মাইক্রোকন্ট্রোলার নির্বাচন করুন (যেমন PIC, এভিআর, ইত্যাদি) এবং একটি DS18B20 সেন্সর.
ক্লিক করুন “শেষ করুন” প্রকল্প তৈরি সম্পূর্ণ করতে.
পরবর্তী, একটি সার্কিট পরিকল্পিত তৈরি করুন:
নির্বাচন করুন “ডিভাইস বাছুন” টুল, কম্পোনেন্ট লাইব্রেরিতে মাইক্রোকন্ট্রোলার এবং DS18B20 সেন্সর খুঁজুন এবং নির্বাচন করুন.
ব্যবহার করুন “প্লেস ডিভাইস” নকশা এলাকায় নির্বাচিত উপাদান স্থাপন টুল.
ব্যবহার করুন “তার” মাইক্রোকন্ট্রোলার এবং DS18B20 সেন্সরের প্রাসঙ্গিক পিন সংযুক্ত করার টুল.
সংযোগ সম্পন্ন করার পর, ব্যবহার করুন “টেক্সট” সহজ বোঝা এবং পরিবর্তনের জন্য সার্কিট ডায়াগ্রামে টীকা যোগ করার টুল.
5.2 সিমুলেশন পরীক্ষা এবং ডেটা বিশ্লেষণ
5.2.1 সিমুলেশন প্যারামিটার এবং শর্ত সেট করুন
সিমুলেশন শুরু করার আগে, আপনাকে সিমুলেশন রানের জন্য প্যারামিটার এবং শর্ত সেট করতে হবে:
প্রোপার্টি সেটিং ইন্টারফেসে প্রবেশ করতে মাইক্রোকন্ট্রোলার কম্পোনেন্টে ডাবল ক্লিক করুন.
পূর্বে লিখিত প্রোগ্রাম ফাইল পাথ এ নির্বাচন করুন “প্রোগ্রাম ফাইল”.
মাইক্রোকন্ট্রোলার এবং DS18B20 সেন্সর উভয়েরই সঠিক পাওয়ার সাপ্লাই ভোল্টেজ রয়েছে তা নিশ্চিত করতে পাওয়ার সাপ্লাই প্যারামিটার সেট করুন.
পরবর্তী, সিমুলেশনের জন্য সময় পরামিতি সেট করুন:
সিমুলেশন কন্ট্রোল প্যানেলে, নির্বাচন করুন “গ্লোবাল সেটিংস”.
সিমুলেশন গতি এবং সর্বাধিক সিমুলেশন সময় সামঞ্জস্য করুন.
সিমুলেশন প্রক্রিয়া চলাকালীন ডেটা বিশ্লেষণ করার জন্য উপযুক্ত ব্রেকপয়েন্ট সেট করুন.
5.2.2 তাপমাত্রা ডেটা অনুকরণ করুন এবং পড়ুন
সিমুলেশন চালান এবং তাপমাত্রা ডেটা অনুকরণ করুন:
ক্লিক করুন “খেলা” সিমুলেশন শুরু করতে সিমুলেশন কন্ট্রোল প্যানেলে বোতাম.
ব্যবহার করুন “ডিবাগ” প্রোগ্রাম চলমান অবস্থা এবং পরিবর্তনশীল মান দেখতে টুল.
তাপমাত্রা মান পড়তে DS18B20 সেন্সর অনুকরণ করুন, যা সাধারণত সিমুলেশন পরিবেশে ভার্চুয়াল থার্মোমিটার পরিবর্তন করে অর্জন করা হয়.
সিমুলেশনে তাপমাত্রার ডেটা পড়তে, আপনি নিম্নলিখিত পদক্ষেপগুলি উল্লেখ করতে পারেন:
DS18B20 উপাদানের বৈশিষ্ট্যে তাপমাত্রা সিমুলেশন সেটিংস খুঁজুন.
বিভিন্ন তাপমাত্রার অবস্থার অধীনে সিস্টেম প্রতিক্রিয়া পরীক্ষা করতে তাপমাত্রা মান পরিবর্তন করুন.
পর্যবেক্ষণ করুন কিভাবে মাইক্রোকন্ট্রোলার প্রোগ্রাম তাপমাত্রা ডেটা প্রক্রিয়া করে.
5.2.3 ফলাফল বিশ্লেষণ এবং সমস্যা সমাধান
সিমুলেশন ফলাফল বিশ্লেষণ করুন এবং থার্মোমিটারের কার্যকারিতা নিশ্চিত করুন:
তাপমাত্রা রিডিং সঠিক কিনা তা পরীক্ষা করতে আউটপুট উইন্ডোতে ডেটা মনিটর করুন.
তথ্য যোগাযোগ প্রক্রিয়া স্বাভাবিক কিনা তা নিরীক্ষণ করতে লজিক বিশ্লেষক টুল ব্যবহার করুন.
কোন অস্বাভাবিক সংকেত বা অস্থির আউটপুট জন্য পরীক্ষা করুন.
ত্রুটি নির্ণয় এবং ডিবাগিং সঞ্চালন:
যদি তাপমাত্রা রিডিং ভুল হয় বা একটি ত্রুটি আছে, DS18B20 এর সংযোগ পদ্ধতি এবং কনফিগারেশন পরীক্ষা করুন.
প্রথম সারির যোগাযোগ এবং ডেটা রূপান্তর অ্যালগরিদমগুলি সঠিকভাবে প্রয়োগ করা হয়েছে তা নিশ্চিত করতে প্রোগ্রাম কোড বিশ্লেষণ করুন.
ব্যবহার করুন “থামো” function of the simulation software to pause the simulation and observe the current status of the system.
English
Afrikaans
العربية
বাংলা
bosanski jezik
Български
Català
粤语
中文(简体)
中文(漢字)
Hrvatski
Čeština
Nederlands
Eesti keel
Suomi
Français
Deutsch
Ελληνικά
हिन्दी; हिंदी
Magyar
Bahasa Indonesia
Italiano
日本語
한국어
Latviešu valoda
Lietuvių kalba
македонски јазик
Bahasa Melayu
Norsk
پارسی
Polski
Português
Română
Русский
Cрпски језик
Slovenčina
Slovenščina
Español
Svenska
ภาษาไทย
Türkçe
Українська
اردو
Tiếng Việt





