Professional Documents
Culture Documents
C# (C Sharp) - Nhận Dữ Liệu Từ Arduin
C# (C Sharp) - Nhận Dữ Liệu Từ Arduin
Arduino
Hu Ton gi vo Ch nht, 26 Thng 6, 2016 - 22:40
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!
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.
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.
64.
65.
66.
67.
comboBox1.DataSource = SerialPort.GetPortNames();//
Qut cc cng COM ang hot ng ln comboBox1
68.
69.
comboBox2.SelectedIndex = 3;
70.
71.
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.
80.
81.
82.
83.
if (!serialPort1.IsOpen)
84.
85.
86.
87.
88.
89.
90.
91.
label5.ForeColor = Color.Red;
92.
93.
94.
95.
else if (serialPort1.IsOpen)
96.
97.
98.
99.
100.
101.
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.
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.
144.
145.
146.
147.
148.
149.
150.
151. // Ci di tng t bi ca Thi...to button m v ng Serial
152.
153.
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.
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!!!!