Arduino ve C# Arası Veri Transferi (HC-SR04)

By gokhan, 21 Mart 2017

[csharp]
using System.IO.Ports; // Gerekli class

SerialPort serialPort = new SerialPort();
public Form1()
{
InitializeComponent();
serialPort.PortName = "COM3";
serialPort.BaudRate = 9600;
serialPort.Open();
timer1.Start();
label4.Text = "Kapali";
label4.ForeColor = Color.Red;
}
private void timer1_Tick(object sender, EventArgs e)
{
//Arduinodan gonderilen HC-SR04 degeri okunuyor
string cmMesafe = serialPort.ReadLine();
label1.Text = cmMesafe;
}

//Buton Olayi (Arduinoya C# ile Data gönderme)
if (button1.Text == "Aç")
{
serialPort.Write("1");
button1.Text = "Kapat";
label4.Text = "Acik";
label4.ForeColor = Color.Green;
}

else
{
serialPort.Write("0");
button1.Text = "Aç";
label4.Text = "Kapali";
label4.ForeColor = Color.Red;
}
[/csharp]

[csharp]
// Arduinodan C# için çıkış üretme
#define trigPin 12
#define echoPin 11
int microsaniyesure;
int cmmesafe;

void setup()
{
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(13, OUTPUT);
pinMode(3, OUTPUT);
}

void led()
{
if (Serial.available())
{
int a = Serial.read();
if (a == ‘1’)
{
digitalWrite(13, HIGH);
digitalWrite(3, HIGH);
}
if (a == ‘0’)
{
digitalWrite(13, LOW);
digitalWrite(3, LOW);
}
}
}

void loop()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
microsaniyesure = pulseIn(echoPin, HIGH);
cmmesafe = microsaniyesure / 58.3;
Serial.print(cmmesafe);
Serial.println("cm");
led();
delay(250);
}
[/csharp]