Arduino Ultrasonic Sensör - Windows Form Uygulaması

Arduino gömülü sistem kartlarının en yaygın olanlarından birisi ve oldukça kullanışlı.
Başlıkta da belirttiğim üzere hazırladığım uygulamayı bu sayfada paylaşıyor olacağım.
Öncelikle kapsamdan biraz bahsetmek gerekirse;
Arduinoya bağlı bir ultrasonic mesafe ölçerden aldığımız değeri Arduino Bluetooth (HC-05) sensörü ile bilgisayara göndereceğiz. Burada bilgisayara HC-05 i eşleştirmiş olmamız gerekiyor.
Varsayılan olarak eşleşme şifresi 1234 tür. AT komutları ile şifreyi değiştirebilirsiniz.

Eşleştirme yapıldıktan sonra Arduinumuz gönderdiği değeri bilgisayardan okuyabilmek için Bluetooth' a bir COM port atamamız gerekiyor. Sonrasında seri port okur gibi okuyabiliriz.





Arduino kodları;

#include <SoftwareSerial.h>
#define echoPin 7 // Echo Pin
#define trigPin 8 // Trigger Pin
#define LEDPin 13 //  LED
SoftwareSerial mySerial(10, 11); // RX, TX
int maximumRange = 20000; // Max  range
int minimumRange = 0; // Min range
unsigned long duration, last_distance = 0, distance;

void setup() {

  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(LEDPin, OUTPUT);
  while (!Serial) {
    ;
  mySerial.begin(9600);
  }

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
  pinMode(trigPin, OUTPUT);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);
  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);
  distance = duration / 50;
  mySerial.begin(9600);
  if(last_distance==0 || last_distance != distance){
  last_distance = distance;
  mySerial.println(distance);
  }

  delay(50);
}


Windows Form kodları

 public partial class Form1 : Form
    {
        SerialPort sp;
        String sp_port = "COM3";
        int baud = 9600;
        int bit = 8;
        System.Timers.Timer t;
        int timer_interval = 500;
        float cm;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            sp = new SerialPort();
            sp.PortName = sp_port;
            sp.BaudRate = baud;
            sp.DataBits = 8;
            sp.Open();
            sp.DataReceived += sp_DataReceived;
        }

        void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            cm = float.Parse(sp.ReadLine().ToString().Replace("\r",""));
            arcScaleComponent1.Value = cm;
            digitalGauge1.Text = String.Format(cm.ToString(), "{0},00");          
           
        }
    }
Aşağıdaki gibi bir form hazırlamıştım, Devexpress in güzel bileşenleri mevcut.
.Net in bileşenlerini de kullanabilirsiniz.



Yorumlar

Bu blogdaki popüler yayınlar

Java da ses oynatma

LOGO Object ile Login olmak