Arduino’da Software Serial Kullanımı

Arduino’da Software Serial Kullanımı

Verici Kart

#define buton 5 // 5 numaralı dijital pine buton ismini verdik
#include <SoftwareSerial.h> // SoftwareSerial kütüphanesini projemize çağırıyoruz.
SoftwareSerial baglanti(9,10); 
//Yazılımsal Rx ve Tx pinlerini 9 ve 10 olacak şekilde ayarladık. 
//ve baglanti adında isimlendirdik. 
int butondurumu; // butonun basılıp basılmadığının durumunu kontrol etmek için int tipinde değişken oluşturduk.
void setup() {
    Serial.begin(9600); // giden verileri Seri monitorde görüntülemek için Serial baslatıyoruz.
    pinMode(buton, INPUT); // buton pinini giriş pini olarak ayarladık
    baglanti.begin(9600); //Bu baglantıyı 9600 baudrate hızında başlatıyoruz
}
void loop() {
butondurumu=digitalRead(buton); //butondan okunan değeri butondurumu adlı değişkene atıyoruz 
Serial.println(butondurumu); // ve bu deperi ekranda yazdırıyoruz
  delay(30);
  if (butondurumu==1)   // bu değer 1 ise yani HIGH ise ((1 yerine HIGH ta yazılabilir))
  {
  baglanti.println('1'); //baglanti yoluna 1 verisini gönder 
  }
  if (butondurumu==0)    // bu değer 0 ise yani HIGH ise ((0 yerine LOW ta yazılabilir))
  {
  baglanti.println('0');  //baglanti yoluna 0 verisini gönder 
  }
}

Alıcı Kart

#define led 3 // 3 numaralı digital pine 'led' ismini verdik
char veri;    // veri adında bir char (karakter) değişkeni oluşturduk.
#include <SoftwareSerial.h> // SoftwareSerial kütüphanesini projemize çağırıyoruz.
SoftwareSerial baglanti(9,10); 
//Yazılımsal Rx ve Tx pinlerini 9 ve 10 olacak şekilde ayarladık. 
//ve baglanti adında isimlendirdik. 
void setup() {
  baglanti.begin(9600); //Bu baglantıyı 9600 baudrate hızında başlatıyoruz
  pinMode(led, OUTPUT); //ledin baglı bulundugu 3 numaralı pini cıkış olarak ayarlıyoruz   
}
void loop() {
 if (baglanti.available()) // baglantı kullanılablir ise aşağıdaki işlemleri yap ?
 {
 veri=baglanti.read(); // baglantımızdan okunan değeri veri adlı değişkene atıyoruz. 
  if (veri=='1') // eğer gelen veri '1' ise 
  {
  digitalWrite(led,HIGH); // ledin değerini HIGH (yüksek) yap yani yak.
  delay(30);
  }
  if (veri=='0') // eğer gelen veri '0' ise 
  {
  digitalWrite(led,LOW); // ledin değerini LOW (düşük) yap yani sondur.
  delay(30);
  }
 }
}
Yorumlar kapalı.

nurullahozkan@outlook.com.tr