|
|
本文通过 USB控制Anduino
C#代码
[pre lang="C" line="1"]
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;
using System.IO.Ports;
using System.Threading;
namespace ArduinoApp
{
public partial class MainForm : Form
{
byte[] buffer = new byte[8];
SerialPort serialPort;
public MainForm()
{
InitializeComponent();
}
private void Send(byte[] buffer, int count)
{
if (serialPort.IsOpen)
{
serialPort.Write(buffer, 0, count);
}
}
private void btnSend_Click(object sender, EventArgs e)
{
int i=int.Parse(txtSend.Text);
if (serialPort.IsOpen)
{
serialPort.Write(buffer, 0, 1);
}
}
private void CallThread()
{
Thread thread = new Thread(new ThreadStart(ReadFun));
thread.IsBackground = true;
thread.Start();
}
private void ReadFun()
{
while (serialPort.IsOpen)
{
string result = serialPort.ReadLine();
this.Invoke(new MethodInvoker(() => {
txtRecive.Text += result + "\r\n";
}));
}
}
private void MainForm_Load(object sender, EventArgs e)
{
serialPort = new SerialPort("COM5", 9600);
serialPort.Open();
if (!serialPort.IsOpen)
{
txtRecive.Text = "无法连接";
return;
}
CallThread();
}
private void btn1_Click(object sender, EventArgs e)
{
buffer[0] = 0x01; //2度
Send(buffer, 1);
}
private void btn2_Click(object sender, EventArgs e)
{
buffer[0] = 0x02; //90度
Send(buffer, 1);
}
private void btn3_Click(object sender, EventArgs e)
{
buffer[0] = 0x03; //179度
Send(buffer, 1);
}
}
}
[/code]
C# DEMO
Anduino代码
- #include <Servo.h>
- Servo myservox; //创建一个水平舵机控制对象
- int posx=0;
- byte b;
- void setup()
- {
- Serial.begin(9600);
- myservox.attach(9); // shuiping 9jiao 0-179
- }
- void loop()
- {
- if(Serial.available()>0)
- {
- b=Serial.read();
- Serial.println(b);
- int r=myservox.read();
-
- if(b==0x01 && r!=2) //判断发送指令0x01 最小2度防止打齿
- {
- myservox.write(2);
- Serial.println("0 Du");
- }
- else if(b==0x02 && r!=90)
- {
- myservox.write(90);
- Serial.println("90 Du");
- }else if(b==0x03 && r!=179) //判断发送指令0x03 最大179度防止打齿
- {
- myservox.write(179);
- Serial.println("179 DU");
- }
- }
- }
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|