شاید بارها با خودتون فکرکرده باشید که ایا امکانش است با نرمافزار های PC یتوانیم یک سختافزار را کنترل کنیم و یا خودمان بتوانیم این نرمافزار ها را درست کنیم و به یک سخت افزار متصل کنیم و در نهایت از نرمافزار ساخته شده جهت کنترل سختافزار استفاده کنیم. بله کاملا درست فکر میکنید این کار با سیشارپ کاملا شدنی است. در این مقاله قصد داریم توسط یک نرمافزار که در محیط سیشارپ طراحی شده است را به سختافزار اردوینو متصل کنیم و پس از اتصال به سختافزار یک LED را توسط نرمافزار ساخته شده کنترل کنیم. با سیسوگ همراه باشید. قاعدتا برای شروع به یک سری ادوات الکترونیکی و نرمافزارهای مرتبط با کارمان نیاز داریم که شامل موارد زیر میشوند. خب لازم است که قبل از شروع کار یک تاریخچهای از نرمافزار های که میخواهیم با انان کار کنیم بدانیم(حداقل بدونیم چی هستن و از کجا اومدن)
خب بریم سراغ بخش اصلی کار در ابتدا مداری که لازم داریم رو میبندیم به این صورت که: بخش سخت افزاری کار تمام شده است و به سراغ بخش اصلی و نرم افزاری کار میرویم(تمرکز ما هم دقیقا همین بخش است). نرم افزار آردوینو را باز میکنیم و یک پروژه جدید ایجاد کنیم. کد های زیر را در نرم افزار آردوینو قرار میدهیم و سپس روی برد آردوینو آپلود میکنیم.
اکنون نرم افزار Visual Studio را باز کنید و یک پروژه جدید در محل دلخواه و با نام دلخواه ایجاد کنید. با برنامه ای مطابق شکل زیر مواجه خواهید شد.
با استفاده از درگ کردن (کشیدن) اندازه فورم را متناسب با کارایی نرم افزار تنظیم میکنیم.
در برنامه نویسی فورم ها با سی شارپ ابتدا ظاهر فورم رو تنظیم میکنیم و سپس آیتم های مورد نیاز را نام گذاری و در نهایت به کد نویسی برنامه میپردازیم.
در قسمت بعدی دکمه ها را از نظر اندازه و مکان تنظیم میکنیم.
لیبل ها (label) برای نمایش متن ثابت استفاده می شوند از قسمت ToolBox دو بار بر روی Label دابل کلیک میکنیم.
در ادامه مکان لیبل ها را روی فورم تنظیم میکنیم.
برای ارتباط با آردوینو ما نیازمند به آیتمی به اسم Serialport هستیم از قسمت ToolBox ایتم را پیدا و بر روی ان دابل کلیک میکنیم.
در قسمت آخر یک جعبه متن (textbox) از طریق جعبه ToolBox به فورم اضافه و مکان ایکون را همانند شکل زیر روی فورم تنظیم میکنیم.
در این برنامه ما فقط از دو خصوصیت نام (name ) و متن (text) استفاده خواهیم کرد که در ادامه به توضیح هر کدوم میپردازیم.
بر روی دکمه OFF دابل کلیک کنید و کد زیر را در ان بخش قرار میهیم.
بر روی دکمه RUN دابل کلیک میکنیم و کد زیر را در قسمت مربوطه قرار میدهیم.
خب خسته نباشید تا اینجا کدنویسی نرمافزار و سخت افزار تموم شد و حالا وقتش رسیده که کد را تست کنیم. دکمه start رو از روی نوار ابزاری بالای نرم افزار کلیک میکنیم.
حال برنامه اجرا میشود (بستگی به سیستم شما ممکن است این امر کمی زمانبر باشد ) و در بخش port ما باید پورتی که آردوینو به ان متصل است را وارد کنیم (مثلا com3) و بر روی دکمه Run کلیک کنیم. متن لیبل زیر دکمه run به “com3 is running ” تبدیل میشود که این به معنای درست کار کردن برنامه و ارتباط صحیح با آردوینو میباشد و در غیر این صورت به ما خطا نشان میدهد که با زدن دکمه continue به برنامه باز میگردیم و ان را اصلاح میکنیم. با زدن دکمه on ال ای دی روشن و با زدن دکمه off ال ای دی خاموش می شود. نرمافزار را میتوانید از این قسمت دانلود کنید. PP-1.7z در این آموزش تقریبا سعی شد تمام مراحل به صورت جز به جز و کامل ارائه شود امیدوارم که این اموزش هم برای شما مخاطبین مفید واقع شده باشد.
- آردوینو (UNO)
- ال ای دی یک عدد
- سیم
- نرم افزار آردوینو
- Visual Studio
سی شارپ چیست؟
سی شارپ (به انگلیسی: C#)یک زبان برنامهنویسی کامپایلری، سطح بالا، شیءگرا، ساخت یافته، رویداد محور، تابعی، دستوری و جنریک است که توسط شرکت مایکروسافت در سال ۲۰۰۰ میلادی از خانوادهٔ زبانهای چارچوب داتنت معرفی شد. زبان سی شارپ همچنین از خانواده زبانهای برنامهنویسی سی (C) است.آردوینو چیست؟
آردوینو (به انگلیسی: Arduino) یک پلتفرم سخت افزاری و نرم افزاری متن باز است. پلتفرم آردوینو شامل یک میکروکنترلری تکبردی متنباز است که قسمت سخت افزار آردوینو را تشکیل میدهد. علاوه بر این پلتفرم آردوینو یک نرم افزار IDE که به منظور برنامهنویسی برای بردهای آردوینو طراحی شده است و یک بوت لودر نرم افزاری که بر روی میکروکنترلر بارگذاری میشود را در بر میگیرد. پلتفرم آردوینو به منظور تولید سریع و ساده پروژههای سخت افزاری تعاملی و ساخت وسایلی که با محیط تعامل داشته باشند طراحی شدهاست. البته بردهای آردوینو اهداف آموزشی را نیز دنبال میکنند.- پایه مثبت ال ای دی رو به یکی از پایه های دیجیتال آردوینو (در اینجا ما به 13 وصل میکنیم ) متصل میکنیم.
- پایه منفی ال ای دی رو هم به GND متصل میکنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | int led = 13; char in; void setup() { Serial.begin(9600); pinMode(led,OUTPUT); } void loop() { in = Serial.read(); if(in == '0'){ digitalWrite(13,0); } else if(in == '1' ){ digitalWrite(13,1); } } |
1. ظاهر فورم سیشارپ
در برنامه ما به سه دکمه (button ) نیاز داریم از قسمت ToolBox در سمت چپ بر روی button سه بار دابل کلیک میکنیم تا سه دکمه برای ما ایجاد شود.2. نام گذاری در سیشارپ
همان طور که گفته شد در مرحله دوم به نام گذاری ایتم ها میپردازیم اما قبل از ان لازم است تا با خصوصیت های هر آیتم تا حدودی آشنا شویم.- خصوصیت نام (name ): برای نام گذاری آیتم و ارجاع دادن به شیئ در هنگام کد نویسی.
- خصوصیت متن (text) : برای تغییر متن حاوی آیتم بر روی فورم
- بر روی دکمه button1 یک بار کلیک میکنیم و خصوصیت متن را به “ON” تغییر میدهیم.
- بر روی دکمه button2 یک بار کلیک میکنیم و خصوصیت متن را به “OFF” تغییر میدهیم.
- بر روی دکمه button3 یک بار کلیک میکنیم و خصوصیت متن را به “RUN” تغییر میدهیم.
- بر روی label2 یک بار کلیک میکنیم و خصوصیت متن را به “Port : ” تغییر میدهیم.
- بر روی label1 یک بار کلیک میکنیم و خصوصیت متن را به “…” تغییر میدهیم. و خصوصیت نام را به lblresult تبدیل میکنیم.
- بر روی جعبه متن یک بار کلیک میکنیم و خصوصیت نام اون رو به “txtport” تغییر میدهیم.
3. کد نویسی در سیشارپ
بر روی دکمه ON دابل کلیک میکنیم تا به محیط برنامه نویسی مربوط به دکمه موردنظر برویم و کد زیر را در ان بخش قرار میدهیم.1 2 3 4 | private void Button1_Click(object sender, EventArgs e) { serialPort1.Write("1"); } |
1 2 3 4 | private void Button2_Click(object sender, EventArgs e) { serialPort1.Write("0"); } |
1 2 3 4 5 6 | private void Button3_Click(object sender, EventArgs e) { serialPort1.PortName = txtport.Text; serialPort1.Open(); lblresult.Text = txtport.Text + " Is running "; } |
سلام
برای کنترل چند تا led باید کد ما به چه شکلی باشه؟
یا اون کد های اصلی چی هستند؟
لطفا به من کمک کنید.
واقعا ممنون از سایت خوبتون.
خیلی کاربردی بود.
سلام خدمت دوست عزیز آقای اسکینی:
با تشکر از مطلب آموزش کنترل LED توسط نرمافزار کامپیوتر شما واقعا عالی بود.
اگر امکان داره من دنبال برنامه ای مثل مثال بالا هستم که بتوانم مثلا دو یا سه تا دما رو روی اردینو بخونم و انها رو به پورت سریال بفرستم و مثلا در دو یا سه تکست باکس در سی شارپ ببینم . ممنون میشوم مرا یاری کنید . با تشکر قشقایی
سلام
تشکر بابت مطلب آموزنده.
با سلام خدمت شما دوست عزیز
از توجه و لطف شما متشکر