Как очистить последовательные данные в arduino с помощью C#?
Всем привет, сейчас я работаю над C# и Arduino. Я хочу отправить два или более данных из текстовых полей в приложении формы C#. к последовательному монитору. Но мой последовательный порт считывал только первое число, а других чисел не было видно. Я искал некоторые, чтобы очистить первое имя после того, как последовательный порт прочитал. Но я не нашел ничего подходящего для своей цели. Мой код c# :
private void btnSend_Click(object sender, EventArgs e) { if (serialPort1.IsOpen) { int MyInt = Convert.ToInt32(textBox1.Text); byte[] b = BitConverter.GetBytes(MyInt); serialPort1.Write(b, 0, 4); if (MyInt == 3) { Form DataSend = new Form(); DataSend.BackColor = Color.Empty; DataSend.Text = "DATA SEND"; DataSend.Show(); // ya da ShowDialog(); DataSend.Cursor = Cursors.Hand; DataSend.StartPosition = FormStartPosition.CenterScreen; Button btn = new Button(); btn.Text = "Send Again"; btn.Name = "btnSendAgain"; btn.Location = new Point(100,50); btn.Click += btn_Click; TextBox txbox = new TextBox(); txbox.Text = ""; txbox.Name = "txtNumber2"; txbox.Location = new Point(100,20); DataSend.Controls.Add(btn); DataSend.Controls.Add(txbox); } } else { MessageBox.Show("Please check your connction maybe serial port is not connected"); } } void btn_Click(object sender, EventArgs e) { int MyInt = Convert.ToInt32(textBox1.Text); byte[] b = BitConverter.GetBytes(MyInt); serialPort1.Write(b, 0, 4); }
Мой код arduino:
<pre>int led = 12; int num1; int data[4]; void setup() { Serial.begin(9600); pinMode(led, OUTPUT); } void loop() { if (Serial.available()) { num1 = Serial.read(); for (int i = 0; i < 2; i++) { data[i] = num1; } switch (num1) { case 1: openCloseThree(); break; case 2: openCloseTwice(); break; case 3: openCloseIwanted(); break; default: break; } } } void openClose() { for (int i = 0; i < 1; i++) { delay(500); digitalWrite(led, HIGH); delay(500); digitalWrite(led, LOW); } } void openCloseTwice() { for (int i = 0; i < 2; i++) { delay(500); digitalWrite(led, HIGH); delay(500); digitalWrite(led, LOW); } } void openCloseThree() { for (int i = 0; i < 3; i++) { delay(500); digitalWrite(led, HIGH); delay(500); digitalWrite(led, LOW); } } void openCloseIwanted() { for (int i = 0; i < num1; i++) { delay(500); digitalWrite(led, HIGH); delay(500); digitalWrite(led, LOW); } }
Что я уже пробовал:
На самом деле я хочу этого: когда я отправляю 3 с помощью C#, открывается другая форма, и снова я пишу любое число, мой светодиод открыт до последнего числа, которое я пишу.