- مطلوبہ مواد:
- پیشگی شرائط:
- سرکٹ ڈایاگرام:
- الارم گھڑی کے لئے پروگرامنگ:
- نقلی:
- PIC16F877A کا استعمال کرتے ہوئے ڈیجیٹل الارم گھڑی کا کام کرنا:
ڈیجیٹل انقلاب 1950 میں شروع ہوا تمام موجودہ میکانکی اور ینالاگ الیکٹرانک ڈھانچے کو ڈیجیٹل کمپیوٹر میں تبدیل کرتا ہے۔ چونکہ ڈیجیٹل الیکٹرانکس کی نشوونما نمایاں رہی ہے ، لہذا آج کسی شخص کے لئے کسی بھی الیکٹرانک آلات کے استعمال کی مزاحمت کرنا قریب قریب ناممکن ہے۔ الارم کی گھڑی سے شروع کرنا جو آپ کو جگاتا ہے اور ٹوسٹر جو آپ کو ناشتہ فراہم کرتا ہے ، سب کچھ ڈیجیٹل الیکٹرانکس کی شراکت ہے۔ ان سب کے بارے میں سوچنا یہ واقعی دلچسپ ہے کہ ہمارے اپنے سامان کو پروگرام کریں جو آسان اور مفید کام انجام دے سکیں ، جیسے الارم گھڑی جسے ہم پی آئی سی مائکروکنٹرولر کے ساتھ اس پروجیکٹ میں بنارہے ہیں ۔ اس سے قبل ہم دوسرے مائکروکانٹرولرز کے ساتھ الارم گھڑی بنا چکے ہیں:
- آر ٹی سی ماڈیول DS1307 کا استعمال کرتے ہوئے راسبیری پائی الارم گھڑی
- الارم کے ساتھ ارڈینو بیس ڈیجیٹل گھڑی
- اے ٹی میگا 32 مائکروکونٹرولر کا استعمال کرتے ہوئے الارم گھڑی
اس الارم گھڑی میں 16x2 LCD ڈسپلے ہوگا جو موجودہ وقت اور مقررہ وقت کو ظاہر کرے گا۔ جب بھی ضرورت ہو ہم الارم کا وقت مقرر کرنے کے لئے کچھ پش بٹن استعمال کریں گے۔ موجودہ وقت کو DS3231 RTC ماڈیول کا استعمال کرتے ہوئے ٹریک میں رکھا جائے گا اور ہم ان اقدار کو RTC ماڈیول سے حاصل کرنے کے لئے IIC مواصلات کا استعمال کریں گے۔ ہم نے پہلے ہی آر ٹی سی ماڈیول کے بارے میں اور PIC کے ساتھ اس کے انٹرفیس کرنے کا طریقہ سیکھا ہے۔ لہذا اس ٹیوٹوریل کے ذریعہ پڑھنے کی تجویز کی گئی ہے ، ہم اس سبق میں شامل معلومات کا زیادہ تر حصہ چھوڑیں گے۔
مطلوبہ مواد:
- روٹی بورڈ - 2 نمبر
- PIC16F877A
- 5V طاقت کا منبع - سپلائی ماڈیول
- 20 میگا ہرٹز کرسٹل
- 33pf کاپاکیٹر - 2 نہیں
- DS3231 RTC ماڈیول
- 16 * 2 LCD ڈسپلے ماڈیول
- 10K POT
- 10 ک اور 1 ک ریزٹر
- پش بٹن - 5 نمبر
- بزر
- مربوط تاروں
پیشگی شرائط:
اس پروجیکٹ کے لئے آپ کو PIC مائکروقابو کنٹرولر کے بارے میں کچھ بنیادی باتیں اور اس کے پروگرام کرنے کا طریقہ معلوم ہونا ضروری ہے۔ ہم اس پروجیکٹ کے لئے جی پی آئی اوز ، ایل سی ڈی ڈسپلے اور آر ٹی سی ماڈیول کا استعمال کریں گے۔ لہذا بہتر ہے کہ ان ماڈیولز کو پہلے سے کیسے استعمال کریں سیکھیں۔ درج ذیل لنکس آپ کو بھی ایسا سیکھنے میں مدد فراہم کریں گے
- آپ کا پہلا پروگرام PIC مائکروکانٹرولر کے ساتھ لکھنا
- انٹرفیسنگ LCD PIC کے ساتھ
- PIC کا استعمال کرتے ہوئے I2C مواصلات
- DS3231 RTC PIC میں مداخلت کررہا ہے
سرکٹ ڈایاگرام:
اس PIC پر مبنی الارم گھڑی پروجیکٹ کا سرکٹ ڈایاگرام ذیل میں دکھایا گیا ہے ، جو پروٹوس سافٹ ویئر کا استعمال کرتے ہوئے تخلیق کیا گیا تھا۔ اس پراجیکٹ میں مزید نقالی کے لئے بھی استعمال کیا جائے گا۔
پانچ پش بٹن مطلوبہ وقت کے لئے الارم ترتیب دینے کے لئے ان پٹ کا کام کریں گے۔ لہذا تمام پش بٹنوں کا ایک سر زمین سے جڑا ہوا ہے اور دوسرے سرے PORTB پن سے جڑے ہوئے ہیں ، پنوں کو تیرتے ہوئے بچنے سے بچنے کے لئے ان پنوں پر اندرونی پل اپ رالسٹر استعمال کیا جائے گا۔ بزر آؤٹ پٹ کے طور پر کام کرے گا اور جب الارم ٹرگر ہوجاتا ہے اور پورٹ ایس پن سے منسلک ہوتا ہے تو ہمیں ایک بیپ دے گا۔ موجودہ وقت کو ہمیشہ DS3231 آر ٹی سی ماڈیول کے ذریعہ ٹریک میں رکھا جاتا ہے جہاں سے پی آئی سی کو آئی 2 سی بس کے ذریعہ ڈیٹا ملتا ہے ، لہذا آر ٹی سی ماڈیول کے ایس سی ایل اور ایس ڈی اے پنوں پی سی سی کنٹرولر کے ایس سی ایل اور ایس ڈی اے پن سے جڑے ہوئے ہیں۔ PIC کے PORTD کے ساتھ LCD ڈسپلے منسلک ہوتا ہے جو موجودہ وقت اور مقررہ وقت کو ظاہر کرنے کے لئے استعمال ہوتا ہے۔ پی آئی سی کے ساتھ DS3231 RTC ماڈیول استعمال کرنے کے بارے میں مزید معلومات حاصل کریں۔
مکمل سرکٹ ایک بری بورڈ پر تعمیر کیا جاسکتا ہے۔ چونکہ مربوط ہونے کے لئے درجن بھر تاروں میں سے کچھ موجود ہیں لہذا صبر کریں اور اس بات کو یقینی بنائیں کہ رابطے درست ہیں۔ میرے ہارڈویئر سیٹ اپ کے نیچے کچھ ایسا ہی لگتا تھا جب ایک بار جب میں کنکشن لے گیا تھا
میں نے ماڈیول کو طاقت بخشنے کے لئے بریڈ بورڈ ماڈیول اور 12 وی اڈاپٹر استعمال کیا ہے۔ یہ میرا 5V سپلائی وولٹیج کا ماخذ ہے۔ نیز سرکٹ کو صاف رکھنے کے لئے مجھے دو بریڈ بورڈز استعمال کرنا ہوں گے۔ اگر آپ مزید مضبوط منصوبے بنانے کے خواہاں ہیں تو آپ پورے سرکٹ کو کسی پرف بورڈ میں بھی سولڈر کرسکتے ہیں۔
الارم گھڑی کے لئے پروگرامنگ:
اس الارم گھڑی منصوبے کے لیے مکمل PIC پروگرام اس صفحے کے نچلے حصے میں پایا جا سکتا ہے. اس منصوبے میں PIC کے ساتھ LCD ، I2C اور RTC کے استعمال کے ل three بھی تین لائبریریوں کی ضرورت ہے۔ ہیڈر فائلوں والا مکمل کوڈ یہاں زپ فائل سے ڈاؤن لوڈ کیا جاسکتا ہے اور نکالنے کے بعد ایم پی ایل ایکس ایکس کا استعمال کرتے ہوئے کھولا جاسکتا ہے۔ مزید نیچے میں صرف مرکزی سی فائل کو چھوٹے ٹکڑوں کے طور پر بیان کر رہا ہوں۔ اگر آپ جاننا چاہتے ہیں کہ ہیڈر فائلیں کس طرح کام کرتی ہیں تو آپ مذکورہ بالا سبق پر واپس گر سکتے ہیں۔
مرکزی پروگرام میں جانے سے پہلے ، ہمیں ان پنوں کی وضاحت کرنی ہوگی جو ہم نے زیادہ معنی خیز نام کے ساتھ استعمال کی ہیں۔ اس طرح پروگرامنگ کے دوران ان کا استعمال آسان ہوگا۔ ہمارے پروگرام میں بیان کردہ پنوں کو نیچے دکھایا گیا ہے
// LCD پنوں کی وضاحت # وضاحت RS RD2 // ری سیٹ LCD کی پن # وضاحت EN RD3 // LCD کی پن فعال // ڈیٹا بٹ LCD کی 0 # وضاحت D4 RD4 # وضاحت D5 RD5 // ڈیٹا LCD کی بٹ 1 # وضاحت L6 RD6 // LCD کا ڈیٹا بٹ 2 LCD کا ڈیٹا بٹ // LCD کا ڈیٹا بٹ 3 // بٹن کی وضاحت کریں # MB کی وضاحت کریں RB1 // درمیانہ بٹن # ڈیفائن LB RB0 // بائیں بٹن # ڈیفائن RB RB2 // دائیں بٹن # UB RB3 کی وضاحت کریں // بالائی بٹن # Define BB RB4 // نیچے کا بٹن // Buzz # Define BUZZ RD1 // Buzzer RD1 سے جڑا ہوا ہے
مرکزی تقریب کے اندر ہم ان پٹ اور آؤٹ پٹ پنوں کا اعلان کرکے شروع کرتے ہیں ۔ ہمارے پروجیکٹ میں پورٹ بی کا استعمال ان پٹ بٹنوں کے لئے کیا جاتا ہے جو ایک ان پٹ ڈیوائس ہے لہذا ہم ان کی پنوں کو ان پٹ کے طور پر سیٹ کرتے ہیں اور پورٹ کو ایل سی ڈی اور بوزر کے لئے استعمال کیا جاتا ہے لہذا ہم ان کی پنوں کو آؤٹ پٹ کے طور پر سیٹ کرتے ہیں۔ نیز ایک پن کو کبھی بھی تیرتے معنی نہیں چھوڑنا چاہئے ، I / O پنوں کو ہمیشہ یا تو گراؤنڈ یا + 5V وولٹیج سے جوڑنا چاہئے۔ ہمارے معاملے میں جب پش بٹنوں کے لئے پنوں کو کسی بھی چیز سے منسلک نہیں کیا جائے گا جب بٹن دبایا نہیں جاتا ہے لہذا ہم داخلی پل اپ مزاحم کار استعمال کرتے ہیں جو استعمال میں نہ ہونے پر پن کو ہائی پر رکھتا ہے۔ یہ کنٹرول رجسٹروں کا استعمال کرتے ہوئے کیا جاتا ہے جیسا کہ ذیل میں دکھایا گیا ہے
TRISD = 0x00؛ // LCD انٹرفیسنگ TRISB = 0xFF کے لئے آؤٹ پٹو کے طور پر پورٹ D پنوں بنائیں ؛ // سوئچز کو ان پٹ پن کی حیثیت سے اعلان کیا جاتا ہے OPTION_REG = 0b00000000؛ // سوئچز BUZZ = 0 کے لئے پورٹ B پر ریزٹر کو پل اپ کو فعال کریں ۔ // بزر کی باری
چونکہ ہمارے پاس LCD اور I2C ہیڈر فائل مرکزی پروگرام کے ساتھ منسلک ہے ، لہذا ہم ایک عام فنکشن کو کال کرکے LCD ابتداء شروع کرسکتے ہیں ۔ I2C کے آغاز کے لئے بھی یہی کیا جاسکتا ہے ۔ یہاں ہم 100 کلو ہرٹز میں I2C مواصلات کا آغاز کر رہے ہیں چونکہ RTC ماڈیول 100kHz کے ساتھ کام کرتا ہے۔
Lcd_Start ()؛ // ایل سی ڈی ماڈیول I2C_Initialize (100) شروع کریں؛ // 100KHz گھڑی کے ساتھ I2C ماسٹر شروع کریں
مندرجہ ذیل فنکشن کا استعمال آر ٹی سی ماڈیول پر وقت اور تاریخ کو مرتب کرنے کے لئے کیا جاتا ہے ، ایک بار وقت اور تاریخ مقرر ہونے کے بعد اس لائن کو ہٹا دیں۔ ورنہ ہر بار جب آپ پروگرام شروع کریں تو وقت اور تاریخ بار بار مقرر کی جائے گی
ایک بار وقت اور تاریخ // لکیر سے نیچے ہٹائیں جاتا ہے پہلی بار کے لئے مقرر کیا ہے. سیٹ_ ٹائم_ڈیٹ ()؛ // آر ٹی سی ماڈیول پر وقت اور تاریخ طے کریں
یہ ظاہر کرنے کے لئے کہ پروگرام شروع ہورہا ہے ہم ایک چھوٹی انٹرو اسکرین ڈسپلے کرتے ہیں جو نیچے دکھائے جانے والے پروجیکٹ کا نام اور ویب سائٹ کا نام دکھاتا ہے
// ایل سی ڈی ایل سی ڈی_کلیوئر () پر تعارفی پیغام دیں ۔ ایل سی ڈی_سیٹ_کرسر (1،1)؛ ایل سی ڈی_پرنٹ_سٹرنگ ("الارم گھڑی")؛ ایل سی ڈی_سیٹ_کرسر (2،1)؛ ایل سی ڈی_پرینٹ_اسٹرنگ ("سرکٹ ڈائجسٹ")؛ __Dlay_ms (1500)؛
اس وقت لوپ کے اندر ہمیں RTC ماڈیول سے موجودہ وقت اور تاریخ کو پڑھنے کی ضرورت ہے ، یہ صرف نیچے دیئے گئے فنکشن کو کال کرکے کیا جاسکتا ہے۔
اپ ڈیٹ_کرنین_ڈیٹ_ٹائم ()؛ // موجودہ تاریخ اور وقت آر ٹی سی ماڈیول سے پڑھیں
مذکورہ فنکشن پر کال کرنے سے موجودہ قیمت کے ساتھ سیکنڈ ، منٹ اور گھنٹہ کے متغیرات کی تازہ کاری ہوگی۔ کرنے کے لئے LCD کی سکرین پر ان کے ظاہر سے ہم انفرادی حروف تک میں ان میں تقسیم کرنا ہے مندرجہ ذیل کوڈ کا استعمال کرتے ہوئے.
// ایل سی ڈی چار پر ظاہر کرنے کے لئے چار میں تقسیم کریں سیکنڈ = سیکنڈ٪ 10؛ چار سیک_1 = (سیکنڈ / 10)؛ چار منٹ_0 = منٹ٪ 10؛ چار منٹ_1 = منٹ / 10؛ چار گھنٹہ = گھنٹہ٪ 10؛ چار گھنٹہ_ = گھنٹہ / 10؛
اگلا ، ہم LCD اسکرین پر قدروں کو اپ ڈیٹ کرتے ہیں ۔ موجودہ وقت پہلی سطر میں دکھایا جائے گا اور جس وقت پر الارم کو متحرک ہونا ہے اس وقت کو دوسری لائن پر ظاہر کیا جائے گا۔ کوڈ جو ایک ہی کرتا ہے وہ نیچے دکھایا گیا ہے۔
// موجودہ وقت کو LCD اسکرین پر دکھائیں Lcd_C Clear ()؛ ایل سی ڈی_سیٹ_کرسر (1 ، 1)؛ ایل سی ڈی_پرینٹ_اسٹرنگ ("ٹائم:")؛ ایل سی ڈی_پرینٹ_چار (گھنٹہ_1 + '0')؛ ایل سی ڈی_پرینٹ_چار (گھنٹہ ++ '0')؛ ایل سی ڈی_پرنٹ_چار (':')؛ ایل سی ڈی_پرنٹ_چار (منٹ_1 + '0')؛ ایل سی ڈی_پرنٹ_چار (منٹ ++ '0')؛ ایل سی ڈی_پرنٹ_چار (':')؛ ایل سی ڈی_پرنٹ_چار (سیکنڈ_1 + '0')؛ ایل سی ڈی_پرینٹ_چار (سیکنڈ + '0')؛ // LCD اسکرین پر تاریخ ڈسپلے کریں Lcd_Set_Cseror (2 ، 1)؛ ایل سی ڈی_پرنٹ_سٹرنگ ("الارم:")؛ ایل سی ڈی_پرنٹ_چار (الارم_وال + '0')؛ ایل سی ڈی_پرنٹ_چار (الارم_وال + '0')؛ ایل سی ڈی_پرنٹ_چار (':')؛ ایل سی ڈی_پرنٹ_چار (الارم_وال + '0 ')؛ ایل سی ڈی_پرنٹ_چار (الارم_وال + '0')؛
اب ، ہم نے LCD پر وقت ظاہر کیا ہے اور وقت طے کیا ہے ہمیں یہ چیک کرنا ہوگا کہ آیا صارف الارم کا وقت مقرر کرنے کی کوشش کر رہا ہے یا نہیں ۔ اس کے ل the صارف کو مڈل بٹن دبانا ہوگا ، لہذا ہم جانچیں گے کہ آیا درمیانی بٹن دب گیا ہے یا اور الارم سیٹ موڈ میں داخل ہونے کے لئے متغیر کو ٹوگل کریں۔ اس بات کی تصدیق کے لئے ایک ہی بٹن پر دوبارہ دبا will ڈالا جائے گا کہ اقدار طے شدہ ہیں اور اس صورت میں ہمیں الارم سیٹ وضع سے باہر آنا ہوگا۔ لہذا ہم متغیر سیٹ_الارم کی حیثیت کو تبدیل کرنے کے لئے کوڈ کی نیچے لائن کا استعمال کرتے ہیں ۔
// یہ معلوم کرنے کے لئے درمیانی بٹن کا استعمال کریں کہ آیا الارم سیٹ کرنا ہے یا نہیں (MB == 0 && set_alarm == 0) {// اگر مڈل بٹن دبایا جاتا ہے اور الارم آن نہیں کیا جاتا ہے جبکہ (! MB)؛ // بٹن کے جاری ہونے تک انتظار کریں set_alarm = 1؛ // الارم ویلیو کی ترتیب شروع کریں } اگر (MB == 0 && set_alarm == 1) {// اگر مڈل بٹن دب جاتا ہے اور الارم آف نہیں کیا جاتا ہے جبکہ (! MB)؛ // بٹن کے جاری ہونے تک انتظار کریں set_alarm = 0؛ // الارم ویلیو سیٹ کرنا بند کریں }
اگر صارف نے درمیانی بٹن دبایا ہے تو اس کا مطلب ہے کہ وہ الارم کا وقت طے کرنے کی کوشش کر رہا ہے۔ اس صورت میں مذکورہ کوڈ کا استعمال کرتے ہوئے پروگرام الارم سیٹ وضع میں داخل ہوتا ہے۔ الارم سیٹ موڈ کے اندر اگر صارف بائیں یا دائیں بٹن کو دباتا ہے تو اس کا مطلب ہے کہ ہمیں کرسر کو بائیں یا دائیں منتقل کرنا ہوگا۔ ایسا کرنے کے ل we ہم محض اس منصب کی قیمت میں تخفیف کرتے ہیں جس پر کرسر رکھنا پڑتا ہے
if (LB == 0) {// اگر بائیں بٹن دبایا جاتا ہے جبکہ (! LB)؛ // بٹن کے جاری ہونے تک انتظار کریں ۔ // پھر کرسر کو بائیں طرف منتقل کریں } اگر (RB == 0) {// اگر دائیں بٹن دبائے جاتے ہیں تو (! RB)؛ // بٹن کے جاری ہونے تک انتظار کریں ++؛ // درست کرنے کے کرسر کو منتقل }
مائکروکنٹرولر یا مائکرو پروسیسر کے ساتھ پش بٹن کا استعمال کرتے ہوئے اس سے نمٹنے کے لئے ایک عام مسئلہ ہے۔ اس مسئلے کو سوئچ باؤنس کہا جاتا ہے ۔ اس وقت جب بٹن دب جاتا ہے تو یہ ایم سی یو / ایم پی یو کو شور کی دالیں دے سکتا ہے جو ایم سی یو کو متعدد اندراجات کے لئے جعلی بنا سکتا ہے۔ اس مسئلے کو سوئچ کے اس پار ایک کپاسٹر شامل کرکے یا بٹن پریس کا پتہ چلتے ہی تاخیر کا استعمال کرکے حل کیا جاسکتا ہے۔ اس قسم کے حل کو ڈی بانسنگ کہا جاتا ہے۔ یہاں ہم نے بٹن کے جاری ہونے تک پروگرام کو جگہ پر رکھنے کے لئے تھوڑی دیر کا استعمال کیا ہے۔ یہ ڈی بانسنگ کا بہترین حل نہیں ہے لیکن ہمارے لئے یہ ٹھیک کام کرے گا۔
جبکہ (! RB)؛
بائیں اور دائیں بٹن کی طرح ، ہمارے پاس بھی اوپر اور نچلے بٹن موجود ہیں جو الارم وقت کی قدر کو بڑھانے یا کم کرنے کے لئے استعمال ہوسکتے ہیں ۔ ایسا کرنے کا کوڈ نیچے دکھایا گیا ہے۔ نوٹ کریں کہ سیٹ کے الارم وقت کے ہر کردار کو سرنی کی اشاریہ قیمت سے خطاب کیا جاتا ہے۔ یہ تھا جس سے ہم آسانی سے مطلوبہ کردار تک رسائی حاصل کرسکتے ہیں جس کی اقدار کو تبدیل کرنا ہوگا۔
if (UB == 0) {// اگر اوپری بٹن دبایا جاتا ہے جبکہ (! UB)؛ // بٹن جاری ہونے تک انتظار کریں الارم_ال ++؛ // اس خاص قیمت کی قیمت میں اضافہ کریں } اگر (بی بی == 0) {// اگر نچلے بٹن کو دبائے جاتے ہو ((UB))؛ // بٹن جاری ہونے تک انتظار کریں الارم_ال--؛ // اس خاص قیمت کی قیمت کو کم کریں }
ایک بار الارم کا وقت مقرر ہونے کے بعد صارف ایک بار پھر مڈل بٹن دبائے گا ۔ تب ہم موجودہ وقت کا موازنہ مقررہ وقت سے کرنا شروع کر سکتے ہیں۔ موجودہ وقت کا ہر ایک کردار طے شدہ وقت کے کردار کے برابر ہے یا نہیں اس کی جانچ کرکے موازنہ کرنا۔ اقدار پھر برابر ہیں، تو ہم ماحول کو منتخب کر کے الارم کو متحرک trigger_alarm یہ برابر ہو جاتا ہے جب تک ہم صرف موازنہ کسی اور متغیر.
// اگر الارم سیٹ ہے تو چیک کریں اگر سیٹ ویلیو موجودہ ویلیو کے برابر ہے اگر (set_alarm == 0 && الارم_وال == گھنٹہ_1 && الارم_وال == گھنٹہ اور & الارم_وال == منٹ_1 اور & الارم_وال == منٹ_0) ٹریگر_الرم = 1؛ // ویلیو میچ ہو تو ٹرگر آن کریں
اگر الارم سیٹ کیا گیا ہے تو ہمیں صارف کو الارم کے لئے متنبہ کرنے کے لئے بزر کو بیپنا ہوگا۔ ذیل میں جیسا کہ ذیل میں دکھایا گیا ہے اس کو باقاعدگی سے وقفے پر بزر کو ٹاگل کر کے کیا جاسکتا ہے۔
اگر (ٹرگر_الارم) {// اگر الارم کو متحرک کیا گیا ہو تو // بیپ بززر BUZZ = 1؛ __Dlay_ms (500)؛ BUZZ = 0؛ __Dlay_ms (500)؛ }
نقلی:
اس پروگرام کو پروٹیوس سافٹ ویئر کا استعمال کرتے ہوئے بھی تیار کیا جاسکتا ہے۔ صرف اوپر دکھائے گئے سرکٹ کو دوبارہ تخلیق کریں اور ہیکس فائل کو PIC میں لوڈ کریں۔ اس پروجیکٹ کے لئے ہیکس کوڈ زپ فائل پر پایا جاسکتا ہے جو یہاں منسلک ہے۔ تخروپن کے دوران لیا گیا ایک اسکرین شاٹ نیچے دکھایا گیا ہے
جب آپ منصوبے میں نئی خصوصیات شامل کرنے کی کوشش کر رہے ہیں تو نقلی بہت کارآمد ہوجاتا ہے۔ I2C بس کے ذریعہ کون سا ڈیٹا داخل ہو رہا ہے اور کیا آرہا ہے یہ جانچنے کے لئے آپ I2C ڈیبگر ماڈیول کا بھی استعمال کرسکتے ہیں۔ آپ بٹن دبانے کی کوشش کر سکتے ہیں اور الارم کا وقت بھی مرتب کرسکتے ہیں۔ جب موجودہ وقت موجودہ وقت کے مساوی ہو گا تو پھر بوزر زیادہ بڑھ جائے گا۔
PIC16F877A کا استعمال کرتے ہوئے ڈیجیٹل الارم گھڑی کا کام کرنا:
بریڈ بورڈ پر سرکٹ بنائیں ، ڈاؤن لوڈ لنک سے کوڈ حاصل کریں اور ایم پی ایل ایکس ایکس اور ایکس سی 8 کمپیلر کا استعمال کرکے اسے مرتب کریں۔ اگر آپ نے یہاں فراہم کردہ زپ فائل سے کوڈ ڈاؤن لوڈ کیا ہے تو ، پھر آپ کو اسے مرتب کرنے میں کوئی مسئلہ نہیں ہونا چاہئے کیونکہ ہیڈر فائلیں پہلے ہی منسلک ہیں۔
مرتب کرنے کے بعد ، PicKit3 پروگرامر کا استعمال کرکے آپ کو ہارڈ ویئر پر پروگرام اپ لوڈ کریں۔ پِکِٹ پروگرامر کو پی آئی سی آئی سی سے جوڑنے کا کنکشن سرکٹ آریگرام میں بھی دکھایا گیا ہے۔ پروگرام اپلوڈ ہونے کے بعد آپ کو انٹرو اسکرین دیکھنی چاہئے اور اس کے بعد ظاہر ہونے والا وقت آپ الارم کا وقت مقرر کرنے کے لئے پش بٹنوں کا استعمال کرسکتے ہیں۔ جب طاقت سے کام ہوتا ہے تو میرا ہارڈویئر سیٹ اپ ہوتا ہے۔
جب موجودہ وقت کے ساتھ الارم کا وقت مل جاتا ہے تو صارف صارف کو خطرے میں ڈالنے کے لئے بزر شروع کرے گا ۔ مکمل ورکنگ نیچے دی گئی ویڈیو میں مل سکتی ہے ۔ اس منصوبے میں تعمیراتی اختیارات کی بہتات ہے۔ آر ٹی سی ماڈیول کسی بھی وقت اور تاریخ کو باخبر رکھ سکتا ہے ، لہذا آپ کسی بھی وقت / تاریخ کی ضرورت کے مطابق ایک مقررہ کام انجام دے سکتے ہیں۔ آپ کسی AC آلات کو بھی پنکھے جیسے لائٹ سے مربوط کرسکتے ہیں اور جب ضرورت ہو تو اسے آن یا آف کرنے کیلئے شیڈول کرسکتے ہیں۔ اس منصوبے پر آپ اور بھی بہت کچھ تیار کرسکتے ہیں ، مجھے بتائیں کہ اس پراجیکٹ میں اپ گریڈ کے طور پر آپ کے ذہن میں کیا خیال آتا ہے اور مجھے آپ کی بات سن کر خوشی ہوگی۔
امید ہے کہ آپ پروجیکٹ کو سمجھ گئے ہوں گے اور اس عمل سے کچھ کارآمد سیکھیں گے۔ اگر آپ کو اس پروجیکٹ میں کوئی شبہات ہیں تو ان کو پوسٹ کرنے کے لئے کمنٹ سیکشن کا استعمال کریں یا کسی تکنیکی مدد کے لئے فورمز کا استعمال کریں۔
ہیڈر فائلوں والا مکمل PIC کوڈ یہاں پایا جاسکتا ہے