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 EdinKategori: ROBOTİK KODLAMA
Arduino ile Trafik Lambası Yapımı
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 EdinArduino ile İvme Ölçümü
İ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 EdinArduino 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 EdinArduino ile DC Motor Kontr
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 EdinArduino ile Servo Motor Kullanımı
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 EdinDahili EEPROM’a Yazma ve Okuma
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 EdinArduino ile LCD Kullanımı
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 EdinArduino ile 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 EdinArduino 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