He desarrollado un cliente de aplicaciones que envía una cadena / comando por socket para otro servidor de aplicaciones para PC y el servidor de aplicaciones envía una cadena para el arduino a través del puerto serie.
El problema es: ¿cómo puedo enviar bytes para arduino?
Lo siento mi mal inglés
Actualización: El código, ¡funciona! ;)
Vea la explicación en el código.
El código de mi servidor de aplicaciones C # que envía una cadena a través del puerto serie:
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 Porta Serial
serialPort1.PortName = textBox2.Text;
serialPort1.BaudRate = 9600;
serialPort1.Open();
}
private void button1_Click(object sender, System.EventArgs e)
{
int cmd = 1;
byte[] b = BitConverter.GetBytes(cmd);
serialPort1.Write(b, 0, 4);
}
}
El código C del arduino:
#include <Servo.h>
Servo servo;
void setup()
{
servo.attach(9);
Serial.begin(9600);
servo.write(0);
}
void loop()
{
if(Serial.available())
{
int cmd = Serial.read();
if (cmd> 0) {
servo.write(cmd);
}
}
}
Para que entiendas mejor mi problema, puse este código. Porque el valor del servo va de 0 a 180, y de esta manera no funciona.