- ضروری اجزاء
- MCP4725 DAC ماڈیول (ینالاگ کنورٹر ڈیجیٹل)
- ایم سی پی 4725 میں آئی 2 سی مواصلات
- سرکٹ ڈایاگرام اور وضاحت
- پروگرامنگ STM32F103C8 ڈیجیٹل سے ینالاگ تبادلوں کے لئے
- ڈی اے سی کو ایس ٹی ایم 32 کے ساتھ جانچنا
ہم سب جانتے ہیں کہ مائیکروکنٹرولر صرف ڈیجیٹل اقدار کے ساتھ کام کرتے ہیں لیکن حقیقی دنیا میں ہمیں ینالاگ سگنلز سے نمٹنا ہے۔ اسی وجہ سے اے ڈی سی (ینالاگ سے ڈیجیٹل کنورٹرز) حقیقی دنیا کے ینالاگ قدروں کو ڈیجیٹل شکل میں تبدیل کرنے کے لئے موجود ہے تاکہ مائکروکانٹرولر سگنل پر کارروائی کرسکیں۔ لیکن کیا ہوگا اگر ہمیں ڈیجیٹل اقدار سے اینالاگ سگنل کی ضرورت ہو ، تو یہاں ڈی اے سی (ڈیجیٹل ٹو ینالاگ کنورٹر) آتا ہے ۔
ڈیجیٹل ٹو اینالاگ کنورٹر کی ایک آسان مثال اسٹوڈیو میں ایک گانا ریکارڈ کرنا ہے جہاں ایک فنکار گلوکار مائکروفون استعمال کررہا ہے اور گانا گا رہا ہے۔ یہ ینالاگ آواز کی لہریں ڈیجیٹل شکل میں تبدیل ہو جاتی ہیں اور پھر ڈیجیٹل فارمیٹ فائل میں اسٹور ہوتی ہیں اور جب اسٹور ڈیجیٹل فائل کا استعمال کرتے ہوئے گانا چلایا جاتا ہے تو ڈیجیٹل ویلیو اسپیکر آؤٹ پٹ کے لئے ینالاگ سگنل میں تبدیل ہوجاتی ہیں۔ تو اس سسٹم میں ڈی اے سی استعمال ہوتا ہے۔
ڈی اے سی بہت سے ایپلی کیشنز میں استعمال کیا جاسکتا ہے جیسے موٹر کنٹرول ، ایل ای ڈی لائٹس کی کنٹرول چمک ، آڈیو یمپلیفائر ، ویڈیو انکوڈرز ، ڈیٹا حصول سسٹم وغیرہ۔
ہم نے پہلے ہی MCP4725 DAC ماڈیول کو Ardino کے ساتھ انٹرفیس کیا۔ آج ہم STM32F103C8 مائکروکونٹرولر کا استعمال کرکے ڈیجیٹل ٹو ینالاگ کنورٹر ڈیزائن کرنے کے لئے ایک ہی MCP4725 DAC IC استعمال کریں گے۔
ضروری اجزاء
- STM32F103C8
- MCP4725 DAC IC
- 10 ک پوٹینومیٹر
- 16x2 LCD ڈسپلے
- بریڈ بورڈ
- مربوط تاروں
MCP4725 DAC ماڈیول (ینالاگ کنورٹر ڈیجیٹل)
ایم سی پی 4725 آئی سی ایک 12 بٹ ڈیجیٹل ٹو ینالاگ کنورٹر ماڈیول ہے جو آؤٹ پٹ اینالاگ وولٹیج (0 سے 5V) پیدا کرنے کے لئے استعمال ہوتا ہے اور اسے I2C مواصلات کا استعمال کرکے کنٹرول کیا جاتا ہے۔ یہ بورڈ نان وولاٹائل میموری EEPROM پر بھی آتا ہے۔
اس آئی سی میں 12 بٹ ریزولوشن ہے۔ اس کا مطلب ہے کہ ہم حوالہ وولٹیج کے سلسلے میں وولٹیج آؤٹ پٹ فراہم کرنے کے لئے ان پٹ کے طور پر (0 سے 4096) استعمال کرتے ہیں۔ زیادہ سے زیادہ حوالہ وولٹیج 5V ہے۔
آؤٹ پٹ وولٹیج کا حساب کتاب کرنے کا فارمولا
O / P وولٹیج = (حوالہ وولٹیج / ریزولوشن) x ڈیجیٹل ویلیو
مثال کے طور پر اگر ہم 5V کو ریفرنس وولٹیج کے طور پر استعمال کرتے ہیں اور آئیے فرض کریں کہ ڈیجیٹل ویلیو 2048 ہے۔ لہذا ڈی اے سی آؤٹ پٹ کا حساب لگانا ہے۔
O / P وولٹیج = (5/4096) x 2048 = 2.5V
ایم سی پی 4725 کا پن آؤٹذیل میں ایم سی پی 4725 کی تصویر ہے جس میں واضح طور پر پن کے نام بتائے گئے ہیں۔
ایم سی پی 4725 کے پنوں |
استعمال کریں |
آؤٹ |
نتائج ینالاگ وولٹیج |
GND |
آؤٹ پٹ کے لئے GND |
ایس سی ایل |
I2C سیریل گھڑی لائن |
ایس ڈی اے |
I2C سیریل ڈیٹا لائن |
وی سی سی |
ان پٹ حوالہ وولٹیج 5V یا 3.3V |
GND |
ان پٹ کے لئے GND |
ایم سی پی 4725 میں آئی 2 سی مواصلات
اس ڈی اے سی کو آئی 2 سی مواصلات کا استعمال کرتے ہوئے کسی بھی مائکرو قابو پانے والے کے ساتھ انٹرفیس کیا جاسکتا ہے۔ I2C مواصلت میں صرف دو تاروں ایس سی ایل اور ایس ڈی اے کی ضرورت ہے۔ پہلے سے ہی ، MCP4725 کیلئے I2C ایڈریس 0x60 ہے۔ STM32F103C8 میں I2C مواصلات کے بارے میں مزید معلومات کے ل the لنک کی پیروی کریں۔
STM32F103C8 میں I2C پن:
ایس ڈی اے: PB7 یا PB9 ، PB11۔
ایس سی ایل: پی بی 6 یا پی بی 8 ، پی بی 10۔
سرکٹ ڈایاگرام اور وضاحت
STM32F103C8 اور 16x2 LCD کے درمیان رابطے
ایل سی ڈی پن نمبر |
LCD پن کا نام |
STM32 پن کا نام |
1 |
گراؤنڈ (Gnd) |
گراؤنڈ (G) |
2 |
وی سی سی |
5V |
3 |
VEE |
اس کے برعکس سینٹر آف پوٹینومیٹر سے پن |
4 |
رجسٹر سلیکٹ (آر ایس) |
پی بی 11 |
5 |
پڑھیں / لکھیں (RW) |
گراؤنڈ (G) |
6 |
(EN) کو فعال کریں |
پی بی 10 |
7 |
ڈیٹا بٹ 0 (DB0) |
کوئی کنکشن نہیں (NC) |
8 |
ڈیٹا بٹ 1 (DB1) |
کوئی کنکشن نہیں (NC) |
9 |
ڈیٹا بٹ 2 (DB2) |
کوئی کنکشن نہیں (NC) |
10 |
ڈیٹا بٹ 3 (DB3) |
کوئی کنکشن نہیں (NC) |
11 |
ڈیٹا بٹ 4 (DB4) |
پی بی 0 |
12 |
ڈیٹا بٹ 5 (DB5) |
پی بی 1 |
13 |
ڈیٹا بٹ 6 (DB6) |
پی سی 13 |
14 |
ڈیٹا بٹ 7 (DB7) |
پی سی 14 |
15 |
ایل ای ڈی مثبت |
5V |
16 |
ایل ای ڈی منفی |
گراؤنڈ (G) |
MCP4725 DAC IC اور STM32F103C8 کے درمیان رابطہ
ایم سی پی 4725 |
STM32F103C8 |
ملٹی میٹر |
ایس ڈی اے |
پی بی 7 |
این سی |
ایس سی ایل |
پی بی 6 |
این سی |
آؤٹ |
PA1 |
مثبت تحقیقات |
GND |
GND |
منفی تحقیقات |
وی سی سی |
3.3V |
این سی |
ایک پوٹینومیٹر بھی جڑا ہوا ہے ، جس میں STM32F10C8 کے PA1 ینالاگ ان پٹ (ADC) سے منسلک سینٹر پن ، GND سے جڑا ہوا بائیں پن اور STM32F103C8 کے 3.3V سے جڑا ہوا دائیں طرف کا پن ہے۔
اس ٹیوٹوریل میں ہم STM32 کے ساتھ MCP4725 DAC IC کو مربوط کریں گے اور STM32 ADC پن PA0 کو ینالاگ ان پٹ ویلیو فراہم کرنے کے لئے 10k potentiometer استعمال کریں گے۔ اور پھر ینالاگ قدر کو ڈیجیٹل شکل میں تبدیل کرنے کے لئے اے ڈی سی کا استعمال کریں۔ اس کے بعد وہ ڈیجیٹل اقدار I2C بس کے ذریعے MCP4725 پر بھیجیں۔ پھر ان ڈیجیٹل اقدار کو DAC MCP4725 IC کا استعمال کرکے ینالاگ میں تبدیل کریں اور پھر ST O32 کا ایک اور ADC پن PA1 استعمال کریں تاکہ پن OUT سے MCP4725 کے ینالاگ آؤٹ پٹ کو چیک کیا جاسکے۔ آخر میں دونوں ADC اور DAC دونوں اقدار کو 16x2 LCD ڈسپلے میں وولٹیج کے ساتھ ظاہر کریں۔
پروگرامنگ STM32F103C8 ڈیجیٹل سے ینالاگ تبادلوں کے لئے
STM32F103C8 پر کوڈ اپ لوڈ کرنے کے لئے اب FTDI پروگرامر کی ضرورت نہیں ہے۔ اس کو STM32 کے USB پورٹ کے ذریعہ سیدھے پی سی سے مربوط کریں اور آرڈینو IDE کے ساتھ پروگرامنگ شروع کریں ۔ ایردوینو IDE میں اپنے STM32 پروگرامنگ کے بارے میں مزید جاننے کے ل this اس لنک پر جائیں۔ اس STM32 DAC سبق کے لئے مکمل پروگرام اختتام پر دیا گیا ہے۔
پہلا I2C اور LCD استعمال کرتے ہوئے کے لئے لائبریری میں شامل wire.h ، SoftWire.h اور liquidcrystal.h لائبریری. ایس ٹی ایم 32 مائکروکونٹرولر میں I2C کے بارے میں مزید معلومات حاصل کریں۔
# شامل کریں
اگلے STM32F103C8 کے ساتھ منسلک LCD پنوں کے مطابق LCD پنوں کی وضاحت اور ابتدا کریں
const int RSS = PB11، en = PB10، d4 = PB0، d5 = PB1، d6 = PC13، d7 = PC14؛ لیکویڈ کرسٹل ایل سی ڈی (آر ایس ، این ، ڈی 4 ، ڈی 5 ، ڈی 6 ، ڈی 7)؛
پھر ایم سی پی 4725 ڈی اے سی کے آئی 2 سی ایڈریس کی وضاحت کریں۔ MCP4725 DAC ڈیفالٹ I2C ایڈریس 0x60 ہے
# وضاحت MCP4725 0x60
باطل سیٹ اپ میں ()
سب سے پہلے ایس ٹی ایم 32 ایف 103 سی 8 کے پنوں پی بی 7 (ایس ڈی اے) اور پی بی 6 (ایس سی ایل) میں آئی 2 سی مواصلات کا آغاز کریں۔
تار.بیگین ()؛ // I2C مواصلات کا آغاز ہوتا ہے
اگلا 16x2 وضع میں LCD ڈسپلے مرتب کریں اور ایک خوش آئند پیغام ڈسپلے کریں۔
lcd.begin (16،2)؛ lcd.print ("سرکٹ ڈائجسٹ")؛ تاخیر (1000)؛ lcd.clear ()؛ lcd.setCursor (0،0)؛ lcd.print ("STM32F103C8")؛ lcd.setCursor (0،1)؛ lcd.print ("MCP4725 کے ساتھ ڈی اے سی")؛ تاخیر (2000)؛ lcd.clear ()؛
باطل لوپ میں ()
1. پہلے بفر میں کنٹرول بائٹ ویلیو (0b01000000) ڈالیں۔
(لکھنا موڈ میں 010-سیٹ MCP4725) بفر = 0b01000000؛
2. مندرجہ ذیل بیان 0 to4096 سے لے کے طور پر اے ڈی سی 12 بٹ کی قرارداد اور متغیر میں ذخیرہ ہے ڈیجیٹل قدر میں پن PA0 اور درمانتریت اس سے ینالاگ قدر پڑھتا ADC .
adc = analogRead (PA0)؛
3. یہ مندرجہ ذیل بیان ایک فارمولا ہے جو ADC ان پٹ ویلیو (0 سے 4096) سے 3.3V کے ریفرنس وولٹیج کے ساتھ وولٹیج کا حساب لگانے کے لئے استعمال ہوتا ہے۔
فلوٹ آئی پیولٹ = (3.3 / 4096.0) * adc؛
4. میں چھوڑ کرنے کے لئے 4 بٹس منتقل کر بفر میں اے ڈی سی متغیر میں صحیح ہے، اور کم از کم اہم سا اقدار سے 4 بٹس منتقل کر بفر میں سب سے اہم سا اقدار رکھ اے ڈی سی متغیر.
بفر = اڈک >> 4؛ بفر = اڈک << 4؛
5. مندرجہ ذیل بیان میں STM32 کے ADC پن PA1 سے ملحقہ قیمت پڑھی گئی ہے جو DAC آؤٹ پٹ ہے (MCP4725 DAC IC کا OUTPUT پن)۔ آؤٹ پٹ وولٹیج کی جانچ پڑتال کے ل This اس پن کو ملٹی میٹر سے بھی منسلک کیا جاسکتا ہے۔
بغیر دستخط شدہ اینالاگریڈ = اینالاگ ریڈ (PA1)؛
6. مزید یہ کہ متغیر ینالاگریڈ سے وولٹیج کی قیمت کا حساب کتاب میں درج ذیل بیان کے ساتھ استعمال کیا جاتا ہے۔
فلوٹ اوپولٹ = (3.3 / 4096.0) * ینالاگ
7. اسی باطل لوپ () میں کچھ دوسرے بیانات ہیں جن کی وضاحت ذیل میں کی گئی ہے
ایم سی پی 4725 کے ساتھ ٹرانسمیشن کا آغاز:
وائر.بیگین ٹرانسمیشن (ایم سی پی 4725)؛
کنٹرول بائٹ I2C کو بھیجتا ہے
وائر ڈاٹ رائٹ (بفر)؛
ایم ایس بی کو آئی 2 سی بھیجتا ہے
وائر ڈاٹ رائٹ (بفر)؛
LSB کو I2C بھیجتا ہے
وائر ڈاٹ رائٹ (بفر)؛
ٹرانسمیشن ختم ہوتا ہے
Wire.endTransmission ()؛
اب ان نتائج کو LCD 16p2 ڈسپلے میں lcd.print () کا استعمال کرکے ڈسپلے کریں۔
lcd.setCursor (0،0)؛ lcd.print ("A IP:")؛ lcd.print (adc)؛ lcd.setCursor (10،0)؛ lcd.print ("V:")؛ lcd.print (ipvolt)؛ lcd.setCursor (0،1)؛ lcd.print ("D OP:")؛ lcd.print (ینالاگ ریڈ)؛ lcd.setCursor (10،1)؛ lcd.print ("V:")؛ lcd.print (اوپولٹ)؛ تاخیر (500)؛ lcd.clear ()؛
ڈی اے سی کو ایس ٹی ایم 32 کے ساتھ جانچنا
جب ہم پوٹینیوومیٹر کو گھوماتے ہوئے ان پٹ اے ڈی سی ویلیو اور وولٹیج کو تبدیل کرتے ہیں تو آؤٹ پٹ ڈی اے سی ویلیو اور وولٹیج بھی تبدیل ہوجاتا ہے۔ یہاں ان پٹ کی قدریں پہلی قطار میں دکھائی دیتی ہیں اور LCD ڈسپلے کی دوسری قطار میں آؤٹ پٹ ویلیوز۔ ینالاگ وولٹیج کی تصدیق کے لئے ملٹی میٹر ایم سی پی 4725 آؤٹ پٹ پن سے بھی منسلک ہے۔
مظاہرے ویڈیو کے ساتھ مکمل کوڈ ذیل میں دیا گیا ہے۔