我開發了一個通過串口發送Arduino數據的應用程序,但我無法理解如何在Arduino上接收它。我通過Arduino的串行端口發送一個字符串,Arduino接收它,但它在我的代碼中不起作用(在Arduino上,我每次接收一個字節)。如何從PC接收數據到Arduino?
更新:它的工作;)
在C#中的代碼,將數據發送:
using System;
using System.Windows.Forms;
using System.Threading;
using System.IO;
using System.IO.Ports;
pulic class senddata() {
private void Form1_Load(object sender, System.EventArgs e)
{
//Define a serial port.
serialPort1.PortName = textBox2.Text;
serialPort1.BaudRate = 9600;
serialPort1.Open();
}
private void button1_Click(object sender, System.EventArgs e)
{
serialPort1.Write("10"); //This is a string. The 1 is a command. 0 is interpeter.
}
}
Arduino的代碼:
我有更新代碼
#include <Servo.h>
Servo servo;
String incomingString;
int pos;
void setup()
{
servo.attach(9);
Serial.begin(9600);
incomingString = "";
}
void loop()
{
if(Serial.available())
{
// Read a byte from the serial buffer.
char incomingByte = (char)Serial.read();
incomingString += incomingByte;
// Checks for null termination of the string.
if (incomingByte == '0') { //When 0 execute the code, the last byte is 0.
if (incomingString == "10") { //The string is 1 and the last byte 0... because incomingString += incomingByte.
servo.write(90);
}
incomingString = "";
}
}
}
也許更好的地方問:http://electronics.stackexchange。com/ – vikingosegundo