logo-site-sefid
راه اندازی سون سگمنت به وسیله آردوینو

راه اندازی سون سگمنت با آردوینو

راه اندازی سون سگمنت با آردوینو
آموزش راه اندازی سون سگمنت به وسیله آردوینو

در این آموزش قصد داریم راه اندازی سون سگمنت با آردوینو را آموزش دهیم. صفحه نمایش از 0 تا 9 شمرده و سپس خودش را به صفر باز می گرداند. اما قبل از اینکه به پیش برویم، اجازه دهید در مورد صفحه نمایش های سون سگمنت توضیحاتی ارائه دهیم.

نمایشگر سون سگمنت (سگمنت ب معنای بخش و سون به معنای 7 می باشد) نام خودش را از 7 بخش نورانی ای که دارد گرفته است. هر کدام از این بخش ها یک ال ای دی ( دیود نور گسیل ) داشته که موجب تولید نور می باشند. ال ای دی ها به صورتی تعبیه شده اند که نور دهی هر ال ای دی مختص به بخش مربوط به بخش خودش می باشد. مسئله قابل توجهی که می بایست اینجا به آن پرداخت این است که ال ای دی های موجود در هر سون سگمنتی در حالت آند مشترک ( مثبت مشترک ) و یا کاتد مشترک ( منفی مشترک )، مرتب شده اند.

شماتیک مدار سون سگمنت
شماتیک مدار سون سگمنت

مدار اتصالات ال ای دی ها در حالت کاتد مشترک و آند مشترک در شکل بالا نمایش داده شده است. در اینجا می توانید مشاهده کنید که، در کاتد مشترک، پایه های منفی همه ال ای دی ها بهم متصل شده و به عنوان پایه زمین (GND) به خروجی برده شده است. در آند مشترک، پایه های مثبت همه ال ای دی ها بهم متصل شده و به عنوان پایه تغذیه (VCC) به ورودی برده شده است. این کاتد مشترک و آند مشترک زمانی که چند نمایشگر را برای استفاده همگام بهم متصل می کنیم، بسیار کاربردی خواهند بود.

قطعات مورد نیاز برای راه اندازی سون سگمنت با آردوینو :

 سخت افزار: برد آردوینو UNO

منبع تغذیه 5 ولت

دو قطعه نمایشگر سون سگمنت HDS5503 ( هر نوع نمایشگر کاتد مشترک دیگر نیز عمل خواهد کرد )

خازن 47 میکروفارادی ( متصل شده در دو طرف منبع تغذیه )

نرم افزار: IDE آردوینو

همچنین برای تهیه انواع پک آماده میتوانید از بخش فروشگاه و بخش پک رباتیک وسایل مورد نیاز خود را تهیه کنید.

دیاگرام مداری و نحوه عملکرد آن:

اتصال سون سگمنت به آردوینو
مدار و نحوه اتصال سون سگمنت به آردوینو

اتصالاتی که برای نمایشگر سون سگمنت انجام شده اند در زیر آورده شده است:

پین 1 یا E به پین 6 از آردوینو Uno

پین 2 یا D به پین 5

پین 4 یا C به پین 4

پین 5 یا H یا DP به پین 9 /// از آن جایی که از اعداد اعشاری استفاده نمی کنیم نیازی به این پایه نیست

پین 6 یا B به پین 3

پین 7 یا A به پین 2

پین 9 یا F به پین 7

پین 10 یا G به پین 8

پین 3 یا پین 8 یا کاتد مشترک به زمین از طریق یک مقاومت 100 اهم

حال برای فهمیدن نحوه عملکرد راه اندازی سون سگمنت با آردوینو ، فرض کنید یک نمایشگر سون سگمنت به یک پورت وصل شده باشد، مثلا بگوییم که سگمنت A از صفحه نمایش را به پین 0، سگمنت B از صفحه نمایش را به پین 1، سگمنت A از صفحه نمایش را به پین 3، سگمنت A از صفحه نمایش را به پین 4، سگمنت A از صفحه نمایش را به پین 5، سگمنت A از صفحه نمایش را به پین 6، وصل کرده باشیم. و همانگونه که در تصویر زیر مشخص شده از نوع زمین مشترک باشد.

سون سگمنت کاتد مشترک
سون سگمنت کاتد مشترک خاموش

در اینجا پایه زمین مشترک برای اینکه صفحه نمایش به درستی کار کند می بایست به زمین متصل شود. شما می توانید سلامت هر سگمنت را به وسیله یک مولتی متر در حالت دیودی تست کنید. هر سگمنت نبایست ولتاژی بیشتر از 4 ولت را دریافت کند، اگر این اتفاق بیافتد، صفحه نمایش خراب خواهد شد. برای جلوگیری از این مقوله، یک مقاومت مشترک در گره مشترک ال ای دی ها همانگونه که در دیاگرام مداری نشان داده شده است متصل می شود.

حال اگر بخواهیم عدد صفر را همانگونه که در تصویر زیر نشان داده شده است نشان دهیم،

سون سگمنت کاتد مشترک
سون سگمنت کاتد مشترک در حالت نمایش عدد 0

نیاز است که ال ای دی های سگمنت های A,B,C,D,E,F را روشن کنیم. بنابر این نیاز است به پین های 0، 1، 2، 3، 4 و 5 برق بدهیم. بنابرین هر زمان که به یک صفر نیاز داشتیم می بایست پایه های ذکر شده را یک کنیم.

حال اگر بخواهیم عدد یک بر روی صفحه نمایش نشان داده شود،

سون سگمنت عدد 1
سون سگمنت کاتد مشترک در حالت نمایش عدد 1

می بایست سگمنت های B و C را روشن کنیم. برای روشن شدن سگمنت های B و C می بایست پین های 1 و 2 را یک کنیم. با یک شدن هر دو پایه ما بر ریو صفحه نمایش عدد 1 را خواهیم داشت. بنابراین، همانطور که در بالا دیدید، برای نمایش دادن اعداد روی صفحه نمایش، می بایست پین های مربوط به هر سگمنت مرتبط به آن عدد را یک کنیم.

در اینجا ما می خواهیم برنامه ای بنویسیم که هر سگمنت را برای شمارش 0 تا 9 خاموش و روشن می کند. نحوه عملکرد شمارنده 0 تا 9 در کد زیر که به زبان C نوشته شده است، به نحو احسن توضیح داده شده است.

#define segA 2//connecting segment A to PIN2

#define segB 3// connecting segment B to PIN3

#define segC 4// connecting segment C to PIN4

#define segD 5// connecting segment D to PIN5

#define segE 6// connecting segment E to PIN6

#define segF 7// connecting segment F to PIN7

#define segG 8// connecting segment G to PIN8

 

                int COUNT=0;//count integer for 0-9 increment

void setup()

{

                  for (int i=2;i<9;i++)

                  {

                                    pinMode(i, OUTPUT);// taking all pins from 2-8 as output

                  }

}

 

void loop()

{

switch (COUNT)

                {

 

                case 0://when count value is zero show”0” on disp

                digitalWrite(segA, HIGH);

                digitalWrite(segB, HIGH);

                digitalWrite(segC, HIGH);

                digitalWrite(segD, HIGH);

                digitalWrite(segE, HIGH);

                digitalWrite(segF, HIGH);

                digitalWrite(segG, LOW);

                break;

 

                case 1:// when count value is 1 show”1” on disp

                digitalWrite(segA, LOW);

                digitalWrite(segB, HIGH);

                digitalWrite(segC, HIGH);

                digitalWrite(segD, LOW);

                digitalWrite(segE, LOW);

                digitalWrite(segF, LOW);

                digitalWrite(segG, LOW);

                break;

 

                case 2:// when count value is 2 show”2” on disp

                digitalWrite(segA, HIGH);

                digitalWrite(segB, HIGH);

                digitalWrite(segC, LOW);

                digitalWrite(segD, HIGH);

                digitalWrite(segE, HIGH);

                digitalWrite(segF, LOW);

                digitalWrite(segG, HIGH);

                break;

 

                case 3:// when count value is 3 show”3” on disp

                digitalWrite(segA, HIGH);

                digitalWrite(segB, HIGH);

                digitalWrite(segC, HIGH);

                digitalWrite(segD, HIGH);

                digitalWrite(segE, LOW);

                digitalWrite(segF, LOW);

                digitalWrite(segG, HIGH);

                break;

 

                case 4:// when count value is 4 show”4” on disp

                digitalWrite(segA, LOW);

                digitalWrite(segB, HIGH);

                digitalWrite(segC, HIGH);

                digitalWrite(segD, LOW);

                digitalWrite(segE, LOW);

                digitalWrite(segF, HIGH);

                digitalWrite(segG, HIGH);

                break;

 

                case 5:// when count value is 5 show”5” on disp

                digitalWrite(segA, HIGH);

                digitalWrite(segB, LOW);

                digitalWrite(segC, HIGH);

                digitalWrite(segD, HIGH);

                digitalWrite(segE, LOW);

                digitalWrite(segF, HIGH);

                digitalWrite(segG, HIGH);

                break;

 

                case 6:// when count value is 6 show”6” on disp

                digitalWrite(segA, HIGH);

                digitalWrite(segB, LOW);

                digitalWrite(segC, HIGH);

                digitalWrite(segD, HIGH);

                digitalWrite(segE, HIGH);

                digitalWrite(segF, HIGH);

                digitalWrite(segG, HIGH);

                break;

 

                case 7:// when count value is 7 show”7” on disp

                digitalWrite(segA, HIGH);

                digitalWrite(segB, HIGH);

                digitalWrite(segC, HIGH);

                digitalWrite(segD, LOW);

                digitalWrite(segE, LOW);

                digitalWrite(segF, LOW);

                digitalWrite(segG, LOW);

                break;

 

                case 8:// when count value is 8 show”8” on disp

                digitalWrite(segA, HIGH);

                digitalWrite(segB, HIGH);

                digitalWrite(segC, HIGH);

                digitalWrite(segD, HIGH);

                digitalWrite(segE, HIGH);

                digitalWrite(segF, HIGH);

                digitalWrite(segG, HIGH);

                break;

 

                case 9:// when count value is 9 show”9” on disp

                digitalWrite(segA, HIGH);

                digitalWrite(segB, HIGH);

                digitalWrite(segC, HIGH);

                digitalWrite(segD, HIGH);

                digitalWrite(segE, LOW);

                digitalWrite(segF, HIGH);

                digitalWrite(segG, HIGH);

                break;

 

                break;

                }

                if (COUNT<10)

                {

                                COUNT++;

                                delay(1000);///increment count integer for every second

                }

                if (COUNT==10)

                {

                                COUNT=0;// if count integer value is equal to 10, reset it to zero.

                                delay(1000);

                }

}

 

رضا قنبری
متخصص آموزش رباتیک

رضا قنبری هستم متخصص آموزش رباتیک با بیش از 10 سال سابقه فعالیت در ایران

این مطلب را به اشتراک بگذارید

راه اندازی سون سگمنت به وسیله آردوینو
آموزش الکترونیک

راه اندازی سون سگمنت با آردوینو

در این آموزش قصد داریم راه اندازی سون سگمنت با آردوینو را آموزش دهیم. صفحه نمایش از 0 تا 9 شمرده و سپس خودش را

کنترل ال ای دی RGB با آردوینو
آموزش الکترونیک

کنترل LED RGB با آردوینو

در این پروژه قصد داریم کنترل LED RGB با آردوینو را آموزش دهیم. یک ال ای دی RGB معمولی در تصویر زیر نشان داده شده

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.