در این پست از سایت اِمیک, نحوه راه اندازی یک سون سگمنت 4 تایی (چهار دیجیت یا چهار رقمی) را با استفاده از برد اردوینو یاد خواهیم گرفت. قبلا پست راه اندازی سون سگمنت 4 تایی با میکروکنترلر AVR را در سایت قرار داده بودم که در ان پست با سون سگمنت چهارتایی اشنا شدیم. به همین خاطر من در این پست فقط یک تصویر از ترتیب پایه های این سون سگمنت قرار خواهم داد, برای اشنایی بیشتر با سون سگمنت 4 تایی و پایه های ان می توانید پست معرفی شده را مطالعه کنید.
در زیر شماتیک پروژه راه اندازی سون سگمنت 4 تایی با برد اردوینو UNO را مشاهده می کنید. در این پروژه ما از یک سون سگمنت 4 تایی اند مشترک استفاده می کنیم. عملکرد این پروژه به این صورت است که ما اعداد 1 تا 4 را به ترتیب روی سون سگمنت های اول تا چهارم نمایش می دهیم. در انتهای مطلب می توانید کلیپ تست عملی پروژه را مشاهده کنید.
همانطور که مشاهده می کنید در این پروژه ما از برد اردوینو یونو (UNO) به همراه یک سون سگمنت 4 تایی اند مشترک استفاده کرده ایم. بجز برد اردوینو و سون سگمنت از تعدادی مقاومت و ترانزیستور نیز استفاده شده که در ادامه دلیل ان را توضیح خواهم داد.
همانطور که می دانید ولتاژ تغذیه سون سگمنت حدود 3.5 ولت است. بنابراین ما نباید پایه های سون سگمنت را بطور مستقیم به برد اردوینو که دارای ولتاژ خروجی 5 ولت است متصل کنیم. به همین دلیل پایه های A تا G سون سگمنت 4 تایی توسط مقاومتهای 330 اهم به برد اردوینو متصل شده اند. همچنین از انجایی که جریان خروجی پایه های برد اردوینو محدود است از ترانزیستورهای Q1 تا Q4 در حالت سوئیچینگ برای درایو کردن و راه اندازی سون سگمنت های 1 تا 4 استفاده شده است.
طبق شماتیک بالا, پایه های 0 تا 6 از برد اردوینو به ترتیب به پایه های A تا G از سون سگمنت 4 رقمی متصل شده اند (توسط مقاومت های 330 اهم) و همچنین پایه های 8 تا 11 از برد اردوینو به پایه های مشترک سون سگمنت های 1 تا 4 متصل شده اند (توسط مقاومت و ترانزیستور). در تصویری که در ابتدای پست از ترتیب پایه های سون سگمنت 4 رقمی قرار دادم, پایه های مشترک با نام های D1 تا D4 مشخص شده اند.
دقت کنید که محلی در شماتیک که با VCC مشخص شده را باید به مثبت تغذیه (5 ولت) متصل کنید.
برنامه اردوینو :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
/////////// WWW.EMIC.IR /////////// byte seg[10][7] = { //در زیر ما یک ارایه تعریف کرده ایم که شامل معادل باینری اعداد 0 تا 9 برای سون سگمنت اند مشترک است// { 0, 0, 0, 0, 0, 0, 1 }, // = 0 { 1, 0, 0, 1, 1, 1, 1 }, // = 1 { 0, 0, 1, 0, 0, 1, 0 }, // = 2 { 0, 0, 0, 0, 1, 1, 0 }, // = 3 { 1, 0, 0, 1, 1, 0, 0 }, // = 4 { 0, 1, 0, 0, 1, 0, 0 }, // = 5 { 0, 1, 0, 0, 0, 0, 0 }, // = 6 { 0, 0, 0, 1, 1, 1, 1 }, // = 7 { 0, 0, 0, 0, 0, 0, 0 }, // = 8 { 0, 0, 0, 1, 1, 0, 0 } // = 9 }; void setup() { //از خط 17 تا 27 ما پین هایی از برد اردوینو که قرار است به سون سگمنت متصل شوند را خروجی کرده ایم// pinMode(0, OUTPUT); pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); } //در زیر ما یک تابع تعریف کرده ایم که با فراخوانی ان عدد مورد نظر را روی سون سگمنت نمایش می دهد// void sevenseg(int n ) { for (int a = 0; a < 7; a++) { digitalWrite(a, seg[n][a]); } } void loop() { digitalWrite(8, 1); //فعال کردن سون سگمنت اول// digitalWrite(9, 0); //غیر فعال کردن سون سگمنت دوم// digitalWrite(10, 0); //غیر فعال کردن سون سگمنت سوم// digitalWrite(11, 0); //غیر فعال کردن سون سگمنت چهارم// sevenseg(1); //نمايش عدد 1 روي سون سگمنت// delay(1000); //ايجاد 1000 ميلي ثانيه يا 1 ثانيه تاخير// digitalWrite(8, 0); //غیر فعال کردن سون سگمنت اول// digitalWrite(9, 1); //فعال کردن سون سگمنت دوم// digitalWrite(10, 0); //غیر فعال کردن سون سگمنت سوم// digitalWrite(11, 0); //غیر فعال کردن سون سگمنت چهارم// sevenseg(2); //نمايش عدد 2 روي سون سگمنت// delay(1000); //ايجاد 1000 ميلي ثانيه يا 1 ثانيه تاخير// digitalWrite(8, 0); //غیر فعال کردن سون سگمنت اول// digitalWrite(9, 0); //غیر فعال کردن سون سگمنت دوم// digitalWrite(10, 1); //فعال کردن سون سگمنت سوم// digitalWrite(11, 0); //غیر فعال کردن سون سگمنت چهارم// sevenseg(3); //نمايش عدد 3 روي سون سگمنت// delay(1000); //ايجاد 1000 ميلي ثانيه يا 1 ثانيه تاخير// digitalWrite(8, 0); //غیر فعال کردن سون سگمنت اول// digitalWrite(9, 0); //غیر فعال کردن سون سگمنت دوم// digitalWrite(10, 0); //غیر فعال کردن سون سگمنت سوم// digitalWrite(11, 1); //فعال کردن سون سگمنت چهارم// sevenseg(4); //نمايش عدد 4 روي سون سگمنت// delay(1000); //ايجاد 1000 ميلي ثانيه يا 1 ثانيه تاخير// } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید. از انتهای مطلب نیز می توانید فایل های اردوینو و شبیه سازی پروتئوس برای این پروژه را دانلود کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…