به نام خدا : سلام خدمت داشای گلم؛ تو این مطلب میخوام یه پروژه آردوینو از برقراری ارتباط آردوینو با کامپیوتر بزارم براتون، این پروژه ها تا جلسه ۴-۵ ادامه داره(حداقل) چون یه ۴-۵ تایی پروژه آماده کردم و رو دستم باد کرده ، البته این که من میگم پروژه آردوینو ، زیاد مهم نیست و اصل همون پروژه #C اییش هستش وگرنه شما میتونید همین برنامه رو با AVR بنویسید(و من چون اصلا حال ندارم این کار رو نمیکنم، وگرنه آموزش و پروژه های AVR رو قبلا گزاشتم، شما میتونید برید اونا رو بخونید و این #C رو هم ببینید و…)
پروژه کنترل LED میکرو با کامپیوتر جلسه ۲
خوب تو این فیلم زیر کد های پروژه توی #C رو توش گفتم(البته چیزه، نبینید بهتره خیلی بد توضیح دادم؛ البته اگه سرعت اینترنتتون خوبه برید دانلود کنید، از قدیم میگن سرکه مفت از عسل هم شیرین تره غم مغور یوسف گم گشته قطره قطره دریا شود )
آموزش ارتباط میکرو با کامپیوتر
تو فیلم زیر کد های قسمت تنظیمات(برا برقراری ارتباط میکرو و کامپیوتر) رو گفتم و تو مطلب بعد دیگه کایر با این قسمت ندارم :
اینم از فیلم پروژه این مطلب
کد های پروژه آردوینو
1 2 3 4 5 6 7 8 9 10 |
void setup() { Serial.begin(9600); pinMode(13, OUTPUT); } void loop() { if (Serial.available() > 0) digitalWrite(13, Serial.parseInt()); } |
توضیح این کد ها رو قبلا تو آموزش های آردوینو گفتم لذا الان دیگه توضیح نمیدم : آموزش آردوینو
عکسی از پروژه آردوینو
کد های پروژه #C
البته بهتره کد های پروژه #C رو تو همون محیط VS (ویژوال استدیو) ببینید، اینا یه جوری هستش
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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO.Ports; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void DefaultSetting_Click(object sender, EventArgs e) { serialPort1.DataBits = 8; serialPort1.Parity = Parity.None; serialPort1.StopBits = StopBits.One; serialPort1.BaudRate = 9600; serialPort1.PortName = "COM17"; cb_DataBit.Text = "8"; cb_Parity.Text = "None"; cb_StopBit.Text = "1"; cb_BaudRate.Text = "9600"; cb_PortCom.Text = "COM17"; } private void Setting_Click(object sender, EventArgs e) { if (cb_StopBit.Text != string.Empty && cb_DataBit.Text != string.Empty && cb_Parity.Text != string.Empty && cb_BaudRate.Text != string.Empty && cb_PortCom.Text != string.Empty) { serialPort1.DataBits = Convert.ToInt32(cb_DataBit.Text); if (cb_Parity.Text == "None") serialPort1.Parity = Parity.None; else if (cb_Parity.Text == "Odd") serialPort1.Parity = Parity.Odd; else if (cb_Parity.Text == "Even") serialPort1.Parity = Parity.Even; if (cb_StopBit.Text == "1") serialPort1.StopBits = StopBits.One; else if (cb_StopBit.Text == "1.5") serialPort1.StopBits = StopBits.OnePointFive; else if (cb_StopBit.Text == "2") serialPort1.StopBits = StopBits.Two; serialPort1.BaudRate = Convert.ToInt32(cb_BaudRate.Text); serialPort1.PortName = Convert.ToString(cb_PortCom.Text); MessageBox.Show("تنظیمات اعمال شد", "OK", MessageBoxButtons.OK); } else MessageBox.Show("داش اول اون جعبه ها رو تکمیل کن\nو بعد بیا بگو اعمال تنظیمات", "!!!", MessageBoxButtons.OK); } private void ClosePort_Click(object sender, EventArgs e) { if (serialPort1.IsOpen) { serialPort1.Close(); MessageBox.Show("پورت بسته شد", "OK", MessageBoxButtons.OK); } else MessageBox.Show("داش من پورتی باز نیست که میگی ببندش\nگرفتی مارو؟", "OK", MessageBoxButtons.OK); } private void OpenPort_Click(object sender, EventArgs e) { if (cb_StopBit.Text == string.Empty && cb_DataBit.Text == string.Empty && cb_Parity.Text == string.Empty && cb_BaudRate.Text == string.Empty && cb_PortCom.Text == string.Empty) MessageBox.Show(".داش اول اون جعبه ها رو تکمیل کن", "!!!", MessageBoxButtons.OK); else { try { serialPort1.Open(); MessageBox.Show("پورت مورد نظر باز شد؛برو حالشو ببر", "OK", MessageBoxButtons.OK); } catch { MessageBox.Show("پورت مورد نظر در دسترس نیستش داش من", "OK", MessageBoxButtons.OK); } } } private void btn_Refresh_Click(object sender, EventArgs e) { lb_AvailablePort.Items.Clear(); foreach (string str_GetPortNames in SerialPort.GetPortNames()) { lb_AvailablePort.Items.Add(str_GetPortNames); } } private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { System.Diagnostics.Process.Start("https://DMF313.IR"); } private void rb_ON_CheckedChanged(object sender, EventArgs e) { if (rb_ON.Checked == true) SendData(1); } private void rb_OFF_CheckedChanged(object sender, EventArgs e) { if (rb_OFF.Checked == true) SendData(0); } void SendData(int On_Off) { if (serialPort1.IsOpen == true) serialPort1.Write(Convert.ToString(On_Off)); else MessageBox.Show("...دادا کجایی، اول برو قسمت تنظیمات", "!!!", MessageBoxButtons.OK); } } } |
دانلود پروژه برقراری ارتباط میکرو با #C جلسه ۲
خوب این مطلب هم تموم شد و از شرش راحت شدیم رفت…شرمنده یکم دیر شد….دلیل = حمله به سایت و پایین اومدن سرعت سایت……سوالی موالی چیزی بود در خدمتیم…..
فعال با اجازتون ما بریم…….یا علی…..راستی ما رو یادتون نره دعا کنید.
مهمان
سلام خیلی ممنون از آموزش های بسیار خوبتون . اجرتون با آقا صاحب الزمان
مهمان
سلام. وقت بخیر. من ۱ مشکل اسا سی دارم و اونم این که نمیتونم موقعیت استپ موتور رو سیو کنم. وقتی استپ در حال چرخش برقرو قطع میکنم و دوباره وصل میکنم بجای اینکه از جایی که مونده ادامه بده میره از اول .نحوه استفاده از ایپرام رو بلد نیستم. میشه ۱ کد واسه سیو کردن استپهاش بدید.ممنون میشم.یا حسین
نویسنده این مطلب
سلام
خو معلومه دلیلش
چون وقتی برق قطع و وصل میشه برنامه از اول شروع میشه و کد ها اجرا میشن
باید اون متغییری که مقدار زاویه موتور توش ذخیره هستش محل ذخیرش رو تو eeprom قرار بدی و بعد بدی به موتور این مقدار رو….وقتی هم برق بره مقدار آخرین درجه موتور هنوز هستش و پاک نشده
ok?
مهمان
سلام
دمت گرم خیلی دنبال اینجور اموزشایی میگشتم
عالیه
ادامه بده…….
نویسنده این مطلب
سلام
خواهش