Seri Port ile letiim Seri Port ile letiim

  • Slides: 35
Download presentation
Seri Port ile İletişim

Seri Port ile İletişim

Seri Port ile İletişim Portu Açmak için: if (Seri. Portum. Is. Open == false)

Seri Port ile İletişim Portu Açmak için: if (Seri. Portum. Is. Open == false) { Seri. Portum. Open(); } Portu Kapamak için: Seri. Portum. Close(); • string veri = Seri. Portum. Read. Line(); //Seri porttan veri okur. • Seri. Portum. Write. Line(veri); //Seri porta veri yazar.

Seri Port Kontrol Özellikleri • serial. Port. Baud. Rate: Serial. Port sınıfının Baud. Rate

Seri Port Kontrol Özellikleri • serial. Port. Baud. Rate: Serial. Port sınıfının Baud. Rate isimli özelliği bilgisayardan kontrol edeceğiniz sistem ile haberleşme esnasında ki veri iletişimi hızı. Bu özellik sistemden sisteme değişiklik göstermektedir. Baud. Rate için şunu söyleyebiliriz saniye gönderilen bit sayısı, eğer sisteminizle iletişim hızınız 9600 ise bilgisayarın seri portundan saniyede 9600 bit veri gönderip alabilirsiniz demektir. Bu yüzden eğer sisteminiz 19200 ise ve siz bilgisayar programından bu özelliği set etmez iseniz verileri sağlıklı bir şekilde gönderip alamayacaksınız çünkü bu özelliğin default değeri 9600.

 • serial. Port. Is. Open: Serial. Port sınıfının Is. Open isimli özelliği seri

• serial. Port. Is. Open: Serial. Port sınıfının Is. Open isimli özelliği seri portun açık olup olmadığını bool türünden söyleyen bir özellik. Portu kullanmadan önce mutlaka açık olup olmadığını kontrol etmenizde fayda var eğer portu kullandıktan sonra kapatmadan tekrar açmaya çalışırsanız programınız hata verecektir.

 • serial. Port. Name: Serial. Port sınıfının Port. Name isimli özelliği seri portunuzun

• serial. Port. Name: Serial. Port sınıfının Port. Name isimli özelliği seri portunuzun ismini isteyecektir. Eğer bir çevirici kullanmadan direk seri porta bağladıysanız ‘COM 1’, bir çevirici aracılığıyla ismini değişti ise ‘COM 5’, ‘COM 6’ vb. string türünden port isminizi girebilirsiniz.

 • serial. Port. Read. Timeout: Serial. Port sınıfının Read. Timeout isimli özelliği seri

• serial. Port. Read. Timeout: Serial. Port sınıfının Read. Timeout isimli özelliği seri portun cihazdan kaç saniye boyunca cevap beklemesini istiyorsanız onu int türünden mili saniye cinsinden girmeniz gerekiyor. Eğer istediğiniz cihazdan 3 saniye boyunca cevap gelmez ise hata vermesi ise buraya serial. Port. Read. Timeout = 3000 demeniz gerekiyor.

 • serial. Port. Write. Timeout: Serial. Port sınıfının Write. Timeout isimli özelliği ise

• serial. Port. Write. Timeout: Serial. Port sınıfının Write. Timeout isimli özelliği ise seri portunuzun yazma işlemini kaç saniye boyunca sürdürmesini istiyorsanız yine int türünden mili saniye cinsinden bu özelliği set etmeniz gerekmektedir.

Combo. Box’ın içini Port isimleri ile Doldurmak for (int i = 0; i <

Combo. Box’ın içini Port isimleri ile Doldurmak for (int i = 0; i < 30; i++) { serialport. Port. Name = "COM" + i. To. String(); serialport. Open(); com. No_cb. Items. Add(serialport. Port. Name); serialport. Close(); } Veya com. No_cb. Items. Add(Serial. Port. Get. Port. Names());

Seri Port Fonksiyonları • serial. Port. Open(): Serial. Port sınıfının Open isimli fonksiyonu seri

Seri Port Fonksiyonları • serial. Port. Open(): Serial. Port sınıfının Open isimli fonksiyonu seri portunuzu açmanıza yarar. Hemen şunu söylemekte fayda var bu işlemi yapmadan önce bir hata almak istemiyorsanız port adını, baud. Rate’inizi belirtmeyi unutmayın. Eğer port adını belirtmez iseniz veya yanlış yazarsanız hata alacaksınız.

 • serial. Port. Read(byte[] buffer, int offset, int count): Serial. Port sınıfının Read

• serial. Port. Read(byte[] buffer, int offset, int count): Serial. Port sınıfının Read isimli fonksiyonu seri portunuzdan veri okumanızı sağlayan bir fonksiyondur. İlk parametresi byte türünden bir dizi, ikinci parametre dizinin kaçıncı indisinden itibaren veri yerleştireceğini, son parametresine ise kaç byte veri okuyacağınızı söylemeniz gerekiyor. İlk parametre char türünden bir dizide olabilir. Fonksiyonun geri dönüş değeri ise kaç byte okunduysa onu size int türünden söyler.

 • serial. Port. Read. Byte(): Serial. Port sınıfının Read. Byte isimli fonksiyonu seri

• serial. Port. Read. Byte(): Serial. Port sınıfının Read. Byte isimli fonksiyonu seri portdan sadece bir byte okumanızı sağlayan fonksiyon. İsmi Read. Byte olmasına rağmen geri dönüş değeri int türüdür ve size okunan değeri söyler.

 • serial. Port. Read. Existing(): Serial. Port sınıfının Read. Existing isimli fonksiyonu çağrıldığı

• serial. Port. Read. Existing(): Serial. Port sınıfının Read. Existing isimli fonksiyonu çağrıldığı zaman seri portdan okunabilen tüm veriyi size string türünden geri döndürür.

 • serial. Port. Read. Line(): Serial. Port sınıfının Read. Line isimli fonksiyonu seri

• serial. Port. Read. Line(): Serial. Port sınıfının Read. Line isimli fonksiyonu seri portdan New. Line karakteri gelene kadar tanımladığınız Read. Timeout süresince bekler. Gelen veriyi size string türünden geri döndürür.

 • serial. Port. Write(): Serial. Port sınıfının Write isimli fonksiyonunun 3 tipi var

• serial. Port. Write(): Serial. Port sınıfının Write isimli fonksiyonunun 3 tipi var bunlardan biri cihaza göndermek istediğiniz veriyi string türünden göndermenizi sağlıyor; serial. Port. Write("Bu veriyi cihaza yaz"); • İkinci yöntem ise veriyi byte dizisi türünden göndermenizi sağlıyor. byte[] gidecek. Veri = new byte[] {0 x 30, 0 x 31, 0 x 32, 0 x 33, 0 x 34}; serial. Port. Write(gidecek. Veri, 0, gidecek. Veri. Length); Tahmin edeceğiniz gibi ilk parametre byte türünden bir dizi, ikinci parametre ise bu dizinin kaçıncı indisinden itibaren üçüncü parametredeki değer kadar seri portdan veri göndermenizi istiyor. • Birde byte dizisinin yerine char dizisi ile gönderebileceğiniz üçüncü bir tipi bulunuyor.

 • serial. Port. Write. Line(): Serial. Port sınıfının Write isimli fonksiyonu göndermek istediğiniz

• serial. Port. Write. Line(): Serial. Port sınıfının Write isimli fonksiyonu göndermek istediğiniz veriyi string türünden parametre geçerek gönderebilirsiniz. Write fonksiyonundan tek farkı göndermek istediğiniz verinin sonuna ‘n’ karakterini ekliyor olması.

Cümlenin parçlara Ayrılması private void Display. Text(object sender, Event. Args e) { text. Box

Cümlenin parçlara Ayrılması private void Display. Text(object sender, Event. Args e) { text. Box 1. Append. Text(Rx. String); text. Box 1. Append. Text("rn"); string[] an 0 = sensor. Data[0]. Split(': '); text. Box 2. Text = an 0[1]; string[] an 1 = sensor. Data[1]. Split(': '); text. Box 3. Text = an 1[1]; } private void serial. Port 1_Data. Received(object sender, System. IO. Ports. Serial. Data. Received. Event. Args e) { Rx. String = serial. Port 1. Read. Line(); sensor. Data = Rx. String. Split(', '); this. Invoke(new Event. Handler(Display. Text)); }

Seri Porttan Okumak Yazmak

Seri Porttan Okumak Yazmak

C# Seri Port (Okuma Yazma) private void button 1_Click(object sender, namespace seriport 1 {

C# Seri Port (Okuma Yazma) private void button 1_Click(object sender, namespace seriport 1 { public partial class Form 1 : Form { public Form 1() { Initialize. Component(); serial. Port 1. Port. Name = "COM 1"; serial. Port 1. Baud. Rate = 9600; serial. Port 1. Data. Bits = 8; serial. Port 1. Parity = Parity. None; serial. Port 1. Stop. Bits = Stop. Bits. One; } Event. Args e) { if (!serial. Port 1. Is. Open) { serial. Port 1. Open(); //seripport aç. } serial. Port 1. Write("ABC"); //porta yaz } private void button 2_Click(object sender, Event. Args e) { String oku = serial. Port 1. Read. Line()); serial. Port 1. Close(); } private void Form 1_Load(object sender, Event. Args e) { } } }

Arduino Seri Port Karakter Okuma char Data[80]; byte index = 0; if(a. Char ==

Arduino Seri Port Karakter Okuma char Data[80]; byte index = 0; if(a. Char == 'n') { lcd. print(Data); index = 0; void loop() Data[index] = NULL; { } else if(Serial. available() > 0) { { //if(serial. Available()) kullanılabilir Data[index] = a. Char; index++; Data[index] = ''; // Kelime sonu while(Serial. available() > 0) } } { } char a. Char = Serial. read();

Arduino Seri Port Sayı Okuma void loop() { while (Serial. available() == 0); int

Arduino Seri Port Sayı Okuma void loop() { while (Serial. available() == 0); int val = Serial. parse. Int(); //parse. Float Serial. println(val); if (Serial. available()>0) \ portta veri varsa { int x = Serial. parse. Int(); Serial. println(x); } }

void setup() { Serial. begin(9600); } void loop() { char buffer[] = {' ',

void setup() { Serial. begin(9600); } void loop() { char buffer[] = {' ', ' ', ' '}; // 7 bytes kadar alır while (!Serial. available()); // portta karakter bekler Serial. read. Bytes. Until(‘n', buffer, 7); int incoming. Value = atoi(buffer); Serial. println(incoming. Value); }

void setup() { Serial. begin(9600); } unsigned integer. Value=0; // Max value is 65535

void setup() { Serial. begin(9600); } unsigned integer. Value=0; // Max value is 65535 char incoming. Byte; void loop() { if (Serial. available() > 0) { // portu bekle integer. Value = 0; while(1) { // ‘n' gelene kadar dongu incoming. Byte = Serial. read(); if (incoming. Byte == 'n') break; // ‘n’ geldi donguden cık if (incoming. Byte == -1) continue; // buffer boş integer. Value *= 10; // desimal olarak sola 1 kaydır // sayıyı basamağına gore hesapla integer. Value = ((incoming. Byte - 48) + integer. Value); } Serial. println(integer. Value); // yazdır } }

void loop() { //Get Command if (Serial. available() > 0) { Serial. read. Bytes(in,

void loop() { //Get Command if (Serial. available() > 0) { Serial. read. Bytes(in, 10); //10 karakter oku delay(5000); Serial. print( «Okunan: "); Serial. print(in); } }

Strings C# char[] t = new char[5] { 'h', 'e', 'l', 'o' }; string

Strings C# char[] t = new char[5] { 'h', 'e', 'l', 'o' }; string a = new string(5); string b = "hello"; string a = "bike"; string b = "bit"; if (a. Compare. To(b) < 0). . . if (a. Equals(b)). . . if (a == b). . . if (a != b). . . string a = "holly"; string b = "wood"; string c = a + b; int l = c. Length;

Strings Arduino String string. One = "Hello String"; sensor. Value = analog. Read(A 0);

Strings Arduino String string. One = "Hello String"; sensor. Value = analog. Read(A 0); String string. One = "Sensor value: "; String string. Two = string. One + sensor. Value; Serial. println(string. Two); if (string. One ==string. Two)

Arduino Data Diziye İşleme String serial. Data. In; String data[3]; int counter; int inbyte;

Arduino Data Diziye İşleme String serial. Data. In; String data[3]; int counter; int inbyte; void setup(){ Serial. begin(9600); counter = 0; serial. Data. In = String(""); } void loop() { if(serial. available){ inbyte = Serial. read(); if(inbyte >= '0' & inbyte <= '9') serial. Data. In += inbyte; if (inbyte == ', ') { // virgül ayıracı data[counter] = String(serial. Data. In); serial. Data. In = String(""); counter = counter + 1; } if(inbyte == 'n'){ //enter karakteri Serial. print(serial. Dataln); } }

Arduinoda String Parçalara Ayırma int comma. Index = my. String. index. Of(', '); int

Arduinoda String Parçalara Ayırma int comma. Index = my. String. index. Of(', '); int second. Comma. Index = my. String. index. Of(', ', comma. Index+1); String first. Value = my. String. substring(0, comma. Index); //ilk String second. Value = my. String. substring(comma. Index+1, second. Comma. Index); //ikinci String third. Value = my. String. substring(second. Comma. Index+1); //ucuncu, sonuna kadar

Arduino Karakter Katarları void setup() { char str[] = "This is my string"; char

Arduino Karakter Katarları void setup() { char str[] = "This is my string"; char out_str[40]; int num; Serial. begin(9600); Serial. println(str); //yaz num = strlen(str); //boyu Serial. print("Kelime boyu: "); Serial. println(num); num = sizeof(str); //boyu-null dahil Serial. print("Size of the array: "); Serial. println(num); strcpy(out_str, str); //kopyala Serial. println(out_str); strcat(out_str, " sketch. "); //birleştir Serial. println(out_str); num = strlen(out_str); Serial. print("String length is: "); Serial. println(num); num = sizeof(out_str); Serial. print("Size of the array out_str[]: "); Serial. println(num); } void loop() { void setup() { String my_str = "This is my string. "; Serial. begin(9600); Serial. println(my_str); // büyük harf cevir my_str. to. Upper. Case(); Serial. println(my_str); // ustune yaz my_str = "My new string. "; Serial. println(my_str); // yer değiştir my_str. replace("string", "Arduino sketch"); Serial. println(my_str); // boyunu al Serial. print("String length is: "); Serial. println(my_str. length()); }

void setup() { Serial. begin(9600); pin. Mode(13, OUTPUT); pin. Mode(12, OUTPUT); pin. Mode(11, OUTPUT);

void setup() { Serial. begin(9600); pin. Mode(13, OUTPUT); pin. Mode(12, OUTPUT); pin. Mode(11, OUTPUT); pin. Mode(10, OUTPUT); digital. Write(11, LOW); digital. Write(13, LOW); digital. Write(12, LOW); digital. Write(10, LOW); } int led = 1; void loop() { if(Serial. available()) { led=Serial. read(); switch(led) { case 49: // veya case ‘ 1’ digital. Write(13, LOW); digital. Write(12, HIGH); break; case 50: // veya case ‘ 2’ digital. Write(12, LOW); digital. Write(10, HIGH); break; case 51: // veya case ‘ 3’ digital. Write(10, LOW); digital. Write(13, HIGH); } } } Arduino Kodu Led Yaktır namespace seriport 1 { public partial class Form 1 : Form { public Form 1() { Initialize. Component(); } private void serial. Port 1_Data. Received(object sender, System. IO. Ports. Serial. Data. Received. Event. Args e) { } private void Form 1_Load(object sender, Event. Args e) { if (serial. Port 1. Is. Open == false) serial. Port 1. Open(); } private void button 1_Click(object sender, Event. Args e) { button 1. Back. Color = Color. Green; button 2. Back. Color = Color. Gray; button 3. Back. Color = Color. Gray; serial. Port 1. Write. Line("1"); } private void button 2_Click(object sender, Event. Args e) { button 2. Back. Color = Color. Green; button 1. Back. Color = Color. Gray; button 3. Back. Color = Color. Gray; serial. Port 1. Write. Line("2"); } private void button 3_Click(object sender, Event. Args e) { button 3. Back. Color = Color. Green; button 1. Back. Color = Color. Gray; serial. Port 1. Write. Line("3"); } } } C# kodu

Potansiyometre oku int val=0; void setup() { Serial. begin(9600); } void loop() { val

Potansiyometre oku int val=0; void setup() { Serial. begin(9600); } void loop() { val = analog. Read(A 0); Serial. println(val); Serial. write(val); } Arduino Kodu namespace seripotans { public partial class Form 1 : Form { public Form 1() { Initialize. Component(); } private void serial. Port 1_Data. Received(object sender, System. IO. Ports. Serial. Data. Received. Event. Args e) { text. Box 1. Text = serial. Port 1. Read. Existing(); } private void Form 1_Load(object sender, Event. Args e) { if (serial. Port 1. Is. Open == false) serial. Port 1. Open(); } } } C# Kodu

Bluetooth İletişim #include <Software. Serial. h> #define rx. Pin 10 #define tx. Pin 11

Bluetooth İletişim #include <Software. Serial. h> #define rx. Pin 10 #define tx. Pin 11 Software. Serial BTSerial(rx. Pin, tx. Pin); // rx | tx void setup() { Serial. begin(9600); BTSerial. begin(115200); //BTSerial. begin(38400); pin. Mode(5, OUTPUT); pin. Mode(6, OUTPUT); pin. Mode(7, OUTPUT); digital. Write(5, LOW); digital. Write(6, LOW); digital. Write(7, LOW); } int led = 1; void loop() { if(BTSerial. available()) { Serial. println("test 2"); led=BTSerial. read(); switch(led) { case 'F': digital. Write(5, LOW); digital. Write(6, LOW); digital. Write(7, HIGH); Serial. println("pin 12"); break; case 'B': digital. Write(7, LOW); digital. Write(5, LOW); digital. Write(6, HIGH); Serial. println("pin 10"); break; case 'L': digital. Write(6, LOW); digital. Write(7, LOW); digital. Write(5, HIGH); Serial. println("pin 13"); break; case '4': digital. Write(6, LOW); digital. Write(7, LOW); digital. Write(5, LOW); break; } } }

Serial. Port port = new Serial. Port("COM 12"); //other properties are set by default

Serial. Port port = new Serial. Port("COM 12"); //other properties are set by default and are what I need port. Open(); port. Write(send. Msg. Buff, 0, send. Msg. Buff. Length); Thread. Sleep(2000); port. Read(rcv. Msg. Buff, 0, rcv. Msg. Buff. Length);

public Serial. Port sp; string data. Received = string. Empty; private delegate void Set.

public Serial. Port sp; string data. Received = string. Empty; private delegate void Set. Text. Deleg(string text); private void Form. Load() { sp = new Serial. Port("COM 1", 9600, Parity. None, 8, Stop. Bits. One); this. sp. Data. Received += new Serial. Data. Received. Event. Handler(sp_Data. Received); try { Thread. Sleep(500); string x = sp. Read. Line(); // enter okuyacak this. Begin. Invoke(new Set. Text. Deleg(si_Data. Received), new object[] { x }); } catch { } sp. Open(); } private void si_Data. Received(string data) { } data. Received = data. Trim(); void sp_Data. Received(object sender, Serial. Data. Received. Event. Args e) } {