Arduino ile Voltmetre Robot Yapımı

arduino 5v voltmetre ölçümü

Bu projemizde 0 ile 5 volt arasındaki değerleri ölçebilen bir voltmetre tasarlayacağız. Amacımız ADC’yi daha iyi kavramaktır. Bağlantılarımızda sadece iki kablo kullanacağız. İlk kablomuzu Arduino’nun ground ayağına bağlayalım. İkinci kablomuzu A0 ayağına bağlayalım. Yaptığımız voltmetreyi test etmek için test devresi kurabilir ve bunun çeşitli yerlerindeki gerilimleri ölçebilirsiniz. Hemen yazılıma geçelim. ADC örneğimizden farklı olarak bu sefer sayısal değere karşı gelen gerilimi hesaplayıp bilgisayar ekranına yazdıracağız. void setup() {Serial.begin(9600);}void loop() {int sensorDegeri = analogRead(A0);    // A0’daki gerilimin sayısal değerifloat gerilim = (5/1023)*sensorDegeri;   // 5 volt max. 1023 ile ölçülüyordu. Bu…

Okumaya Devam Edin

Arduino ile Trafik Lambası Yapımı

arduino trafik lambasi

Trafik Lambaları İlk uygulamamız olarak basit bir proje ile başlayalım. Bu projede 3 adet(kırmızı,sarı,yeşil) LED kullanacağız. Daha önce de bahsettiğimiz gibi LED’in uzun ayağı arduinoya, kısa ayağı ise toprağa takılmalıdır. 3 LED’i sırası ile Arduino’nun 11, 12 ve 13. pinlerine takalım. Her LED ile Arduino bağlantısının arasına yaklaşık 220 ohm değerinde dirençler takalım. Amaç: Kırmızı ışık 5 saniye boyunca yanacak. Daha sonra sarı ışık yarım saniye ve sonra da yeşil ışık 3 saniye boyunca yanar. Fakat daha sonra sarı ışık bir saniye yanar ve kırmızı ışığa geçilir.   int kirmizi…

Okumaya Devam Edin

Arduino ile İvme Ölçümü

arduino adxl345 ivme ölçer

İvme ölçümü için piyasada en çok kullanılan ADXL345’i kullanacağız. Bu sensör ile 3 eksende açısal ivme ölçülebilir. Sensör I2C ve SPI hattı üzerinden haberleşmektedir. Haydi bağlantılarımızı kuralım: Devremize bağladığımıza göre programlamaya geçebiliriz. Sensörümüzü kullanmadan önce hazır fonksiyonlarının bulunduğu ADXL345 kütüphanesini indirelim. Linkten indirebilirsiniz. http://code.bildr.org/download/959.zip Kütüphaneyi Arduino’nun program dosyaları arasındaki libraries klasörüne dosya halinde atalım. Kütüphane kurulumu tamamladığına göre örnek kodu inceleyelim. #include <Wire.h>#include <ADXL345.h>ADXL345 adxl;   //adxl adında nesne yaratıyoruzvoid setup(){Serial.begin(9600);adxl.powerOn();   // sensörü çalıştırıyoruz}void loop(){int x,y,z;adxl.readAccel(&x, &y, &z);   //sensörden gelen değerleri okuyoruzSerial.print(x);Serial.print(y);Serial.println(z);   // sensör değerlerini ekrana yazdırdık.Delay(10);// sensörler hem yer çekim…

Okumaya Devam Edin

Arduino ile Uzaklık Sensörü

HC-SR04 Mesafe Sensörü ile uygulama yapacağız. Bu sensör piyasada bolca bulunan fakat ülkemizde pahalı olan bir sensördür. Çin’den tanesini 1-2$’a alabilirsiniz. Sensör 2-200 CM arasındaki uzaklıkları ölçmektedir. Fakat 200 CM’e doğru sensör kalitesi bozulmaktadır. Sensör insan kulağının duyamayacağı bir frekansta ses yollar. Ses eğer bir yere çarpar ise geri yansız ve sensörümüze gelir. Sensör bu sesin gidip gelme süresini hesaplar ve böylece cismin uzaklığını bulur. Bu yüzden bu sensöre ultrasonik ses sensörü de denir. Devre şeması için aşağıdaki resme bakabilirsiniz. Resimde de görüldüğü gibi bağlantı şemasıSensör -> ArduinoVCC -> 5…

Okumaya Devam Edin

Arduino ile DC Motor Kontr

arduino dc motor kontrolü

Arduinonun pin çıkışlarını doğrudan motora bağlamamız motor için gerekli akımı sağlamamaktadır. Arduinonun pin çıkışları ancak bir ledi yakacak kadar akım vermektedir. Fakat biz bu akımı tetikleme işlevinde kullanıp DC motorları ileri veya geri yönde çalıştırabiliriz. Bunun için hazır devre kartları vardır. Bunlardan birini alıp kolaylıkla kullanabiliriz. Örnek hazır karta linkten ulaşabilirsiniz. http://www.aliexpress.com/item/Special-promotions-5pcs-lot-L298N-motor-driver-board-module-L298-for-arduino-stepper-motor-smart-car/1827893830.html Bu kartı aldığınızda birazdan anlatacağım şekilde kablo bağlantılarını yapabilir ve motorunuzu kolaylıkla kontrol edebilirsiniz. Fakat tüm devreyi kendiniz yapmak istiyorsanız bu iş biraz uğraştırıcı ve karmaşık olabilir. Fakat sistemin nasıl çalıştığını anlamak için en azından bir kere devrenin…

Okumaya Devam Edin

Arduino ile Servo Motor Kullanımı

arduino servo motor

Yavaş yavaş arduinomuzla dış dünyayı kontrol etmeye başlıyoruz. Arduino ile servo motor sürmek diğer mikrokontrolcülere göre (özellikle PIC’e göre) daha kolaydır. PIC ile haftalarca süren servo motor kontrolü arduino ile dakikalar sürmektedir. Servo Motor: 1 derece hassasiyetle çalışan 0-180 dereceler arasında hareket edebilen bir motor çeşididir. Dediğim gibi sadece 0 ile 180 derece arasında dönmektedir. Yani tam bir tur atamamaktadır. Genellikle robot kollarda kullanılmaktadır. Servonun çeşitleri genellikle taşıyabileceği yüke göre belirlenmektedir. Piyasada genellikle 1.4 kg*cm torkundaki servolar bulunmaktadır. Bu demek oluyor ki motor milinize bağlı 1 CM uzunluğunda bir çubuk…

Okumaya Devam Edin

Dahili EEPROM’a Yazma ve Okuma

arduino-eeprom

Bulduğumuz sonuçları ve değişkenlerimizdeki değerleri enerji kesilse dahi Arduino içerisinde kaydetmek isteyebiliriz. Bunu sağlayabilmemiz için Arduino’nun içerisinde dahili EEPROM Bulunmaktadır. EEPROM programımız ile ilgili değişken değerlerini tutabilen, elektriksel olarak yazılıp silinebilen küçük depolama birimidir. Arduino üzerindeki mikrokontrolcü türüne göre EEPROM kapasitesi değişmektedir. ATmega328’in 1024 byte, ATmega168 ve ATmega8’in 512 byte, ATmega1280 ve ATmega2560’ın ise 4 KB depolama alanı vardır. Bu depolama alanları programımız için gerekli değerlerin depolanması için yeterli olmaktadır. Hadi örnek bir program yazalım #include <EEPROM.h>   // EEPROM kullanımı için kütüphane eklenmesiint yazdirilacakAdres , yazdirilacakDeger;int okunacakAdres, okunanDeger;void setup(){Serial.begin(9600);   //…

Okumaya Devam Edin

Arduino ile LCD Kullanımı

arduino-lcd-ekran

Arduino ile sıklıkla kullanmasam bile LCD kullanımını öğrenmek yararlı olacaktır. Her zaman verilerimizi göstermek için bilgisayar bulamayabiliriz. Bu gibi durumlarda LCD’mizi kullanarak elde ettiğimiz durumları ekrana yazdırabiliriz. Kablo bağlantıları biraz karışık olabilir ve ilk denemenizde hata yapabilir ve LCD’yi düzgün bir şekilde kullanamayabilirsiniz. Bu yüzden devre bağlantılarınızı dikkatli yapın. Devremizi dikkatli bir şekilde kurduysak artık programlamaya geçebiliriz. Bütün karakterler daha önceden bizim için tanımlanmış. Bu karakterlere ulaşmak için öncelikle kütüphanemizi programımıza dahil edeceğiz. Daha sonra başlangıç ayarlarımızı yapacağız ve LCD’mizi kullanmaya başlayacağız. Haydi ekranımıza bir şeyler yazalım. include <LiquidCrystal.h>   //…

Okumaya Devam Edin

Arduino ile Siyah Beyaz Kontrolü

Ardunio siyah beyaz kontrolü

Hemen hemen herkesin aklına ilk gelen uygulama olan çizgi izleyen robotun temel taşını oluşturan siyah beyaz sensörleri inceleyelim. Kitabımızda piyasada bu iş için kullanılan ve rahatlıkla bulabileceğiniz CNY70 sensörünü inceleyeceğiz. Piyasadaki diğer sensörler de aynı mantıkla çalışmaktadır. CNY70 Nasıl Çalışır: Üzerinde kızılötesi ışık yayan ve bu ışığı geri toplayabilen iki LED bulunmaktadır. Kızılötesi LED’den çıkan ışın yüzeye çarpar ve toplayıcı LED’e gelir. LED bu ışığın şiddetini ölçer. Yüzeyin siyah veya beyaz olması yansıyan ışığın şiddetini değiştirir. Bu da bizim ihtiyacımız olan siyah beyaz ayrımını sağlar. Sensörümüz analog olarak çalışmaktadır. Yani…

Okumaya Devam Edin

Arduino ile Analog Veri Okuma

arduino ile analog veri okuma

Gerçek dünyada her şey analog haldedir. Fakat dijital dünyada bu mümkün değildir. Analog verilerin saklanabilmesi ve işlenebilmesi için dijital hale getirilmesi gerekmektedir. Fazla teoriye girmeyi planlamıyorum fakat olayın nasıl olduğunu anlamanız için yandaki resmi paylaştım. Şöyle düşünelim 0 ile 5 volt arasında değişen bir girişimiz var. Bu girişin değerlerini Arduino’ya tanıtmak için ADC (Analog Digital Convert) işlemini kullanacağız. 0 Volta 0 değerini vereceğiz ve 5 Volta da 1023 değerini vereceğiz. Yani 10 bit çözünürlüklü bir ADC kullanacağız. Oran liner olarak devam etmektedir. Yani girişimizdeki 0,004 Voltluk bir değişim dijitalde 1…

Okumaya Devam Edin