به نام خدا : سلام خدمت شما دوستان، اینم یه پروژه ساده دیگه برا جلسه ۸ برقراری ارتباط میکرو با کامپیوتر، که پروژش با آردوینو هستش، توی این مطلب ما ۸ تا LED رو به برد آردوینومون وصل کردیم و میخوایم با PC روشن یا خاموش بودنشون رو کنترل کنیم؛ اگه پروژه ساده ای تو مایه ها این ۳ تا مطلب و ۲ مطلب بعدی چیزی به نظرتون رسید بگید.
پروژه کنترل هشت LED با کامپیوتر جلسه ۳
کد های پروژه آردوینو
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
void setup() { Serial.begin(9600); for (int i = 2; i <= 9; i++) pinMode(i, OUTPUT); } void loop() { if (Serial.available() > 0) DigitalWrite_To_PORT(Serial.parseInt(), 2, 3, 4, 5, 6, 7, 8, 9); } void DigitalWrite_To_PORT(int Value, int pin1, int pin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8) { digitalWrite(pin1, bitRead(Value, 0)); digitalWrite(pin2, bitRead(Value, 1)); digitalWrite(pin3, bitRead(Value, 2)); digitalWrite(pin4, bitRead(Value, 3)); digitalWrite(pin5, bitRead(Value, 4)); digitalWrite(pin6, bitRead(Value, 5)); digitalWrite(pin7, bitRead(Value, 6)); digitalWrite(pin8, bitRead(Value, 7)); } |
کد های پروژه #C
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 106 107 108 109 110 111 112 113 114 115 116 117 118 |
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 { int TotalofNumberLED = 0 ; int[] NumberLED=new int[8]; 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 checkedListBox1_SelectedIndexChanged(object sender, EventArgs e) { if (checkedListBox1.GetItemChecked(0) == true) NumberLED[0] = 1; else NumberLED[0] = 0; if (checkedListBox1.GetItemChecked(1) == true) NumberLED[1] = 2; else NumberLED[1] = 0; if (checkedListBox1.GetItemChecked(2) == true) NumberLED[2] = 4; else NumberLED[2] = 0; if (checkedListBox1.GetItemChecked(3) == true) NumberLED[3] = 8; else NumberLED[3] = 0; if (checkedListBox1.GetItemChecked(4) == true) NumberLED[4] = 16; else NumberLED[4] = 0; if (checkedListBox1.GetItemChecked(5) == true) NumberLED[5] = 32; else NumberLED[5] = 0; if (checkedListBox1.GetItemChecked(6) == true) NumberLED[6] = 64; else NumberLED[6] = 0; if (checkedListBox1.GetItemChecked(7) == true) NumberLED[7] = 128; else NumberLED[7] = 0; for (int i = 0; i <= 7; i++) TotalofNumberLED = NumberLED[i] + TotalofNumberLED; label6.Text = Convert.ToString(TotalofNumberLED); if (serialPort1.IsOpen == true) serialPort1.Write(Convert.ToString(TotalofNumberLED)); else MessageBox.Show("...دادا کجایی، اول برو قسمت تنظیمات", "!!!", MessageBoxButtons.OK); TotalofNumberLED = 0; } } } |
فیلم پروژه برقراری ارتباط میکرو با کامپیوتر
خوب اینم از این مطلب، بریم سراغ مطلب بعدی، ۲ تا مطلب دیگه بزارم تا بریم سراغ کارای دیگمون، امیدوارم این مطالب بدردتون بخوره، نکات + و – رو بگید، فعلا یا علی.
مهمان
میشه در باره کد های اردوینو از کد 12 به بعد توضیح بدی
نویسنده این مطلب
سلام-تابع DigitalWrite_To_PORT رو توضیحشو میخوای؟
خب ببین تو کدویژن یه چیزی به نام PORT بود که باهاش یه چک 8 تایی از پایه های میکرو رو کنترل میکردی ولی خب تو آردوینو مجبوری تک تک پایه ها رو کنترل کنی
اومدم این تابع رو نوشتم تا این امکانو به آردوینو هم اضافه کنم.
الان پارامتر اول مقدار و پارامترای بعدی پایه های مد نظر هستش که خب میتونستی اینارو دیفاین کنی و از حالت پارامتر بودن خارجشون کنی تا تابع فقط 1 پارامتر داشته باشه.
مهمان
سلام مهندس جان .واقعا ممنون
فقط یه سوال داشتم اونم اینه که برنامه #cرا توی کدوم محیط برنامه نویس می کنی یا با کدوم برنامه برنامه نویسی می کنی
نویسنده این مطلب
سلام
ویژوال استدیو
مهمان
doste aziz amkanesh hast hamin barname ro bara mac os ham benvisi ya moarefi koni?
نویسنده این مطلب
سلام-والا غیر از ویندوز با چیزی کار نکردم و بلد نیستم
مهمان
آقا درود بر شما .خدا خیرتان بده .واقعا سایت خوبی دارید و مطالب بسیار مفیدی قرار میدید. ممنون از شما.انشاالله موفق باشید
مهمان
آفرین بر شما بسیار سپاسگزارم اجرت با صاحب الزمان عج