در این پست قصد داریم تا برای یکی دیگر از پروژه های آردوینو یک برنامه دیگر با سی شارپ طراحی کنیم و در نهایت توسط برنامه نوشته شده بتوانیم ال ای دی حلقهای (Ring LED) را توسط سختافزار آردوینو کنترل کنیم.
برای آشنایی بیشتر با سیشارپ آموزش کنترل LED توسط نرمافزارکامپیوتر را مطالعه کنید.
در این پست به آموزش مطالب جدیدی از زبان قدرتمند سی شارپ هم میپردازیم.
در این آموزش به موارد زیر نیاز داریم:
- آردوینو (در این آموزش از UNO استفاده میکنیم )
- ال ای دی حلقه ای (ترجیحا Ring Led Neo Pixel)
- برد بورد
- تعدادی سیم برد بورد
خب در مرحله بعدی باید مدار را ببندیم. از آنجا که در این سری از آموزشها قصد اصلی ما یادگیری و کار با زبان سی شارپ است، سعی کردیم اغلب از مدارات ساده استفاده کنیم.
اتصال سخت افزار موردنیاز به آردوینو
- پایه GND ال ای دی رو به GND آردوینو وصل می کنیم.
- پایه VCC یا 5V (بسته به نوع ال ای دی) به پایه 5V متصل میکنیم.
- در نهایت پایه DI رو به پایه D13 آردوینو متصل میکنیم.
خب پس از اینکه تمام اتصالات مدار را انجام دادیم کد زیر را روی آردوینو آپلود میکنیم:
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 | #include <Adafruit_NeoPixel.h> #define PIN 13 #define NUMPIXELS 8 char in; int t; Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); void setup() { Serial.begin(9600); strip.begin(); strip.clear(); strip.show(); } void loop() { in = Serial.read(); switch(in){ case '1' : { t = 1; break; } case '2' : { t = 2; break; } case '3' : { t = 3; break; } case '4' : { t = 4; break; } case '5' : { t = 5; break; } case '6' : { t = 6; break; } case '7' : { t = 7; break; } case '8' : { t = 8; break; } } for(int j = 0;j < 8;j++){ strip.setPixelColor(j,0,0,0); strip.show(); } for(int i = 0;i < t;i++){ strip.setPixelColor(i,255,255,255); strip.show(); } } |
در این بخش، سراغ قسمت اصلی پروژه میرویم یعنی ساخت نرم افزار مورد نیاز با زبان سی شارپ:
ابتدا برنامه visual studio را باز میکنیم و یک پروژه جدید از نوع windows application form درست میکنیم.
با محیطی شبیه شکل زیر مواجه خواهیم شد.
اندازه فرم رو همانند شکل زیر متناسب با پروژه کوچک میکنیم.
حال یک دکمه جدید بر روی فورم خودمون ایجاد میکنیم و در محل شکل زیر قرار میدهیم.
با Property Window یا همان پنجره خصوصیت در آموزش کنترل LED توسط نرمافزار آشنا شدیم و خصوصیت text دکمه جدید را به ” Exit ” تغییر میدهیم.
در این قسمت برای ایجاد ارتباط با آردوینو به یک serial port نیاز داریم از منوی toolbox گزینهی Serial port رو انتخاب میکنیم و بر روی آن دو بار کلیک میکنیم تا یک Serial port به برنامه اضافه شود.
در مرحله بعدی یک label بر روی فرم قرار میدهیم و خصوصیت text را به “PORT” تبدیل میکنیم و سپس یک textbox بر روی فورم قرار میدهیم و خصوصت name را به txtport تغییر میدهیم. و در نهایت یک button دیگر بر روی فورم قرار میدهیم و خصوصیت text را به “RUN” تغییر میدهیم و خصوصیت name را بر روی btnport تنظیم میکنیم. و در آخر یک دکمه دیگر بر روی فورم قرار میدهیم.
خصوصیت text رو به ” ” (هیچی) تغییر میدهیم و رنگ پس زمینه آن را (backColor) به قرمز تبدیل میکنیم. و همانند شکل زیر آنها را مرتب میکنیم.
از منوی tool box آیتم TrackBar رو بر روی فرم قرار میدهیم و خصوصیت Maximum را بر روی 8 و خصوصیت Minimum را بر روی 1 تنظیم میکنیم.
ظاهر فرم به صورت کامل درست شده و به قسمت کد نویسی برنامه میپردازیم:
بر روی دکمه Exit دوبار کلیک میکنیم و کد زیر را در بخش مربوطه قرار میدهیم.
1 2 3 4 | private void Button1_Click(object sender, EventArgs e) { Application.Exit(); } |
و درادامه بر روی دکمه RUN دابل کلیک میکنیم و کد زیر را در بخش مشخص شده قرار میدهیم.
1 2 3 4 5 6 | private void Button2_Click(object sender, EventArgs e) { serialPort1.PortName = txtport.Text; serialPort1.Open(); btnport.BackColor = Color.Green; } |
در آخر بر روی TrackBar دوبار کلیک میکنیم و کد زیر را در بخش مربوطه قرار میدهیم.
1 2 3 4 5 6 | private void TrackBar1_Scroll(object sender, EventArgs e) { int a; a = trc.Value; serialPort1.Write(a.ToString()); } |
برنامه به طور کلی ساخته شده و آماده استفاده است.
روی دکمه Start کلیک میکنیم و منتظر بارگزاری برنامه ال ای دی حلقهای میشویم.
در قسمت جعبه متن (text box) پورت ورودی آردوینو را وارد میکنیم و بر روی دکمه RUN کلیک میکنیم اگر به درستی به آردوینو متصل شده باشیم کلید قرمز در زیر جعبه متن از قرمز به سبز تبدیل میشود و با تغییر TrackBar تعداد ال ای دی هایی که بر روی ال ای دی حلقهای ما روشن میشود تغییر میکند.
امیدوارم که این آموزش هم برای شما دوستان سیسوگی مفید واقع شده باشد.