ارڈینو کے ساتھ ڈیجیٹل پوٹینومیٹر ایم سی پی 41xx کا استعمال

مسائل کو ختم کرنے کے لئے ہمارے آلے کو آزمائیں





اس پروجیکٹ میں ہم ڈیجیٹل پوٹینومیٹر کو آرڈینو کے ساتھ انٹرفیس کرنے جا رہے ہیں۔ اس مظاہرے میں پوٹینومیٹر ایم سی پی 41010 استعمال کیا گیا ہے لیکن آپ ایم سی 41 ** سیریز کا کوئی بھی ڈیجیٹل پوٹینومیٹر استعمال کرسکتے ہیں۔

انکیت نیگی



MC41010 کا تعارف

ڈیجیٹل پوٹینومیٹر بالکل اسی طرح کے کسی بھی ینالاگ پوٹینومیٹر کی طرح ہوتے ہیں جس میں تین ٹرمینلز صرف ایک ہی فرق کے ہوتے ہیں۔ اگرچہ ینالاگ میں آپ کو وائپر کی پوزیشن کو دستی طور پر تبدیل کرنا ہوگا ، ڈیجیٹل پوٹینومیٹر وائپر پوزیشن کسی بھی مائکروکنٹرولر یا مائکرو پروسیسر کا استعمال کرتے ہوئے پوٹینومیٹر کو دیئے گئے سگنل کے مطابق ترتیب دی گئی ہے۔

انجیر. MC41010 IC پن آؤٹ

انجیر. MC41010 IC پن آؤٹ



MC41010 لائن پیکیج IC میں ایک 8 پن ڈبل ہے۔ کسی بھی ینالاگ پوٹینومیٹر کی طرح یہ آئی سی 5k ، 10k ، 50k ، اور 100k میں آتا ہے۔ اس سرکٹ میں 10 ک پوٹینومیٹر استعمال ہوتا ہے
MC4131 کے 8 ٹرمینلز درج ذیل ہیں:

پن نمبر پن نام چھوٹی سی تفصیل

1 CS اس پن کا استعمال ارڈوینو سے منسلک غلام یا پردیی کو منتخب کرنے کے لئے کیا جاتا ہے۔ اگر یہ ہے
کم تو MC41010 منتخب کیا گیا ہے اور اگر یہ زیادہ ہے تو MC41010 کو غیر منتخب کردیا گیا ہے۔

2 ایس سی ایل کے مشترکہ / سیریل گھڑی ، ارڈوینو ڈیٹا کی منتقلی کی شروعات کے لئے گھڑی دیتا ہے
آریڈینو سے آئی سی اور اس کے برعکس۔

اس پن کے ذریعہ 3 ایس ڈی آئی / ایس ڈی او سیریل ڈیٹا ارڈینو اور آئی سی کے درمیان منتقل کیا جاتا ہے
آرڈوینو کا 4 VSS گراؤنڈ ٹرمینل آئی سی کے اس پن سے منسلک ہے۔

5 PA0 یہ پوٹینومیٹر کا ایک ٹرمینل ہے۔

6 PW0 یہ ٹرمینل پوٹینومیٹر کا وائپر ٹرمینل ہے (مزاحمت کو تبدیل کرنے کے لئے)
7 PB0 یہ پوٹینومیٹر کا ایک اور ٹرمینل ہے۔

آئی سی کو 8 وی سی سی پاور کو اس پن کے ذریعے دیا گیا ہے۔

اس آئی سی میں صرف ایک پوٹینومیٹر ہے۔ کچھ آئی سی میں زیادہ سے زیادہ دو پوٹینومیٹر ان بلٹ ہوتے ہیں۔ یہ
وائپر اور کسی بھی دوسرے ٹرمینل کے مابین مزاحمت کی قدر کو 0 سے 255 تک 256 مراحل میں تبدیل کیا جاتا ہے۔ چونکہ ہم 10k مزاحم کی قیمت کو استعمال کر رہے ہیں اس طرح کے اقدامات میں تبدیل کیا گیا ہے۔
10 ک / 256 = 39 اوہم فی قدم 0 اور 255 کے درمیان

اجزاء

ہمیں اس پروجیکٹ کے لئے مندرجہ ذیل اجزاء کی ضرورت ہے۔

1. آرڈینو
2. MC41010 IC
3. 220 OHM ریسرچ
4. ایل ای ڈی
5. تار سے منسلک

جیسا کہ انجیر میں دکھایا گیا ہے روابط بنائیں۔

1. سی ایس پن کو ڈیجیٹل پن 10 سے مربوط کریں۔
2. ایس سی کے پن کو ڈیجیٹل پن 13 سے مربوط کریں۔
3. ایسڈیآئ / ایس ڈی او پن کو ڈیجیٹل پن 11 سے مربوط کریں۔
4. ارڈوینو کے گراؤنڈ پن پر وی ایس ایس
5. PA0 سے 5v پن ارڈوینو
6. پی بی 0 ارڈوینو کی زمین تک
7. پی ڈبلیو او سے آرڈوینو کا ینالاگ پن A0۔
8. وی سی سی سے 5 وی ارڈوینو۔

پروگرام کوڈ 1

یہ کوڈ وائپر ٹرمینل اور آرڈوینو IDE کے سیریل مانیٹر پر گراؤنڈ میں وولٹیج کی تبدیلی کو پرنٹ کرتا ہے۔

#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 کی وضاحت:

آرڈوینو کے ساتھ ڈیجیٹل پوٹینومیٹر استعمال کرنے کے ل you آپ کو پہلے ایس پی آئی لائبریری شامل کرنے کی ضرورت ہے جو خود ارڈینو آئ ڈی ای میں فراہم کی جاتی ہے۔ بس اس کمانڈ سے لائبریری کو کال کریں:
# شامل کریں

باطل سیٹ اپ میں ، پنوں کو آؤٹ پٹ یا ان پٹ کے بطور تفویض کیا جاتا ہے۔ اور آرڈینو اور آئی سی کے درمیان ایس پی آئی اور سیریل مواصلات شروع کرنے کے احکامات بھی دیئے گئے ہیں جو ہیں:

#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) فنکشن آئیکس کے مخصوص پتے پر مزاحمت کو تبدیل کرنے کے ل thee تائیس ویلیو لکھتا ہے۔

وائپر اور اینڈ ٹرمینل کے مابین مزاحمت کا اندازہ ان فارمولوں کے ذریعہ لگایا جاسکتا ہے:

آر 1 = 10 ک * (256 سطح) / 256 + آر ڈبلیو
اور
R2 = 10 ک * سطح / 256 + Rw

وائپر اور ایک ٹرمینل کے درمیان یہاں R1 = مزاحمت ہے
وائپر اور دوسرے ٹرمینل کے درمیان R2 = مزاحمت
سطح = کسی خاص وقت پر قدم (متغیر 'میں' لوپ کے لئے استعمال کیا جاتا ہے)
Rw = وائپر ٹرمینل کی مزاحمت (شبیہہ کے ڈیٹاشیٹ میں پایا جاسکتا ہے)
ڈیجیٹل پوٹ رائٹ () فنکشن کا استعمال کرتے ہوئے ڈیجیٹل پوٹینومیٹر چپ کا انتخاب سی ایس پن کو کم وولٹیج تفویض کرکے کیا جاتا ہے۔ جیسے ہی شبیہہ منتخب کیا گیا ہے ، ایک ایڈریس طلب کرنا ہوگا جس پر ڈیٹا لکھا جائے گا۔ کوڈ کے آخری حصے میں:

SPI.transfer (B00010001)

پتے کو کہا جاتا ہے جو آئ سی کے وائپر ٹرمینل کو منتخب کرنے کے لئے B00010001 ہے جس پر ڈیٹا لکھا جائے گا۔ اور اس لئے لوپ کی قدر کے لئے یعنی مزاحمت کو تبدیل کرنے کے لئے لکھا گیا ہے۔

سرکٹ کام:

جب تک کہ میں کی قیمت ارڈوینو کے A0 پن میں ان پٹ کو تبدیل کرتی رہتی ہے ، تو 0 اور 1023 کے درمیان بھی بدلا جاتا رہتا ہے۔ ایسا ہوتا ہے کیونکہ وائپر ٹرمینل براہ راست A0 پن سے جڑا ہوتا ہے ، اور پوٹینومیٹر کا دوسرا ٹرمینل بالترتیب 5 وولٹ اور زمین سے جڑا ہوتا ہے۔ اب جب مزاحمت بدل جاتی ہے تو اس کے پار وولٹیج کرتے ہیں جو براہ راست ارڈینو کے ذریعہ ان پٹ کے طور پر لیا جاتا ہے اور اس طرح ہمیں سیریل مانیٹر پر مزاحمت کی ایک خاص قدر کے ل a وولٹیج کی قیمت مل جاتی ہے۔

تخروپن 1:

اس سرکٹ کے لئے یہ نقالی تصاویر ہیں جو میں مختلف اقدار پر رکھتا ہوں:

جیسا کہ اعداد و شمار میں دکھایا گیا ہے ، اب آئی سی کے وائپر ٹرمینل سے 220 ہہم ریزسٹر کے ساتھ لیڈ ان سیریز میں جڑیں۔

کوڈ 2:

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

کوڈ 2 کی وضاحت:

یہ کوڈ 1 کوڈ 1 جیسا ہی ہے سوائے اس کے کہ اس کوڈ میں سیریل کمانڈز موجود نہیں ہیں۔ تو سیریل مانیٹر پر کوئی قدر نہیں چھاپے گی۔

کام کی وضاحت

چونکہ لیڈ وائپر ٹرمینل اور گراؤنڈ کے مابین جڑ جاتی ہے جیسے مزاحمت کی تبدیلی ہوتی ہے لہذا وولٹیج کی قیادت کی جاتی ہے۔ اور اسی وجہ سے جس مزاحمت کی سمت جڑ جاتی ہے وہ 0 ہیم سے زیادہ سے زیادہ بڑھ جاتا ہے لہذا لیڈ کی چمک ہوجاتی ہے۔ زیادہ سے 0 وی تک مزاحمت میں کمی کی وجہ سے جو آہستہ آہستہ ختم ہوتی جارہی ہے۔

نقلی 2

نقلی 3




پچھلا: جوائس اسٹک کا استعمال کرتے ہوئے سروو موٹر کو کیسے کنٹرول کیا جائے اگلا: ارڈینو کا استعمال کرتے ہوئے یہ جدید ترین ڈیجیٹل ایمیٹر بنائیں