- STM32F103C8 I2C جائزہ
- STM32F103C8 میں I2C پنوں
- ارڈینو میں آئی 2 سی پن
- ضروری اجزاء
- سرکٹ ڈایاگرام اور رابطے
- ایس ٹی ایم 32 میں آئی 2 سی پروگرامنگ
- ماسٹر STM32 پروگرامنگ وضاحت
- غلام اردوینو پروگرامنگ وضاحت
ہمارے پچھلے سبق میں ، ہم دو اردوینو بورڈ کے مابین ایس پی آئی اور آئی 2 سی مواصلات کے بارے میں سیکھ چکے ہیں۔ اس ٹیوٹوریل میں ہم ایک اردوینو بورڈ کو بلیو گولی بورڈ سے تبدیل کریں گے جو STM32F103C8 ہے اور I2C بس کا استعمال کرتے ہوئے Ardino بورڈ کے ساتھ بات چیت کریں گے۔
STM32 میں ارڈینو بورڈ کے مقابلے میں زیادہ خصوصیات ہیں۔ لہذا ایس پی ایم اور آئی 2 سی بس کا استعمال کرکے ایس ٹی ایم 32 اور ارڈینو کے درمیان رابطے کے بارے میں جاننا بہت اچھا ہوگا ۔ اس ٹیوٹوریل میں ، ہم آرڈینو اور STM32F103C8 کے مابین مواصلت کے ل I I2C بس کا استعمال کریں گے ، اور اگلے سبق میں SPI بس کے بارے میں سیکھیں گے۔ STM32 بورڈ کے بارے میں مزید معلومات کے ل ST ، دوسرے STM32 پروجیکٹس کو چیک کریں۔
STM32F103C8 I2C جائزہ
I2C (انٹر انٹیگریٹڈ سرکٹس) کا موازنہ STM32F103C8 بلیو گولی بورڈ میں Ardino Uno کے ساتھ کریں ، پھر ہم دیکھیں گے کہ Ardino میں ATMEGA328 مائکروقانونی ہے ، اور اس میں STM32F103C8 میں ARM Cortex- M3 ہے۔ ایس ٹی ایم 32 کے پاس دو I2C بس ہے جبکہ ارڈینو اونو کے پاس صرف ایک I2C بس ہے اور STM32 ارڈینو سے تیز ہے۔
I2C مواصلت کے بارے میں مزید معلومات کے ل our ، ہمارے گذشتہ مضامین کا حوالہ دیں
- ایردوینو میں آئی 2 سی کا استعمال کیسے کریں: دو ارڈینو بورڈ کے مابین مواصلت
- آئی سی سی مائکروکانٹرولر PIC16F877 کے ساتھ مواصلت
- I2C کا استعمال کرتے ہوئے ESP32 کے ساتھ 16X2 LCD انٹرفیس کرنا
- MSP430 لانچ پیڈ کے ساتھ I2C مواصلت
- I2C کا استعمال کیے بغیر نوڈیم سی سی یو کے ساتھ ایل سی ڈی انٹرفیس کرنا
- ارڈینو کے ایک پروگرام میں ملٹی مواصلات (I2C SPI UART) کو کیسے سنبھالیں
STM32F103C8 میں I2C پنوں
ایس ڈی اے: PB7 یا PB9 ، PB11۔
ایس سی ایل: پی بی 6 یا پی بی 8 ، پی بی 10۔
ارڈینو میں آئی 2 سی پن
ایس ڈی اے: A4 پن
ایس سی ایل: A5 پن
ضروری اجزاء
- STM32F103C8
- ارڈینو اونو
- ایل ای ڈی (2 نمبر)
- پش بٹن (2 نمبر)
- مزاحم (4-نمبر)
- بریڈ بورڈ
- مربوط تاروں
سرکٹ ڈایاگرام اور رابطے
مندرجہ ذیل جدول میں I2C بس کو استعمال کرنے کے لئے STM32 بلیو گولی اور اڑڈینو یونو کے درمیان تعلق دکھاتا ہے ۔ اس کے لئے صرف دو تاروں کی ضرورت ہے۔
STM32F103C8 |
اردوینو |
پن کی تفصیل |
B7 |
A4 |
ایس ڈی اے |
B6 |
A5 |
ایس سی ایل |
GND |
GND |
زمین |
اہم
- اردوینو GND اور STM32F103C8 GND کو ایک ساتھ جوڑنا نہ بھولیں۔
- اس کے بعد 10k کا پل ڈاون ریسسٹریٹر دونوں بورڈ کے پش بٹن پنوں سے الگ سے جڑیں۔
اس STM32 I2C ٹیوٹوریل میں ہم STM32F103C8 کو بطور ماسٹر اور اردوینو غلام کے طور پر تشکیل دیں گے۔ دونوں بورڈ الگ الگ ایل ای ڈی اور پش بٹن کے ساتھ منسلک ہیں۔
ایس ٹی ایم 32 میں آئی 2 سی مواصلات کا مظاہرہ کرنے کے لئے ، ہم غلام آردوینو پش بٹن ویلیو اور ماسٹر STM32F103C8 پش بٹن ویلیو کا استعمال کرکے غلام آردوینو ایل ای ڈی کا استعمال کرتے ہوئے ماسٹر STM32 LED کو کنٹرول کرتے ہیں۔ یہ اقدار I2C مواصلاتی بس کے ذریعے بھیجی گئیں ہیں۔
ایس ٹی ایم 32 میں آئی 2 سی پروگرامنگ
پروگرامنگ اردوینو کوڈ کی طرح ہے۔ ایسا ہی
اس ٹیوٹوریل میں دو پروگرام ہیں ایک ماسٹر STM32 کے لئے اور دوسرا غلام ارڈینو۔ اس پروجیکٹ کے اختتام پر ایک مظاہرے کی ویڈیو کے ساتھ دونوں اطراف کے مکمل پروگرام دیئے گئے ہیں ۔
ماسٹر STM32 پروگرامنگ وضاحت
ماسٹر STM32 میں دیکھتے ہیں کہ کیا ہو رہا ہے:
1. سب سے پہلے ہمیں STM32F103C8 میں I2C مواصلات کے افعال کے استعمال کے ل library وائر لائبریری اور سافٹ وئیر لائبریری شامل کرنے کی ضرورت ہے۔
# شامل کریں
2. باطل سیٹ اپ میں ()
- ہم باؤل ریٹ 9600 پر سیریل مواصلات شروع کرتے ہیں۔
سیریل.بیگین (9600)؛
- اگلا ، ہم پن پر I2C مواصلات شروع کریں (B6، B7)
تار.بیگین ()؛
3. باطل لوپ میں ()
- پہلے ہمیں غلام اردوینو سے اعداد و شمار ملتے ہیں لہذا ہم غلام ایڈریس 8 کے ساتھ ریکورٹ فریم () کا استعمال کرتے ہیں اور ہم ایک بائٹ کی درخواست کرتے ہیں۔
Wire.requestFrom (8،1)؛
موصولہ قیمت Wire.read () کا استعمال کرتے ہوئے پڑھی جاتی ہے
بائٹ a = وائر.ریڈ ()؛
- غلام کی طرف سے موصولہ قیمت پر انحصار کرتے ہوئے ماسٹر ایل ای ڈی کو PN1 پر PN1 ڈیجیٹ رائٹ کا استعمال کرکے آن یا آف کردیا جاتا ہے اور سیریل پرنٹ بھی سیریل مانیٹر میں ویلیو پرنٹ کرنے کے لئے استعمال ہوتا ہے۔
اگر (a == 1) { ڈیجیٹل رائٹ (ایل ای ڈی ، ہائی)؛ سیریل.پرنٹلن ("ماسٹر ایل ای ڈی آن")؛ } دوسری { ڈیجیٹل رائٹ (ایل ای ڈی ، کم)؛ سیریل.پرنٹلن ("ماسٹر ایل ای ڈی آف")؛ }
- اگلا ہمیں پن PA0 کی حیثیت کو پڑھنے کی ضرورت ہے جو STM32 پش بٹن ہے۔
int پنوالیو = ڈیجیٹل ریڈ (بٹن پن)؛
- اگلا ، منطق کے مطابق پن کی قیمت بھیجیں ، لہذا ہم اگر شرط کی حیثیت سے استعمال کریں اور پھر غلام آردوینو کے ساتھ ٹرانسمیشن 8 کے ساتھ پتے کے طور پر شروع کریں اور پھر پش بٹن ان پٹ ویلیو کے مطابق ویلیو لکھیں۔
اگر (پنولیو == ہائی) { x = 1؛ } دوسری { x = 0؛ } Wire.beginTransmission (8)؛ وائر.روائٹ (x)؛ Wire.endTransmission ()؛
غلام اردوینو پروگرامنگ وضاحت
1. سب سے پہلے ہمیں I2C مواصلات کے افعال استعمال کرنے کیلئے وائر لائبریری کو شامل کرنے کی ضرورت ہے۔
# شامل کریں
2. باطل سیٹ اپ میں ()
- ہم باؤل ریٹ 9600 پر سیریل مواصلات شروع کرتے ہیں۔
سیریل.بیگین (9600)؛
- اگلے I2C مواصلات کو پِن (A4 ، A5) پر غلام ایڈریس کے ساتھ شروع کریں جیسے 8۔ یہاں غلام کا پتہ بتانا ضروری ہے۔
وائر.بیگین (8)؛
اس کے بعد ہمیں غلام کو ماسٹر اور Wire.onRequest فنکشن کال سے ویلیو وصول کرتے وقت Wire.onRe وصول فنکشن کو فون کرنے کی ضرورت ہے جب غلام سے ماسٹر ریکوئٹی ویلیو۔
Wire.onReLive (وصول ایونٹ)؛ Wire.onRequest (درخواست ایونٹ)؛
Next. اگلے ہمارے پاس دو کام ہیں ایک درخواست کی ایونٹ کے لئے اور ایک وصول شدہ ایونٹ کے لئے
درخواست واقعہ کے لئے
جب غلام سے ماسٹر STM32 درخواست کی قیمت اس فعل کو انجام دے گی۔ اس فنکشن نے غلام اردوینو پش بٹن سے ان پٹ ویلیو لیا ہے اور وائر ڈاٹ رائٹ () کا استعمال کرکے پش بٹن ویلیو کے مطابق ماسٹر STM32 کو بائٹ (1 یا 0) بھیجیں۔
باطل requestEvent () { int قیمت = digitalRead (buttonpin)؛ اگر (قدر == اعلی) { x = 1؛ } دوسری { x = 0؛ . وائر ڈاٹ رائٹ (ایکس)؛ }
رسید واقعہ کے ل For
جب ماسٹر غلام ایڈریس (8) کے ساتھ غلام کو ڈیٹا بھیجتا ہے ، تو یہ فنکشن عمل میں آئے گا۔ اس فنکشن میں ماسٹر اور اسٹور سے حاصل شدہ ویلیو کو ٹائپ بائٹ کے متغیر میں پڑھتا ہے اور پھر اگر منطق وصول کی گئی قیمت پر منحصر ہوتا ہے تو غلام ایل ای ڈی کو بند یا بند کرنا ہے۔ اگر موصولہ قیمت 1 ہے تو ایل ای ڈی موڑ دیتا ہے اور 0 ایل ای ڈی موڑ کے لئے بند ہوجاتا ہے۔
باطل وصول Event (int howMany) { بائٹ a = وائر۔ریڈ ()؛ اگر (a == 1) { ڈیجیٹل رائٹ (ایل ای ڈی ، ہائی)؛ سیریل.پرنٹلن ("غلامی ایل ای ڈی آن")؛ } دوسری { ڈیجیٹل رائٹ (ایل ای ڈی ، کم)؛ سیریل.پرنٹلن ("غلام کی قیادت بند")؛ } تاخیر (500)؛ }
آؤٹ پٹ
1. جب ہم ماسٹر STM32 پر پش بٹن دبائیں تو ، غلام ارڈیانو سے منسلک ایل ای ڈی (سفید) آن ہو جاتا ہے۔
2. اب جب ہم غلام سائیڈ پر پش بٹن دبائیں تو ، ماسٹر سے منسلک ایل ای ڈی آن (سرخ) ہوجاتا ہے اور جب بٹن جاری ہوتا ہے تو ایل ای ڈی بند ہوجاتا ہے۔
When . جب دونوں پش بٹنوں نے بیک وقت دبایا تو دونوں ایل ای ڈی ایک ہی وقت میں چمکتے رہتے ہیں ، اور بٹن دبائے جانے تک اسی وقت تک جاری رہتے ہیں۔
لہذا ایس ٹی ایم 32 میں اس طرح I2C مواصلت ہوتا ہے ۔ اب آپ STM32 بورڈ کے ساتھ کسی بھی I2C سینسر کو انٹرفیس کرسکتے ہیں۔
ماسٹر STM32 اور سلیف ارڈینو کے لئے مکمل کوڈنگ ایک مظاہرے کی ویڈیو کے ساتھ نیچے دی گئی ہے