Я работаю над проектом на C #.Программа является управляющей программой для Arduino.Я написал некоторый код для записи в серию arduino и запрограммировал arduino ответить стандартным сообщением (подтверждение, если хотите) в этом случае «5».После отправки информации в arduino, arduino отвечает «5», но продолжает посылать «5».
Любая идея, почему это происходит?
настройка порта:
private void Ports_SelectedIndexChanged(object sender, EventArgs e)
{
_serialPort.PortName = ArrayComPortsNames[Ports.SelectedIndex];//Set your board COM
_serialPort.BaudRate = (int)Baudrate.Items[Baudrate.SelectedIndex];
_serialPort.Parity = Parity.None;
_serialPort.DataBits = 8;
_serialPort.StopBits = StopBits.One;
if (!_serialPort.IsOpen)
_serialPort.Open();
_serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_serialPort);
}
private void sp_serialPort(object sender, SerialDataReceivedEventArgs e)
{
//Write the serial port data to the console.
Console.Write(_serialPort.ReadLine());
}
C # код:
private void buttonKeyboard_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyData)
{
case Keys.Z:
PortWrite("z");
break;
case Keys.Q:
PortWrite("q");
break;
case Keys.S:
PortWrite("s");
break;
case Keys.D:
PortWrite("d");
break;
}
}
private void PortWrite(string message)
{
_serialPort.WriteLine(message);
}
код Arduino:
void setup() {
Serial.begin(9600);
}
void loop() {
if(Serial.available()){
//Serial.println(Serial.read());
Serial.println("5");
}
delay(100);
}