ceku7878
Üye
- Katılım
- 28 May 2020
- Mesajlar
- 47
- Puanları
- 1
- Yaş
- 26
Merhaba
Arduinodan C# a veri göndermek istiyorum. 40,50,60,70 sayılarını 4 farklı labela yazdırmak istiyorum.
Yapmaya çalıştığım kod aşağıda;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
using System.IO;
using Microsoft.Win32;
namespace WindowsFormsApp6
{
public partial class Form1 : Form
{
string[] ports = SerialPort.GetPortNames();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
foreach (string port in ports)
{
comboBox1.Items.Add(port);
comboBox1.SelectedIndex = 0;
}
comboBox2.Items.Add("2400");
comboBox2.Items.Add("4800");
comboBox2.Items.Add("9600");
comboBox2.Items.Add("19200");
comboBox2.Items.Add("115200");
comboBox2.SelectedIndex = 2;
label2.Text = "Bağlantı Kapalı";
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
{
if (serialPort1.IsOpen == true)
{
serialPort1.Close();
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
try
{
//int sonuc = serialPort1.ReadByte();
/* byte[] intBytes = BitConverter.GetBytes(sonuc);
Array.Reverse(intBytes);
byte[] result = intBytes;*/
byte[] buffer = new byte[6];
serialPort1.Read(buffer, 0,6);
label1.Text = buffer[2]+ "";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
timer1.Stop();
}
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
if (serialPort1.IsOpen == false)
{
if (comboBox1.Text == "")
return;
serialPort1.PortName = comboBox1.Text;
serialPort1.BaudRate = Convert.ToInt16(comboBox2.Text);
try
{
serialPort1.Open();
label2.ForeColor = Color.Green;
label2.Text = "Bağlantı Açık";
}
catch (Exception hata)
{
MessageBox.Show("Hata:" + hata.Message);
}
}
else
{
label2.Text = "Bağlantı kurulu !!!";
}
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
if (serialPort1.IsOpen == true)
{
serialPort1.Close();
label2.ForeColor = Color.Red;
label2.Text = "Bağlantı Kapalı";
}
}
private void label1_Click(object sender, EventArgs e)
{
}
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int bytesToRead = serialPort1.BytesToRead;
System.Diagnostics.Debug.WriteLine(bytesToRead);
}
}
}
Arduinodan C# a veri göndermek istiyorum. 40,50,60,70 sayılarını 4 farklı labela yazdırmak istiyorum.
Yapmaya çalıştığım kod aşağıda;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
using System.IO;
using Microsoft.Win32;
namespace WindowsFormsApp6
{
public partial class Form1 : Form
{
string[] ports = SerialPort.GetPortNames();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
foreach (string port in ports)
{
comboBox1.Items.Add(port);
comboBox1.SelectedIndex = 0;
}
comboBox2.Items.Add("2400");
comboBox2.Items.Add("4800");
comboBox2.Items.Add("9600");
comboBox2.Items.Add("19200");
comboBox2.Items.Add("115200");
comboBox2.SelectedIndex = 2;
label2.Text = "Bağlantı Kapalı";
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
{
if (serialPort1.IsOpen == true)
{
serialPort1.Close();
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
try
{
//int sonuc = serialPort1.ReadByte();
/* byte[] intBytes = BitConverter.GetBytes(sonuc);
Array.Reverse(intBytes);
byte[] result = intBytes;*/
byte[] buffer = new byte[6];
serialPort1.Read(buffer, 0,6);
label1.Text = buffer[2]+ "";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
timer1.Stop();
}
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
if (serialPort1.IsOpen == false)
{
if (comboBox1.Text == "")
return;
serialPort1.PortName = comboBox1.Text;
serialPort1.BaudRate = Convert.ToInt16(comboBox2.Text);
try
{
serialPort1.Open();
label2.ForeColor = Color.Green;
label2.Text = "Bağlantı Açık";
}
catch (Exception hata)
{
MessageBox.Show("Hata:" + hata.Message);
}
}
else
{
label2.Text = "Bağlantı kurulu !!!";
}
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
if (serialPort1.IsOpen == true)
{
serialPort1.Close();
label2.ForeColor = Color.Red;
label2.Text = "Bağlantı Kapalı";
}
}
private void label1_Click(object sender, EventArgs e)
{
}
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int bytesToRead = serialPort1.BytesToRead;
System.Diagnostics.Debug.WriteLine(bytesToRead);
}
}
}