Daha önceki Arduino hakkında hazırladığımız yazımızda “Arduino nedir çeşitleri nelerdir nasıl çalışır” üzerine bilgileri aktarmıştık. Bu hazırladığımız yazımızda ise, hangi proje için hangi Arduino modeli seçimi yapılmalı sorusuna yanıt arayacağız. Bu yazımızın sonunda arduino hakkında hangi modelin seçileceği üzerine yaşanabilecek kafa karışıklıklarını gidermeye çalışacağız.
Arduino Uno
Arduino Uno, ismini en çok duyulan arduino modellerinden biridir. Hem donanım olarak hem de boyut olarak çoğu projede ilk tercih edilen modellerden biri olarak bilinmektedir. 2010 yılında üretimi yapılmaya başlanmış ve kullanıma sunulmuştur. Arduino Uno için temel bir programlama bilgisi yeterli oluyor. Projelerin gelişmesine göre gerekli olan elektronik ve programlama bilgisi seviyesi de işleyiş sürecinde kullanıma göre daha da artış gösterebilir.
Teknik Özellikleri
- Mikrodenetleyici: ATmega328
- Çalışma Gerilimi: 5V
- Giriş Gerilimi (önerilen): 7-12V
- Dijital I/O Pinleri: 14 tane (6 tanesi PWM çıkışı,PWM=Puls Width Modulation) (Analog çıkış olarak kullanılabilen dijital pinlerimiz)
- Analog Giriş Pinleri: 6 tane
- Her I/O için Akım: 40 mA (I=Input(Giriş), O=Output(Çıkış))
- 3.3V Çıkış için Akım: 50 mA
- Flash Hafıza: 32 KB
- SRAM: 2 KB
- EEPROM: 1 KB
- Saat Hızı: 16 MHz
- Uzunluk: 68.6 mm
- Genişlik: 53.4 mm
- Ağırlık: 25 g
Teknik özelliklerine genel bir baktıktan sonra Arduino Uno üzerindeki bir kaç pinden bahsedilmesi de fayda olacaktır:
- Vin: Harici güç kaynağı için kullanılan pin.
- 5V: 5V çıkış gerilimini sağlar.
- GND: Toprak (-) pinleridir.
- 0 (RX) ve 1 (TX): Seri haberleşme için kullanılır. Seri veri alıp (RX), vermek (TX) için kullanılır.
- AREF: Analog girişler için ölçüm referans pini.
- Reset: Bu pin LOW yapılarak veya reset butonunu kullanımı ile Arduino resetlenebilir. Fakat yazılan kodlar silinmez. Bilgisayarın yeniden başlatılması fonksiyonu gibi çalışır.
Arduino Uno ile led yakma projesinden,akıllı ev projelerine kadar birçok proje de gerçekleştirilebilir. Biraz elektronik ve kodlama bilgisi ile yapabileceklerin bir sınırı bulunmuyor.
Arduino modelleri arasında yeni başlayanlar için en uygun model olarak Arduino Uno ön plana çıkıyor. Arduino Uno modeli ile başlangıç düzeyinde kullanımlar ile başarılı proje üretimleri yapılabilir.
Örnek Proje:
Hangi Arduino modeli seçimine yardımcı olabilmesi için bir de örnek proje ile devam edelim.
Arduino ile Servo Motor Kullanımı
Malzeme Listesi:
- Arduino (istenilen herhangi modeli olabilir. Arduino Uno ile deneyim için iyi seçim olacaktır)
- Servo Motor (başlangıç için sg90 modelini kullanmanızı tavsiye ederiz)
- Jumper Kablolar
Öncelikle Servo Motoru şekildeki gibi Arduino’ya bağlanması gerekiyor.
Kullanılması gereken kod ise şu şekilde:
- #include <Servo.h>
- Servo sg90;
- int pos = 0;
- void setup()
- {
- sg90.attach(13);
- }
- void loop()
- {
- for (pos = 0; pos <= 180; pos += 1)
- {
- sg90.write(pos);
- delay(15);
- }
- for (pos = 180; pos >= 0; pos -= 1)
- {
- sg90.write(pos);
- delay(15);
- }
- }
Yazılan bu kod Arduino’ya atılmasının ardından Servo Motoru 0 ile 180 derece arasında gidip gelecektir.
Yazılan bu koda ilk olarak Servo kütüphanesini Arduino’ya dahil ederek başlıyor. Bu kütüphaneyi indirilmesine gerek yok, çünkü Arduino derleyicisi (IDE) kurulumunu yapıldığında hazır olarak yükleniyor.
Başlarken kullanılacak olan Servo Motoruna bir isim verilmesi gerekiyor. Bunun için Servo sg90 yazarak kodu yazarken sg90 adını kullanılacağını Arduino’ya tanıtmış olunur.
Daha sonra pos olarak tanıtılan değişkenin değerini sıfır olarak ayarlaması yapılır.
Void setup kısmında ise Servo Motorun 13. pine bağlandığına dair tanıtım yapılır.
Void loop kısmına geldiğimizde ise ilk for döngüsü içerisinde pos adını verilen, Servo Motorun derecesini belirleyen değişken 180 dereceye gelene kadar her 15 milisaniyede, 1 derece artacağını yazımı eklenir.
Diğer for döngüsünde ise 180 dereceye gelince; her 15 milisaniyede, sıfır dereceye gelene kadar 1 derece azalacağını yazılır.
Kodumuzu Arduino’ya atalır ve Servo Motorunun dönüş kontrol edilir.
Arduino ile Servo Motor Kullanımı ‘nı bu sayede gerçekleşmiş olur.
Arduino Mega 2560
Arduno Uno ile benzer özelliklere sahip olan bu kart daha fazla pine sahip olmasından dolayı daha büyük projelerde tercih için çok uygundur. İşlemci bakımından en gelişmiş ATmega tabanlı Arduinoların başında gösterilmektedir. Bu gelişmiş işlemciyi daha fazla pin sayesinde Uno gibi başlangıç seviye Arduinolar ile yapılamayan üç boyutlu yazıcı gibi birçok projede kullanımı mümkün olmaktadır.
Örnek Proje:
Arduino ile HM-TRLR-DW-433MHZ RF Modülü Kullanımı
Arduino Mega ile çalıştırılabilecek bu uygulamada, HM-TRLR-DW-433MHZ RF modülünü kullanarak verici tarafından basılan buton ile alıcı tarafındaki ledin kontrolünü sağlanacak. Bu RF modülü ile seri data haberleşmesi (uart, rs232, ttl) ile 5KM ve üzerinde mesafelere ulaşmak mümkündür. Şehir içinde 1 KM, açık alanda 6 KM menzilde performans testleri yapılmıştır.
HM-TRLR-D serisi 433/470/868/915 MHz’de çalışan düşük maliyetli, yüksek performansı olan bir alıcı vericidir. LoRa/FSK/GFSK/OOK modülasyon çeşitliliği, çoklu arayüz modu (TTL/RS232/RS485), yüksek çıkış gücü, yüksek hassasiyet, uzun iletim mesafesi ve parametrelerin çoğu komut yöntemleri kullanılarak ayarlanabilir. Otomatik olarak veri alıp göndermeyi kontrol edebilmesi mümkündür. Geniş bir çalışma voltajına ve düşük uyku akımına bulunur. Kullanıcıların UART baud hızını, çıkış gücünü, veri hızını, frekans seçimini, modülasyon modu seçimini gibi benzeri parametreleri ayarlamaları esnektir. Kablosuz veri iletimi alanında yaygın olarak kullanımı yapılabilen kablosuz veri iletim ürünleri tasarlamak için ideal seçimdir. Daha detaylı bilgi için ürün datasheet’ini incelemek faydalı olacaktır. Modül için gerekli Arduino kütüphanesini indirmesi ile başlanır. İndirilmiş olan kütüphanenin Arduino IDE’ye eklemesi yapılır.
Uygulama Alanları:
- Uzaktan kumanda, uzaktan ölçüm
- Erişim kontrolü
- Veri toplama
- Akıllı ev aletleri
- Kablosuz ölçüm cihazı
- Kimlik sistemi
- Bebek izleme sistemi
HM-TRLR-D Serisi Pin Açıklaması:
- STATUS: Bağlı değilken (Lojik 1, output 3.3V )
- CONFIG: Konfigürasyon modu için Lojik 0 (Low), İletişim modu için Lojik 1 (High) ayarlanmalıdır.
- GND: Ground
- 5V: Güç kaynağı, 3.3V-5.5V DC
- RXD: TTL Data receiving
- TXD: TTL Data transmission
- GND: Ground
- A_TX: RS485 A (RS232 TX)
- B_RX: RS485 B (RS232 RX)
- SLEEP: Veri aktarımı için lojik 0 (Low), uyku modu için lijik 1 (High) olarak ayarlanmalıdır.
- RESET: Reset tetikleme girişi, lojik 0 (Low) aktif
Kullanılan Malzemeler:
- 2 x Arduino MEGA
- 2 x HM-TRLR-DW-433MHZ
- 2 x Breadboard
- 1 x Push Buton
- 1 x 5mm Kırmızı Led
- Jumper Kablo
Verici Bağlantı Şeması:
Verici Arduino Kodu:
- #include <HRFMessage.h>
- HRFMessage server(&Serial1);
- #define buton 4
- void setup()
- {
- pinMode(buton, INPUT);
- Serial.begin(9600);
- Serial1.begin(9600);
- }
- void loop()
- {
- uint8_t buf[HRF_MAX_MESSAGE_LEN];
- uint8_t len = sizeof(buf);
- int buton1 = digitalRead(buton);
- if (buton1 == 1)
- {
- if (server.recv((uint8_t*)&buf, &len))
- {
- // Got a message from the client.
- // Send a reply back
- server.send((uint8_t*)”Led Yak\n”, 9);
- Serial.print(“Alinan: “);
- Serial.println((const char*)buf);
- }
- }
- if (buton1 == 0)
- {
- if (server.recv((uint8_t*)&buf, &len))
- {
- // Got a message from the client.
- // Send a reply back
- server.send((uint8_t*)”Led Sondur\n”, 12);
- Serial.print(“Alinan: “);
- Serial.println((const char*)buf);
- }
- }
- delay(10);
- }
Alıcı Bağlantı Şeması:
Alıcı Arduino Kodu:
- #include <HRFMessage.h>
- #define led 4
- HRFMessage client(&Serial1);
- long lastSendTime = 0;
- void setup()
- {
- pinMode(led, OUTPUT);
- Serial.begin(9600);
- Serial1.begin(9600);
- }
- void loop()
- {
- long thisTime = millis();
- if (thisTime > lastSendTime + 1000)
- {
- client.send((uint8_t*)”Robolink\n”, 11);
- lastSendTime = thisTime;
- }
- uint8_t buf[HRF_MAX_MESSAGE_LEN];
- uint8_t len = sizeof(buf);
- if (client.recv((uint8_t*)&buf, &len))
- {
- if(len==9)
- {
- Serial.print(“Alinan: “);
- Serial.println((const char*)buf);
- client.send((uint8_t*)”Led Yandi\n”, 11);
- digitalWrite(led,HIGH);
- }
- if(len==12)
- { Serial.print(“Alinan: “);
- Serial.println((const char*)buf);
- client.send((uint8_t*)”Led Sondu\n”, 11);
- digitalWrite(led,LOW);
- }
- }
- }
Arduino Nano
Arduino Nanoyu projelerde daha az yer kaplaması için tercih edilir. Aynı zamanda breadboard üzerine de uyumluluk sağlar. Ebatları küçük olsada Nano ile yapabilecekler sınırları oldukça geniş. Ayrıca; Arduino Nano üzerinde adaptör(jak) girişi bulunmuyor.
Teknik Özellikleri
- Mikrodenetleyici: Nano V3 ATmega328 (önceki versiyonlarda ATmega168)
- Çalışma gerilimi:5 V
- Giriş Gerilimi (önerilen): 7 – 12 V DC
- Dijital I / O Pinleri: 14 tane (6 tanesi PWM çıkışını destekler)
- Analog Giriş Pinleri: 8 tane
- Flash Hafıza: ATmega328 için 32 KB, ATmega168 için 16 KB (2 KB bootloader için kullanılır)
- SRAM: ATmega328 için 2 KB, ATmega168 için 1 K
- EEPROM: ATmega328 için 1 KB, ATmega168 için 512 byte
- Saat hızı: 16 MHz
- Boyutları: 18 mm x 45 mm
- Ağırlık: 5 g
Arduino Leonardo
Arduino Leonardo ATmega32u4 mikrodenetleyici içeren bir Arduino kart türüdür. Arduino Leonardo ‘nun diğer kartlardan farkı ATmega32u4 mikrodenetleyicinin kendi dahili USB haberleşme özelliğinin bulunmasıdır. Bu nedenle ikinci bir işlemci gerektirmiyor. Arduino ile bağımsız olarak interaktif uygulamalar gerçekleştirebilmek mümkün. Leonardo’nun en heyecan verici özelliği ise bu USB desteği sayesinde bağlandığı bilgisayara bir mouse ya da klavye olarak ya da sanal bir CDC seri / COM portu gibi tanımlanabilmesidir.
Teknik Özellikleri
- Mikrodenetleyici: ATmega32u4
- Çalışma gerilimi: 5 V
- Giriş Gerilimi (önerilen): 7 – 12 V
- Dijital I / O Pinleri: 20 tane
- PWM çıkışları : 7 tane
- Analog Giriş Pinleri: 12 tane
- Her I / O için Akım: 40 mA
- 3.3V Çıkış için Akım: 50 mA
- Flash Hafıza: 32 KB (4 KB bootloader için kullanılır)
- SRAM: 2.5 KB
- EEPROM: 1 KB
- Saat hızı: 16 MHz
Arduino Esplora
Esplora hem görsel hemde donanımsal olarak diğer Arduinolardan daha farklı bir arduino. Üzerinde çeşitli sensörler bulunuyor. Kart üzerindeki sensörler sayesinde başka eklentilere ve fazla elektronik bilgisine ihtiyaç duymadan birçok uygulamayı gerçekleştirilmesi mümkün.
Esplora üzerinde ses ve ışık çıkışı, joystick, slider, sıcaklık sensörü, accelerometer (ivme ölçer), mikrofon ve ışık sensörü girişleri yapısında bulundurur. Aynı zamanda kartın üzerine daha fazla sensör bağlantısı yapılması için 2 adet giriş, 2 adette çıkış soketi ve TFT LCD ekran soketi de bulunuyor. Sahip olduğu mikro USB bağlantı aracılığı ile Leonardo gibi bilgisayara bağlandığında fare veya klavye gibi davranış gösterebilir.
Teknik Özellikleri
- Mikrodenetleyici: ATmega32u4
- Çalışma gerilimi: 5V
- Flash Hafıza: 32 KB (ATmega32u4) 4 KB kadarı bootloader tarafından kullanılmaktadır
- SRAM: 2.5 KB (ATmega32u4)
- EEPROM: 1 KB (ATmega32u4)
- Saat hızı: 16 MHz
Arduino Lilypad
Giyilebilir projelerin vazgeçilmez tercihi Lilypad Arduino kartı. Lilypad elbiseler ve kumaş üzerine dikilebilecek şekilde tasarı bulunur. Böylelikle giyilebilir şekilde tasarlanan ilginç projelerde kullanılabiliyor. İnce bir tasarıma sahip olması istendiği için üzerinde bir usb
portu bulunmamaktadır. FTDI kartı ile program yüklemesi yapılabilir. Lilypad kartının bağlantı
noktaları iletkendir ve iletken iplikle dikimi ile bağlantı yapılabilir.
Teknik Özellikleri
- Toplam pin sayısı:22 pin
- Dijital I / O Pinleri: 20 tane
- Analog Giriş Pinleri: 6 tane
- Pwm Pin: 6 tane
- Besleme voltajı: 2.7-5.5 Volt
- Boyutlar: 50mm çap
- Baskı devre kalınlığı: 0.8mm