Thái gửi vào
- 130351 lượt xem
Bài viết sẽ hướng dẫn các bạn cách điều kiểu ARDUINO trên máy tính bằng phần mềm được tạo bằng ngôn ngữ C# trên công cụ hỗ trợ Microsoft Visual Studio. Thay cho cách điều kiển thông thường trên máy tính là dùng Serial Monitor, giờ đây chúng ta có thể thiết kế phần mềm với cái nhìn trực quan chuyên nghiệp hơn phù hợp với những dự án lớn, hay các dự án mang tính tự động hóa điều kiển bằng máy tính
Giới thiệu
Mình trích dẫn Wikipedia
Microsoft Visual Studio
Microsoft Visual Studio là một môi trường phát triển tích hợp (IDE) từ Microsoft. Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web. Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows API, Windows Forms, Windows Presentation Foundation, Windows Store và Microsoft Silverlight. Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý.
C# (đọc là "C thăng" hay "C sharp" ("xi-sáp")) là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường. Microsoft phát triển C# dựa trên C++ và Java. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++,Visual Basic, Delphi và Java.
Nếu như bạn nào vẫn chưa rõ thì có thể tìm hiểu trên Wikipedia nha !
Chuẩn bị
Phần cứng tương tự như những dự án bật tắt led bình thường
- Arduino UNO
- 1x led
- 1x điện trở 1k
- Phần mềm Microsoft Visual C#
Code
Code cho Visual C#
// Code điều khiển by Đỗ Hữu Toàn ( bạn của Đinh Hồng Thái ) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; // Phần trên là phần khởi tạo mặc định bạn không cần quan tâm using System.IO.Ports; // Thêm dòng Code này để dùng lệnh với Serial.Port namespace Dieukhien { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) // Khi phần mềm được mở { comboBox1.DataSource = SerialPort.GetPortNames();//Quét các cổng Serial đang hoạt động lên ComboBox1 } private void button1_Click(object sender, EventArgs e)// { if (!serialPort1.IsOpen) // Nếu đối tượng serialPort1 chưa được mở , sau khi nhấn button 1 thỳ… { serialPort1.PortName = comboBox1.Text;//cổng serialPort1 = ComboBox mà bạn đang chọn serialPort1.Open();// Mở cổng serialPort1 } private void button4_Click(object sender, EventArgs e)// { serialPort1.Close();//Đóng cổng Serial sau khi button 4 được nhấn } } private void button2_Click(object sender, EventArgs e) { serialPort1.Write("2");//Nếu button2 được nhấn,gửi byte “1” đến cổng serialPort1 } private void button3_Click(object sender, EventArgs e) { serialPort1.Write("1");//gửi byte “0” đến cổng serialPort1 } private void tácGiảToolStripMenuItem1_Click(object sender, EventArgs e) { MessageBox.Show("Phần mềm được viết bởi Ðỗ Hữu Toàn (Bạn của Ðinh Hồng Thái)", "Tác giả");// Nếu MenuTrip tác giả được nhấn thỳ hiện lên hộp thoại } private void thoátToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); // Nếu ấn thoát…Thoát chương trình } private void timer1_Tick(object sender, EventArgs e) { if (!serialPort1.IsOpen) { button1.Text = ("Kết nối"); label3.Text = ("Chưa kết nối"); label3.ForeColor = Color.Red; //Nếu Timer được làm mới, Cổng serialPort1 chưa được mở thì thay đổi Text trong button1, label3…đổi màu text label3 thành màu đỏ } else if (serialPort1.IsOpen) { button1.Text = ("Ngắt kết nối"); label3.Text = ("Ðã kết nối"); label3.ForeColor = Color.Green; //Nếu Timer được làm mới, Cổng serialPort1 đã mở thì thay đổi Text trong button1, label3…đổi màu text label3 thành màu xanh } } } }
Code Arduino
int val; int led = 13; void setup() { pinMode(led, OUTPUT); Serial.begin(9600); } void loop() { while (Serial.available()) { val = Serial.read(); Serial.println(val); delay(200); } if (val == '1') { digitalWrite(led, LOW); } else if (val == '2') { digitalWrite(led, HIGH); } }