4 Ekim 2013 Cuma

Arduino UNO R3 ve Klavyeden Girilen Karakterleri ve Sayısal Değerleri Görüntüleme

Hamza Öztaş Share:
Merhaba arkadaşlar bugünkü yazımda Arduino'da yine basit ama bir o kadarda önemli bir konudan "Klavyeden Girilen Karakterleri ve Sayısal Değerleri Görüntüleme" den bahsedeceğim. Bu uygulamada
Arduino'nun serial monitor kısmında bilgisayarımızın klavyesinden girmiş olduğumuz sayısal ifadeler yada harfler yine Arduino'muzun Serial monitor kısmında alt tarafında görüntülenecektir. Aşağıdaki resimde gördüğünüz üzere klavyeden 1 no' lu alana yazı  yazıyoruz. Daha sonra send'e tıklıyoruz, ve hemen alt kısımda da görüntüleniyor. Sağ alt kısımda yer alan baund rate oranına dikkat ediniz kod içerisinde hangi baund rate oranını seçiyor iseniz serial monitor de de aynı değeri seçmeyi unutmayın. Bu işlem için başlıca kullandığımız  komutlar;
  • "Serial.available( )>0" // klavyeden girmiş olduğumuz tüm tuşları okuyabilmemiz için bunu yazmamız gerekmektedir.
  • "serial.read( );" // Klavyeden girmiş olduğumuz tuşu okumak için kullanıyoruz.
           Image Hosted by ImageShack.us

  • Arkadaşlar klavye üzerinde harfler dahil tüm tuşların bir ASCII karşılığı bulunmaktadır. Yapacağımız ve yapmayı planladığımız tüm işlemler bu ASCII kodları  ile yapılır. Sayısal değerleri görüntülemek kısmında bahsedelim şimdi. Klavyemiz deki 1-9 sayılarının ASCII karşılığı sırasıyla;
    • 1-49,
    • 2-50,
    • 3-51,
    • 4-52,
    • 5-53,
    • 6-54,
    • 7-55,
    • 8-56,
    • 9-57

  • Birazdan klavyeden okuduğumuz değerleri saklayacağımız için "intValue" isminde integer tipinde bir değişken tanımladık.
  • Değişkenin integer olması sayısal değerleri saklayacak olması içindir,
    • Eğer klavyeden karakter girişi olsa idi bu değişkenin tipi "char" olacaktı.
  • Serial monitor için seri iletişim hızı 9600 olarak belirledik.
    • Serial monitor de de aynı baund rate değeri seçilmelidir.
  • "Serial.available ( ) > 0" belirttik
  • Klavyeden basılan tuşları "Serial.read ( )" komutu ile okuyup İlk başta tanımladığımız "intValue" isimli integer tipindeki değişkenin içine atıyoruz. Daha sonra bu değeri sorguluyoruz değer 49 ise anlıyoruz ki basılan sayı "1" yada diğer durumlara göre eğer 50 ise bu sayı "2", 51 ise "3"'tür. Aynı şekilde sırasıyla diğer sayıları da sorgulayabilirsiniz. Bu uygulama için klavyemiz deki ilk üç sayı için yapılmıştır.
  • "Serial.print" komutu ile ekrana "Alinan sayisal değer : " yazısını ekrana bastırdık.
  • "Serial.println" komutu ile girilen sayısal değeri bastırdık.
  • Bu uygulamada girilen ilk üç sayı için hemen altında "Alinan sayisal değer : girilen sayı yazacaktır", ilk üç sayı haricindeki diğer sayılar için farklı değerler görüntülenebilir, çünkü kod içerisinde ilk 3 değer den farklı tüm sayılar için herhangi bir şey yapılmamıştır.
  • İsterseniz bu ilk üç değerden farklı tüm sayılar için ekrana herhangi bir yazı yada başka bir sayısal değer bastırabilirsiniz.

Sayısal Değerleri Görüntüleme


Image Hosted by ImageShack.us

Image Hosted by ImageShack.usImage Hosted by ImageShack.us

Image Hosted by ImageShack.usImage Hosted by ImageShack.us

Image Hosted by ImageShack.usImage Hosted by ImageShack.us


Karakterleri Görüntüleme


Karakterleri görüntülemek içinde aynı işlemler kullanılmıştır. Sadece yazılımın başında tanımladığımız değişkenin tipi integer değil "char" olarak belirtilmiştir.

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us



Klavyeden almış olduğumuz bu sayısal değerleri yada karakterleri okuyup burada serial monitor de görüntülemek ne işimize yarayacak diyebilirsiniz arkadaşlar, ama bu önemli bir konu bence, çünkü bu uygulamada klavyeden basılan tuşları okunması uygulamasıdır ve benzer şekilde klavyemiz deki diğer tuşları okuyarak farklı uygulamalar geliştirebilirsiniz. Mesela ne olabilir, Arduino ile bir araba yaptığımızı düşünürsek klavyemizin ileri, geri, sağ ve sol yön tuşlarını kullanarak bu arabayı kontrol edebiliriz.Yine aynı şekilde klavye üzerindeki diğer tüm tuşları ( F tuşları ) gibi bunları kullanarak ta kablolu yada kablosuz olarak bir yapmış olduğunuz araba olur, servo robot kol olur her şeyi klavye üzerinden kontrol edebilirsiniz.






Tarafından Yayınlandı >> Hamza Öztaş

Hamza Öztaş'ı google plus'ta takip etmek için Google'a tıklayın;
Google+.

1
replies
  1. Merhaba Hazma bey, char'lari tek tek yazdiniz burada. Acaba "HAMZA" yazsaydiniz, yani 1 defada 5 tane yanyana char, Arduino bunu char[] olarak mi algilar? Öyle degilse ilk önce serial.available() >0, yani 5>0, sonra kriteri gecince, Serial.read()'e geliyor. Bu read() sadece byte veriyormus, yani, her bir char, ASCII'den cevirilip , 8 bitlik bir koda çeviriliyor. Read() sadece byte verdigine göre, bu islem her harf icin tekrarlanmasi gerek degil mi ? Her bir byte'in sonunda ve basinda start/stop-bit var mi ? Arduino'nun serial datalari nasil algiladigini anlatirsaniz, yardimci olursaniz sevinirim, daha acemiyim de! Iyi çalismalar. Kenan

    YanıtlaSil

Get Updates in your Email
Complete the form below, and we'll send you our best of articles.

İletişim

© >> |
TOP