C#控制的步进电机
Posted
技术标签:
【中文标题】C#控制的步进电机【英文标题】:Stepper motor controlled by C# 【发布时间】:2014-08-16 18:28:53 【问题描述】:我的步进电机有问题。我编写了 arduino 代码,它在从串行终端或 tera term 发送命令时工作。当我按下“R”时,步进电机连续旋转,当我按下“P”时,电机停止旋转。我的问题是为什么这些命令在从 C# 应用程序发送时不起作用?当我尝试步进电机时,只需转动一步。从串口监视器和 C# 应用程序发送命令有什么区别吗?
void loop()
if (Serial.available() > 0)
int command = Serial.read();
if (command == 'R')
do
stepper.runSpeed();
while (Serial.available() == 0);
Serial.read();
else if (command == 'P')
stepper.stop();
C#代码:
private void button5_Click(object sender, EventArgs e)
serialPort.WriteLine("R");
private void button6_Click(object sender, EventArgs e)
serialPort.WriteLine("P");
【问题讨论】:
查看波特率和端口名称是否选择正确。 我的 c# 应用程序连接良好。我几乎没有其他项目并且工作正常。问题是串行通信以及我如何从 c# 发送命令来连续旋转步进电机 【参考方案1】:SerialPort.WriteLine()
添加"\r\n"
。 \r
将立即终止接收端的 do ... while()
循环。
所以用
private void button5_Click(object sender, EventArgs e)
//serialPort.WriteLine("R");
serialPort.Write("R");
【讨论】:
【参考方案2】:使用命令serial.parseInt();
代替serial.read
并从c# 发送一个字符串。
【讨论】:
以上是关于C#控制的步进电机的主要内容,如果未能解决你的问题,请参考以下文章