Arduinodan aldığım iki tane potansiyometre verisini C# formda göstermek için aşağıdaki kodu yazdım ama programı çalıştırıp portla bağlantıyı kurduğumda “Dizin, dizi sınırlarının dışındaydı.” diye bir hata alıyorum sorun nedir bilen varsa yardımcı olabilir mi?
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;
namespace Arduino_Haberleşmesi_1_
{
public partial class Form1 : Form
{
string[] portlar = SerialPort.GetPortNames();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
foreach (string port in portlar)
{
comboBox1.Items.Add(port);
comboBox1.SelectedIndex = 0;
}
comboBox2.SelectedIndex = 1;
label2.Text = "Bağlantı Kapalı";
}
private void timer1_Tick(object sender, EventArgs e)
{
try
{
string sonuc = serialPort1.ReadExisting();
string[] sonuc_liste = sonuc.Split(' ');
label3.Text = sonuc_liste[0];
label4.Text = sonuc_liste[1];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
timer1.Stop();
throw;
}
}
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.ToInt32(comboBox2.Text);
try
{
serialPort1.Open();
label2.Text = "Bağlantı Açık";
}
catch (Exception hata)
{
MessageBox.Show("Hata: " + hata.Message);
throw;
}
}
else
{
label2.Text = "Bağlantı Kuruldu";
}
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
if(serialPort1.IsOpen == true)
{
serialPort1.Close();
label2.Text = "Bağlantı Kapalı";
}
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
timer1.Stop();
if (serialPort1.IsOpen == true)
{
serialPort1.Close();
}
}
}
}