Opracowałem aplikację, która wysyła dane do Arduino przez port szeregowy, ale nie mogę zrozumieć, jak mogę ją odebrać na Arduino. Wysyłam ciąg przez port szeregowy dla Arduino i Arduino go odbiera, ale to nie działa w moim kodzie (na Arduino, otrzymuję bajt na raz).Jak mogę odbierać dane z komputera na Arduino?
Aktualizacja: to działa;)
Kod w C#, który wysyła dane:
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.
}
}
Kod Arduino:
mam zaktualizować kod
#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 = "";
}
}
}
może lepszym miejscem do zadawania http: //electronics.stackexchange.com/ – vikingosegundo