30 Kasım 2014 Pazar

HC-SRO4 MesafeSensörü Kontrolü

Arduino İle HC-SRO4 Uzaklık Sensörü Kontrolü

Uzaklık sensörleri genellikle engel algılamak için kullanılırlar. Örneğin; yapacağınız robotun bazı engellere takılmaması için bir uzaklık sensörüne ihtiyaç duyarsınız. En çok bilinen bir diğer uygulama da su seviyesinin ölçümüdür.
hc-sr04-s
HC-SRO4 uzaklık sensörü, engeli algılamak için ultrasonik ses dalgalarını kullanır. Üzerinde bulunan verici ultrasonik ses dalgası yayar. Bu dalga engele çarpıp yine HC-SRO4’ün üzerinde bulunan alıcıya ulaşır. Sinyalin vericiden çıkıp, alıcıya ulaşması için geçen süreye göre engele olan mesafe hesaplanır.
HCSRO4 için hazırlanmış kütaphanenin örnek programını kullanarak, arduino’nun 13, pinine bağladığımız ledin uzaklığa göre parlaklığını kontrol edeceğiz.
Programımızda engel yaklaştıkça ledin parlaklığının artmasını sağlayacağız.

Servo Motor Kontrolü

Arduino İle Servo Motor Kontrolü

Servo motorlar gönderilen belirli sinyallere göre sahip olduğu şaftı belirli dereceler ile döndürebilen motorlardır. Örneğin 0 ile 180 derece arasında dönebilen şaftı 1 derece aralıklara kadar indirerek kontrol edebiliriz.
robot_arm
Servo motorların en çok kullanıldığı alan robot kollardır. Bilek, parmak vb. pozisyonlarını kontrol etmek için servo motor kullanılarak gerekli açı verilir.
Standart servo motorlarda 3 adet bağlantı kablosu vardı.
* Kırmızı Kablo (+)          4-6V
* Kahverengi Kablo(-)       0V
*Turuncu Kablo              Sinyal.

Kızılötesi Alıcı-Kumanda Kontrolü



Arduino İle Kızılötesi Alıcı-Kumanda Kontrolü

Kızılötesi ışınlar insan gözünün algılayabileceği dalga boyu aralığı dışında çalışan elektromanyetik dalgalardır. Kızılötesi ışınların yoğun olarak kullanıldığı 2 alan vardır. Askeri olarak gece görüşünün sağlanması için kullanılırlar. İnsan da vücut sıcaklığından ötürü belirli bir kızılötesi ışın yayar. En yaygın ikinci uygulama ise kısa mesafe haberleşmedir. Uzaktan kumandalar da kızılötesi ışın kullanılır.
Bu yazımızda Kızılötesi kumanda ve VS1838B kızılötesi alıcıyı kullanarak, arduino aracılığı ile iki adet ledin yanıp sönme durumunu kontrol edeceğiz.
IRremote

Arduino ile Kızılötesi Alıcı Kumanda Kontrolü Devresi

IR

Arduino ile Kızılötesi Alıcı Kumanda Kontrolü Akış Diagramı

Arduino_IR_Flowchart

Arduino ile Kızılötesi Alıcı Kumanda Kontrolü Örnek Kodu


Seri Haberleşme

Arduino İle Seri Haberleşme

Mikrodenetleyiciler, diğer mikrodenetleyicilerle, bilgisayar ile ve cihazlar ile iletişim kurabilir. İletişim seri ve paralel olarak 2’ye ayrılır.Paralel iletişimde 8 bitlik veriler 8 kablo aracılığı ile iletilir.Seri iletişimde veriler 2 kablo aracılığı ile ietilir.Doğal olarak paralel iletişim hızlıdır ancak uzun mesafelerde aşırı kablo kullanımına neden olur.O yüzden seri iletişim tercih edilir. Haberleşme ayrıca kablolu ve kablosuz olarak ikiye ayırılır. Kablosuz haberleşmeye örnek olarak, bluetooth, kızılötesi, wifii örnekleri verilebilir. Arduino Uno üzerinde 1 adet seri haberleşme alıcı-verici çifti bulunmaktadır. Arduino unonun 0. pini alıcı-receiver(RX) 1. pini verici-transmitter (TX) olduğunu kartınıza bakarak rahatlıkla görebilirsiniz. Seri haberleşme üzerinden veriler 0 ve 1 dizileri olarak iletilirler, arduino’yu kullanarak seri haberleşme ile 13. pindeki ledi kontrol edeceğiz.

Arduino ile Seri haberleşme Üzerinden Led Kontrolü

Arduino’nun seri haberleşme için hazırlanmış arayüzünü kullanım 1 gönderdiğimizde 13. pindeki led’ini yanmasını diğer tuşlara basıldığında ledin sönmesini sağlayacağız.

Arduino ile Seri haberleşme Üzerinden Led Kontrolü Devresi

Arduino üzerindeki ledi kullanacağımız için herhangi bir bağlantı yapmamıza gerek yoktur. Çıktı olarak ise arduino serial monitörü kullanacağız.

screen

Arduino ile Seri haberleşme Üzerinden Led Kontrolü Akış Diagramı

ser

LCD Sürme

Arduino İle LCD Kontrolü


LCD ( Liquid Crystal Display)  nedir?


LCD’ler dış dünyaya bilgi aktarmak için kullanılan en yaygın devre elemanıdır. Günümüzde neredeyse her alanda kulllanılır. 2×16, 2×20 gibi birçok çeşidi bulunan LCD(Liquid Crystal Display)  Sıvı Kristal Görüntü Birimi olarak tanımlanabilir. Örnekteki 2 satır sayısını, 16 ise satırda bulunabilecek maksimum karakter sayısını gösterir.
Piyasada yaygın olarak kullanılan LCD’ler Hitachi firmasının HD44780  ve buna uyumlu entegreleri içerir.
LCD’lerde pin sayısı değişmekle birlikte en yaygın kullanılanı 16 pinlik olanıdır.2 pini arka aydınlatma için kullanılan bu tip LCD’lerin geri kalan 14 pin’in tanımları aşağıda yapılmıştır.
arduino_lcd_1

LCD her harf 5×8 birimler halinde oluşur. En altta bulunan kısım imlece ayrıldığı için 5×7 olarakta tanımlanabilir.
Bir mikrodenetleyici ile LCD sürmek istesek satırlarca kütüphane kodu yazmamız gerekmekteydi.
Ancak arduino ile bu zahmetten kurtuluyoruz. Arduino için hazırlanmış “LiquidCrystal.h“  kütüphanesini kodumuza ekleyip kütüphane içindeki tanımlı fonksiyonları doğru şekilde kullanarak LCD sürme işlemini birkaç dakika içinde gerçekleştireceğiz.

Analog Kontrol

Arduino ile Analog Input Output Uygulamaları

Elektronik dünyası analog ve dijital olarak iki kısımdan oluşur.Dijital veriler binary sayıların temeli olan 0 ve 1 sayılarının farklı kombinasyonlarından oluşurken, analog verilerin böyle keskin bir farkı yoktur.Dijital verilerde 0 ve 1’in teoride karşılığı 0V ve 5V iken, pratikte 0V ‘a yakın değerler ve 5V’a yakın değerlerden oluşur.Analog verileri ise 0V ve 5V arasında aklınıza gelebilecek bütün değerler olabilirler.(Genelde çoğu entegre işlemlerini 0-5V aralığında yapar, ististai durumlarda bu sınır değerleri değişebilir.)
Yapacağınız projeye göre kullanıcağınız devre elemanları analog veya dijital olabilirler, bunun için hem dijital hem de analog verilerin nasıl kontrol edildiğini bilmeniz gerekmektedir.

Analog Output

Arduinonun bir nevi analog output görevi gören pwm özelliğine sahip bacaklarını kullanacağız.
1
Arduino kartınızın üzerine bakarsanız, bazı pinlerin yanında “~” işareti bulunmaktadır bu pinler pwm özelliğine sahiptir.
PWM Nedir?
PWM (Pulse Width Modulation) ,darbe-sinyal genişliği modulü olarak çevirebiliriz. Mikrodenetleyiciler dış dünyayı genel yapısı itibari ile yaklaşık 0V ve 5V gibi ara seçeneği olmayan gerilim değerleriyle kontrol etmektedir. Bu durum Pic kullanıcısının ara değerlere ulaşamamasına sebep olur. PWM sayesinde istenen ara değerler elde edilebilir. DC motor uygulamalarında da PWM sıkça kullanılır. Örneğin DC motora 0V veya 5V uygulanması durması ya da çalışması içindir. DC motoru 5 farklı hızda kontrol etmek için pwm’i kullanarak 0 ve 5V arasında istediğiniz gerilim değerin ile elde edebilirsiniz.

İlk Program

              İLK PROGRAM (BLİNK)

Şimdi arduino platformunun ilk uygulaması ile başlayalım.İlk uygulamamızı , arduino platformununda besmele niteliğinde  olan blink programını, yapalım. Blink bir ledin belirlenen sürelerle yanıp söndüğü uygulamadır. Şimdi ilk olarak donanım şemamızı inceleyelim ve açıklayalım.

Donanım Şeması


Burada ledimizin anot bacağını arduinomuzun 10 numaralı terminaline , katoy bacağını ise bir dirençle beraber GND ye bağlıyoruz. Daha sonra yazdığımız program vasıtası ile 10 numaralı terminalden 5v luk gerilim verip vermeme durumunu kontrol ederek ledimizin yanık ve ya sönük olmasını sağlayacağız.

Programlama Mantığı



PROGRLAMA MANTIĞI

                   Arduino programları 2 kısımdan oluşur 

  • void setup() -->    Program bu fonksiyonun içine girip komutları bir defa Yürütür ve bu fonksiyondan çıkar.
  • void loop() :-->    Program bu fonksiyonun içine girdikten sonra komutları yürütür ve sona geldiğinde tekrar bu fonksiyonun ilk komutundan itibaren yürütmeye başlar bir nevi sonsuz döngü bloğudur .


Bir terminali bir kere çıkış olarak ayarlamak yeterli olduğu için setup fonksiyonu içine yazılır.

Blink işleminin bir kere değilde sürekli olması için loop fonksiyonu içine yazılır.








Arduino nedir , ne değildir ?

Arduino uno r3



Arduino Nedir?

Arduino; Bir giriş çıkış kartı ve Processing/Wiring dilinin bir uygulamasını içeren geliştirme ortamından, İtalyan elektronik mühendisleri tarafından açık kaynak kodlu geliştirilen ve isteyen herkesin baskı devreleri indirerek kendi devrelerini basabilecekleri dilerlerse şık bir görüntüye sahip hazır basılmış ve bileşenleri yerleştirilmiş halde alabilecekleri, esnek, kolay kullanımlı donanım ve yazılım tabanlı bir fiziksel programlama platformudur.
Arduino tek başına çalışan interaktif nesneler geliştirmek için kullanılabileceği gibi bilgisayar üzerinde çalışan yazılımlara da bağlanabilir. Hazır üretilmiş kartlar satın alınabilir veya kendileri üretmek isteyenler için donanım tasarımı ile ilgili bilgiler mevcuttur.
Arduino geliştirme kartı üzerindeki mikroişlemci (AtmegaXX) Arduino programlama dili (wiring tabanlı) ile programlanır ve bu program Processing tabanlı Arduino Yazılım Geliştirme Ortamı (IDE) yardımı ile karta yüklenir.