CSharp com Arduno, comunicação serial.

30/08/2017

0

Preciso receber os valores da porta COM6 (essa porta recebe um valor de um sensor de movimento (PIR) e preciso desse valor no C#). Porem não consigo puxar esse valor de jeito nenhum. O ideial é que pegasse o valor em tempo real mas não consigo nem chamando um metodo.

O que eu tentei fazer:

public partial class Form1 : Form
{

SerialPort con = new SerialPort("COM6", 9600);
delegate void funcaoSerial();

public Form1()
{
InitializeComponent();
con.DataReceived += new SerialDataReceivedEventHandler(con_DataReceived);

}

void con_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
funcaoSerial AddSerial = new funcaoSerial(RecSerial);
Invoke(AddSerial);
}

public void RecSerial()
{
con.Open();
txtCon.Text += con.ReadExisting();
}

-------------------- Tentei criar funções do tipo: ---------------------------------------

public void PIR()
{
SerialPort con = new SerialPort("COM6" , 9600);
con.Open();
a = con.ReadLine();

if (a == "1")
{
picture_test.Image = Image.FromFile(@"F:\\Ygu\\Estudo\\Testes\\TestandoConexao\\Imagens\\green_btn.png");
}
else
{
picture_test.Image = Image.FromFile(@"F:\\Ygu\\Estudo\\Testes\\TestandoConexao\\Imagens\\red_btn.png");
}
con.Close();
}


public Thread PIR3 = new Thread(() =>
{
Form1 test = new Form1();
SerialPort con = new SerialPort("COM6", 9600);
con.Open();
string a = con.ReadLine();

if (a == "1")
{
test.picture_test.Image = Image.FromFile(@"F:\\Ygu\\Estudo\\Testes\\TestandoConexao\\Imagens\\green_btn.png");
}
else
{
test.picture_test.Image = Image.FromFile(@"F:\\Ygu\\Estudo\\Testes\\TestandoConexao\\Imagens\\red_btn.png");
}
con.Close();
});



Nada funcionou.
Ygor Mattos

Ygor Mattos

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar