You are on page 1of 11

C# ( C Sharp ) - Nhn d liu t

Arduino
Hu Ton gi vo Ch nht, 26 Thng 6, 2016 - 22:40

GI TIN NHN CHO THNH VIN NY

1505 LT XEM

1.Gii thiu
Ly ngun cm hng t bi vit C# (C Sharp) Mt cch iu khin Arduino bng
my tnh ca bn inh Hng Thi . Mnh s xy dng phn tip theo ca lot bi giao
tip vi Arduino bng my tnh thng qua C#, da trn cng ngh Window Form
Application.Ni nghe nguy him vy, nhng thc ra bi vit kh n ginkeke.
Ni dung chnh ca bi ny l: Nhn d liu t Arduino n my tnh, thng qua
phn mm t to bng C# !!!!!
Thc ra n cng tng t nh Serial Monitor ca Arduino IDEnhng nu trong cc
cuc thi, bn s khng th t v ngc ri ni Serial Monitor l do mnh t to ra
cV vy, bn hy t to phn mm theo phong cch ring ca chnh mnh.!!!

2. Cch lm
lm c phn mm ny.cc bn phi c cng c h tr l: Microsoft Visual
Studio hoc Visual C# - Mt cng c ca cc lp trnh vin chuyn nghip (cc bn c
th xem li bi C# (C Sharp) Mt cch iu khin Arduino bng my tnhca
bn inh Hng Thi bit thm chi tit nh!). Sau khi ci t xong, trin thi!

a. Phn giao din

b. Phn code
1. using System;
2.
3. using System.Collections.Generic;
4.
5. using System.ComponentModel;
6.
7. using System.Data;
8.
9. using System.Drawing;

10.
11. using System.Linq;
12.
13. using System.Text;
14.
15. using System.Windows.Forms;
16.
17. // Thm 3 em ny vo l OK, si SerialPort
18.
19. using System.IO;
20.
21. using System.IO.Ports;
22.
23. using System.Xml;
24.
25. // Bt u code
26.
27.
28.
29. namespace nhandulieuCOM
30.
31. {
32.
33.

public partial class Form1 : Form

34.
35.
36.

37.
string InputData = String.Empty; // Khai bo string buff
dng cho hin th d liu sau ny.
38.
39.
delegate void SetTextCallback(string text); // Khai bao
delegate SetTextCallBack voi tham so string
40.
41.

public Form1()

42.
43.

44.
45.

InitializeComponent();

46.
47.
// Khai bo hm delegate bng phng thc
DataReceived ca Object SerialPort;
48.
49.
// Ci ny khi c s kin nhn d liu s nhy n
phng thc DataReceive
50.
51.
// Nu ko hiu on ny bn c th tm hiu v
Delegate, cn ko c COPY . Ko cn quan tm
52.
53.
serialPort1.DataReceived += new
SerialDataReceivedEventHandler(DataReceive);
54.
55.
string[] BaudRate = { "1200", "2400", "4800",
"9600", "19200", "38400", "57600", "115200" };
56.
57.

comboBox2.Items.AddRange(BaudRate);

58.
59.
60.

61.
62.
63.

private void Form1_Load(object sender, EventArgs e)

64.
65.

66.
67.
comboBox1.DataSource = SerialPort.GetPortNames();//
Qut cc cng COM ang hot ng ln comboBox1
68.
69.

comboBox2.SelectedIndex = 3;

70.
71.

// Set t ch mc nh cho n nguy him t!!!!

72.
73.

74.
75.
76.
77. // Ci ny l ch lm ti Hin th trng thi, cc bn xem
li bi ca inh Hng Thi bit thm chi tit
78.
79.

private void timer1_Tick(object sender, EventArgs e)

80.
81.

82.
83.

if (!serialPort1.IsOpen)

84.
85.
86.

87.
88.
89.

label5.Text = ("Cha kt ni");

90.
91.

label5.ForeColor = Color.Red;

92.
93.

94.
95.

else if (serialPort1.IsOpen)

96.
97.

98.
99.
100.
101.

label5.Text = (" kt ni");

102.
103.

label5.ForeColor = Color.Green;

104.
105.
106.
107.

108.
109.

110.
111.
private void DataReceive(object obj,
SerialDataReceivedEventArgs e)
112.
113.

114.
115.

InputData = serialPort1.ReadExisting();

116.
117.

if (InputData != String.Empty)

118.
119.

120.
121.
// textbox1 = InputData; // Ko dng c nh th
ny v khc threads .
122.
123.
SetText(InputData); // Chnh v vy phi s dng
y quyn ti y. Gi delegate khai bo trc .
124.
125.

126.
127.
128.
129.

130.
131.

// Hm ca em n l y. ng hi v sao li th.

132.
133.

private void SetText(string text)

134.
135.

136.
137.

if (this.textBox1.InvokeRequired)

138.
139.

140.
141.
SetTextCallback d = new
SetTextCallback(SetText); // khi to 1 delegate mi gi n
SetText
142.
143.

this.Invoke(d, new object[] { text });

144.
145.

146.
147.

else this.textBox1.Text += text;

148.
149.

150.
151. // Ci di tng t bi ca Thi...to button m v ng Serial
152.
153.

private void button2_Click(object sender, EventArgs e)

154.
155.

156.
157.

if (!serialPort1.IsOpen)

158.
159.

160.
161.

serialPort1.PortName = comboBox1.Text;

162.
163.
serialPort1.BaudRate =
Convert.ToInt32(comboBox2.Text);
164.
165.

serialPort1.Open();

166.
167.

168.
169.

170.
171.
172.
173.

private void button1_Click(object sender, EventArgs e)

174.
175.

176.
177.

serialPort1.Close();

178.
179.

180.
181.

182.
183. }

3. Kt qu
V y l thnh qu:

bi sp ti. mnh s hng dn chi tit cch xy dng li Serial Monitor bng
C# vi y chc nng nhn v gi vi giao din Max Vip...Cc bn hy ch
n v ng h mnh bng cch Rate Note bi nh!!
Cc bn c th ti v source code ti y.
Chc cc bn thnh cng v c nhiu nhng pht minh sng ch trong tng
lai!!!!

You might also like