আরডুইনো সহ ডিজিটাল পোটেন্টিওমিটার এমসিপি 41 এক্সএক্সএক্স ব্যবহার করা

আরডুইনো সহ ডিজিটাল পোটেন্টিওমিটার এমসিপি 41 এক্সএক্সএক্স ব্যবহার করা

এই প্রকল্পে আমরা আরডুইনো দিয়ে একটি ডিজিটাল পোটেন্টিওমিটার ইন্টারফেস করতে যাচ্ছি। এই প্রদর্শনীতে পন্টিওমিটার এমসিপি 41010 ব্যবহৃত হয় তবে আপনি এমসি 41 ** সিরিজের যে কোনও ডিজিটাল পোটেন্টিওমিটার ব্যবহার করতে পারেন।



লিখেছেন অঙ্কিত নেগি

MC41010 এর ভূমিকা

ডিজিটাল পোটেনিওমিটারগুলি কেবলমাত্র একটি পার্থক্য সহ তিনটি টার্মিনাল সহ যে কোনও এনালগ পেন্টিয়োমিটারের মতো। যেখানে অ্যানালগটিতে আপনাকে ম্যানুয়ালি ওয়াইপারের অবস্থানটি পরিবর্তন করতে হবে, ডিজিটাল পোটেন্টিওমিটারের ক্ষেত্রে ওয়াইপারের অবস্থানটি কোনও মাইক্রোকন্ট্রোলার বা মাইক্রোপ্রসেসর ব্যবহার করে পেন্টিওমিটারকে দেওয়া সংকেত অনুযায়ী সেট করা থাকে।





ড। MC41010 আইসি পিনআউট

ড। MC41010 আইসি পিনআউট

এমসি 41010 লাইন প্যাকেজ আইসিতে একটি 8 পিন দ্বৈত। যে কোনও এনালগ পন্টিয়োমিটারের মতো এই আইসি 5k, 10k, 50k, এবং 100k তে আসে। এই সার্কিটে 10 কে পোটেন্টিওমিটার ব্যবহার করা হয়
MC4131 এর নিম্নলিখিত 8 টি টার্মিনাল রয়েছে:



পিন নং পিন নাম ছোট বর্ণনা

1 সিএস এই পিনটি আরডুইনোতে সংযুক্ত গোলাম বা পেরিফেরিয়াল নির্বাচন করতে ব্যবহৃত হয়। যদি এই হয়
কম তবে MC41010 নির্বাচন করা হয়েছে এবং এটি যদি উচ্চ হয় তবে MC41010 অপসারণ করা হয়।

2 এসসিএলকে শেয়ার / সিরিয়াল ক্লক, আরডুইনো থেকে ডেটা স্থানান্তর শুরু করার জন্য ঘড়ি দেয়
আরডুইনো থেকে আইসি এবং তদ্বিপরীত।

3 এসডিআই / এসডিও সিরিয়াল ডেটা এই পিনের মাধ্যমে আরডুইনো এবং আই সি এর মধ্যে স্থানান্তরিত হয়
আরডুইনোর 4 টি ভিএসএস গ্রাউন্ড টার্মিনাল আইসির এই পিনের সাথে সংযুক্ত।

5 PA0 এটি পোটিনোমিটারের একটি টার্মিনাল।

6 পিডব্লিউ 0 এই টার্মিনালটি পোটিনোমিটারের সম্মোহক টার্মিনাল (প্রতিরোধের পরিবর্তন করতে)
7 পিবি0 এটি পোটিনোমিটারের আরেকটি টার্মিনাল।

এই পিনের মাধ্যমে আইসি-তে 8 ভিসিসি পাওয়ার দেওয়া হয়।

এই আইসিটিতে একটি মাত্র পেন্টিওমিটার রয়েছে। কিছু আইসিতে সর্বাধিক দুটি সম্ভাব্য ইনবিল্ট থাকে। এই
ওয়াইপার এবং অন্য কোনও টার্মিনালের মধ্যে প্রতিরোধের মান 0 থেকে 255 পর্যন্ত 256 ধাপে পরিবর্তিত হয় Since যেহেতু আমরা 10k রোধকের মান ব্যবহার করছি তার পদক্ষেপগুলিতে এই পদক্ষেপগুলি পরিবর্তন করা হয়েছে:
10 কে / 256 = 39 ওহম প্রতি ধাপে 0 এবং 255 এর মধ্যে

উপাদানসমূহ

এই প্রকল্পের জন্য আমাদের নিম্নলিখিত উপাদানগুলির প্রয়োজন।

1.আরডিনো
2. MC41010 আইসি
3. 220 ওএইচএম সংরক্ষণকারী
4. এলইডি
৫. সংযোগ স্থাপনের তারগুলি

ডুমুর হিসাবে দেখানো হয়েছে হিসাবে সংযোগ তৈরি করুন।

1. সিএস পিনকে ডিজিটাল পিন 10 এ সংযুক্ত করুন।
2. এসসিকে পিনটি ডিজিটাল পিন 13 এ সংযুক্ত করুন।
৩. এসডিআই / এসডিও পিনকে ডিজিটাল পিন 11 এ সংযুক্ত করুন।
৪.আরডুইনোর গ্রাউন্ড পিন থেকে ভিএসএস
5. PA0 থেকে 5v পিন আরডুইনো
P. আর্দুইনোর গ্রাউন্ডে পিবি0
7. আরডুইনোর এনালগ পিন এ 0 তে পিডব্লিউও।
8. ভিসিসি থেকে 5 ভি আরডুইনো।

প্রোগ্রাম কোড 1

এই কোডটি ওয়াইডার টার্মিনাল জুড়ে ভোল্টেজ পরিবর্তন এবং আরডুইনো আইডিইয়ের সিরিয়াল মনিটরে গ্রাউন্ড প্রিন্ট করে।

#include
int CS = 10 // initialising variable CS pin as pin 10 of arduino
int x // initialising variable x
float Voltage // initialising variable voltage
int I // this is the variable which changes in steps and hence changes resistance accordingly.
void setup()
{
pinMode (CS , OUTPUT) // initialising 10 pin as output pin
pinMode (A0, INPUT) // initialising pin A0 as input pin
SPI.begin() // this begins Serial peripheral interfece
Serial.begin(9600) // this begins serial communications between arduino and ic.
}
void loop()
{
for (int i = 0 i <= 255 i++)// this run loops from 0 to 255 step with 10 ms delay between each step
{
digitalPotWrite(i) // this writes level i to ic which determines resistance of ic
delay(10)
x = analogRead(A0) // read analog values from pin A0
Voltage = (x * 5.0 )/ 1024.0// this converts the analog value to corresponding voltage level
Serial.print('Level i = ' ) // these serial commands print value of i or level and voltage across wiper
Serial.print(i) // and gnd on Serial monitor of arduino IDE
Serial.print(' Voltage = ')
Serial.println(Voltage,3)
}
delay(500)
for (int i = 255 i >= 0 i--) // this run loops from 255 to 0 step with 10 ms delay between each step
{
digitalPotWrite(i)
delay(10)
x = analogRead(A0)
Voltage = (x * 5.0 )/ 1024.0 // this converts the analog value to corresponding voltage level
Serial.print('Level i = ' ) // these serial commands print value of i or level and voltage across wiper
Serial.print(i) // and gnd on Serial monitor of arduino IDE
Serial.print(' Voltage = ')
Serial.println(Voltage,3)
}
}
int digitalPotWrite(int value) // this block is explained in coding section
{
digitalWrite(CS, LOW)
SPI.transfer(B00010001)
SPI.transfer(value)
digitalWrite(CS, HIGH)

কোড 1 ব্যাখ্যা:

আরডুইনোর সাথে ডিজিটাল পোটেনিওমিটার ব্যবহার করতে আপনাকে প্রথমে এসপিআই লাইব্রেরি অন্তর্ভুক্ত করতে হবে যা আরডুইনো আইডিইতে সরবরাহ করা হয়। এই কমান্ডটি দিয়ে কেবল লাইব্রেরিকে কল করুন:
# অন্তর্ভুক্ত

অকার্যকর সেটআপে, পিনগুলি আউটপুট বা ইনপুট হিসাবে নির্ধারিত হয়। এবং এসপিআই এবং আরডুইনো এবং আইসি-র মধ্যে সিরিয়াল যোগাযোগ শুরু করার কমান্ডগুলিও দেওয়া হয়েছে:

#include
int CS = 10
int x
float Voltage
int i
void setup()
{
pinMode (CS , OUTPUT)
pinMode (A0, INPUT)
SPI.begin()// this begins Serial peripheral interfece
}
void loop()
{
for (int i = 0 i <= 255 i++)// this run loops from 0 to 255 step with 10 ms delay between each step
{
digitalPotWrite(i)// this writes level i to ic which determines resistance of ic
delay(10)
}
delay(500)
for (int i = 255 i >= 0 i--)// this run loops from 255 to 0 step with 10 ms delay between each step
{
digitalPotWrite(i)
delay(10)
}
}
int digitalPotWrite(int value)// this block is explained in coding section
{
digitalWrite(CS, LOW)
SPI.transfer(B00010001)
SPI.transfer(value)
digitalWrite(CS, HIGH)
}

অকার্যকর লুপে, লুপের জন্য মোট 256 পদক্ষেপে ডিজিটাল পটের প্রতিরোধের পরিবর্তন করতে ব্যবহৃত হয়। প্রথমে 0 থেকে 255 এবং তারপরে আবার 0 এ ফিরে প্রতিটি পদক্ষেপের মধ্যে 10 মিলিসেকেন্ড বিলম্ব সহ:

SPI.begin() and Serial.begin(9600)

ডিজিটালপট রাইট (i) ফাংশন আইসির নির্দিষ্ট ঠিকানায় প্রতিরোধের পরিবর্তন করতে thyse মান লিখে।

ওয়াইপার এবং শেষ টার্মিনালের মধ্যে প্রতিরোধের এই সূত্রগুলি ব্যবহার করে গণনা করা যেতে পারে:

আর 1 = 10 কে * (256-স্তর) / 256 + আরডাব্লু
এবং
আর 2 = 10 কে * স্তর / 256 + আরডব্লিউ

এখানে উইপার এবং একটি টার্মিনালের মধ্যে আর 1 = প্রতিরোধের
সম্মোহক এবং অন্যান্য টার্মিনালের মধ্যে আর 2 = প্রতিরোধের
স্তর = একটি নির্দিষ্ট তাত্ক্ষণিক পদক্ষেপে (পরিবর্তনশীল 'আমি' লুপের জন্য ব্যবহৃত)
উইন্ডো টার্মিনালের আরডাব্লু = প্রতিরোধের (আইসিটির ডেটাশিটে পাওয়া যাবে)
ডিজিটালপট রাইট () ফাংশন ব্যবহার করে ডিজিটাল পোটেন্টিওমিটার চিপ সিএস পিনকে কম ভোল্টেজ বরাদ্দ করে নির্বাচিত হয়। আইকনটি নির্বাচিত হওয়ার সাথে সাথে একটি ঠিকানা অবশ্যই কল করা উচিত যা কোন ডেটা লেখা হবে। কোডের শেষ অংশে:

SPI.transfer (B00010001)

আইডির যে ওয়াইপার টার্মিনালটিতে ডেটা লেখা হবে তা নির্বাচন করার জন্য ঠিকানাটি বলা হয় যা B00010001। এবং তাই লুপের মান হিসাবে অর্থাত্, আমি প্রতিরোধের পরিবর্তন করতে লিখেছি।

সার্কিট কাজ:

যতক্ষণ না i এর মান আর্দুইনোর এ0 পিনে ইনপুট পরিবর্তন করে চলেছে ততক্ষণ 0 এবং 1023 এর মধ্যেও পরিবর্তন বজায় রাখে This এটি ঘটায় কারণ উইপার টার্মিনালটি সরাসরি এ0 পিনের সাথে সংযুক্ত থাকে এবং পোটেন্টিওমিটারের অন্যান্য টার্মিনাল যথাক্রমে 5 ভোল্ট এবং গ্রাউন্ডের সাথে সংযুক্ত থাকে। এখন যখন প্রতিরোধের পরিবর্তন হয় তখন এটি জুড়ে ভোল্টেজ করুন যা সরাসরি ইনপুট হিসাবে আরডুইনো দ্বারা নেওয়া হয় এবং এইভাবে আমরা প্রতিরোধের একটি নির্দিষ্ট মানের জন্য সিরিয়াল মনিটরে একটি ভোল্টেজ মান পাই।

সিমুলেশন 1:

এই সার্কিটের জন্য আমি বিভিন্ন মানগুলিতে কিছু সিমুলেশন ছবি:

চিত্রের মতো দেখানো হয়েছে, কেবল আইসি-র ওয়াইপার টার্মিনালে 220 মগ প্রতিরোধকের সাথে নেতৃত্বাধীন সিরিজে সংযুক্ত করুন।

কোড 2:

for (int i = 0 i <= 255 i++) and for (int i = 255 i>= 0 i--)

কোড 2 ব্যাখ্যা:

এই কোডটিতে কোনও সিরিয়াল কমান্ড নেই ব্যতীত এই কোড 1 কোডের সমান। সুতরাং সিরিয়াল মনিটরে কোনও মান মুদ্রিত হবে না।

ওয়ার্কিং এক্সপ্ল্যানেশন

নেতৃত্বটি যেহেতু উইপার টার্মিনাল এবং গ্রাউন্ডের মধ্যে প্রতিরোধের পরিবর্তন হিসাবে সংযুক্ত থাকে তাই নেতৃত্বে জুড়ে ভোল্টেজ করে do এবং সেইজন্য প্রতিরোধ হিসাবে যেটি জুড়ে নেতৃত্বে যুক্ত থাকে এটি 0 এমএএম থেকে সর্বাধিক হয়ে যায় তাই নেতৃত্বের উজ্জ্বলতা ঘটে। যা সর্বোচ্চ থেকে 0 ভি পর্যন্ত প্রতিরোধের হ্রাসের কারণে আবার ধীরে ধীরে ম্লান হয়ে যায়।

সিমুলেশন 2

সিমুলেশন 3




পূর্ববর্তী: জয়স্টিক ব্যবহার করে সার্ভো মোটর কীভাবে নিয়ন্ত্রণ করবেন পরবর্তী: আরডুইনো ব্যবহার করে এই উন্নত ডিজিটাল অ্যামিটার তৈরি করুন