ARDUİNO
Arduino Nedir?
Arduino, açık kaynak kodlu bir mikrodenetleyici kartıdır. Ana MCU, Atmel tabanlıdır. (MCU’ya önceden bir mini program – bootloader yüklenmiştir). Kart ile robotik ve elektronik uygulamalarınızı kolayca gerçekleştirebilirsiniz.
Bu kadar popüler olmasının bir kaç nedeni vardır. Bunlar:
- Açık kaynak kodludur. (Devre şemasından, programlama arayüzüne kadar…)
- Program geliştirmek basittir. Gerçekten çok basittir. Aynı kart üzerinden hem programlanır hem test edilebilir.
- Arduino’da kullanılan programlama dili de basittir. Bolca örneği mevcuttur.
- Ve bana göre en önemlisi çok yaygın kullanıcısı mevcuttur. Yani büyük olaslıkla yapmak istediğiniz projelerin benzerleri de önceden yapılmıştır. Diğer proje yapımcılarıyla daha kolay bilgi alışverişinde bulunabilirsiniz.
Arduino Nasıl Kullanılır?
Arduino ya da herhangi bir mikrodenetleyici sistemi kullanmak için ilk olarak düzgün çalışma ortamını sağlamanız gerekir. Arduino grubu mikrodenetleyiciler için gerekenler:
- Arduino UNO, PRO Mini, Mega, Leonardo.. gibi bir Arduino kartınız.
- Karta uygun USB kablonuz. USB yazıcı kablosu ya da mikroUSB kablosu gerekecektir.
- Arduino IDE programı (Az sonra uzun uzun değineceğim)
- Ve tabi Arduino ile uyumlu çalışacak nazlanmayacak* bir bilgisayar
*Arduino kartlarının eski modellerinde bilgisayarla uyumlu çalıştırmak biraz zor olabiliyordu. Özellikle Leonardo serisiyle bu sorun ortadan kalktı.
Eksiklerinizi tamamladıktan sonra http://arduino.cc/en/Main/Software linkinden Arduino’nun son versiyon programını indirebilirsiniz. Sorun şu ki sitede yer alan program bazı bilgisayarlarda son derece yavaş çalışıyor, uyumsuzluklar yaratabiliyordu. Hataları giderilmiş programa http://arduino.cc/forum/index.php/topic,118440.0.html linkinden ulaşabilirsiniz.
Arduino Kurulumu
Bu işlem için Arduino klasörünü sisteminize önceden indirmiş olmanız gerekiyor. Sonrasında kartınızı USB kabloyla bilgisayara bağlayın ve bilgisayarda sürücü dosyalarını manuel olarak seçin. (Arduino’un alt klasörleri içinde Drivers klasöründe sürücü dosyaları bulunmaktadır). Eğer Arduino Enchanced version sürümünü (yukarıdaki forumda yer alan sürüm) indirdiyseniz kurulumda driver dosyalarını otomatik olarak yükleyecektir.
Arduino’nun doğru yüklenip yüklenmediğine bakmak için Aygıt Yöneticisine bakabilirsiniz. Örneğin bilgisayarımda Arduino Uno modelini bağladığımda çıkan bilgi solda yer alıyor.
İlk kez Arduino’yu bilgisayara bağladığımda tanıtmak pek kolay olmadı. Bilgisayarım Arduino’yu bilinmeyen aygıt olarak görüyordu. Eğer bu tür bir sorunla karşılaşırsanız tavsiyem Windows Aygıtlar penceresinde Aygıt üzerine sağ tıklayın, özelliklere gidin sonrasında, Donanım sekmesine ve sonra da özellikler butonuna tıklayıp sürücü güncelleştirmesi yapın. Sorun büyük olasılıkla çözülecektir. Bir diğer önemli nokta da kaliteli USB kablo kullanmanızdır.
Soldaki grafikteki gibi Arduino, COM5 numaralı sanal seri porta bağlı. Arduino IDE programını açtığımda da aynı numarayı okumam gerekiyor.
Arduino IDE Programı
Bu program ile Arduino’ya yükleyeceğimiz yazılımları oluşturuyoruz. Program görüntüsü aşağıda yer almaktadır. Son derece basit bir arayüzü vardır.
Her programın temeli olan Led yakıp söndürme ile başlayalım. (Arduino IDE programı içinde bunun gibi bir çok program da hazırdır) File/ Examples/ Basics seçeneklerinden Blink programını seçiniz. Program yukarıda yer almaktadır. Dijital çıkışlardan 13 numaralı hazır olarak Led’e bağlanmış Pini 1 saniye yüksek (5V) yapıp 1 Saniye düşüğe (0V’a çekecektir). Arduino kartınıza programı yüklemeden önce (Upload) Tools / Board seçeneğinden doğru kartı seçtiğinize emin olunuz.
Karta programın derlenip yüklenmesi için Yatay olan ok tuşuna basınız. Yatay ok’un yanındaki Tick butonu programınızı derler bu şekilde herhangi bir sorun olup olmadığını yüklemeden önce görebilirsiniz. Upload ettikten sonrasında 13 numaralı pinin yanındaki led 1’er saniye aralıklarla yanıp sönmeye başlayacaktır. Delay sürelerini değiştirerek ledin yanma süreleriyle oynayabilirsiniz.
Arduino! Yeni Bir Yol!
Eğer bu aşamaya kadar gelebildiyseniz en zor kısmı başarmışsınız demektir..:) Yazıda da belirttiğim gibi “Arduino Ide” programında bir çok hazır program örneği mevcuttur. Programlarda değişikler yapıp birbirine bağlayarak bir çok projeyi gerçekleştirebilirsiniz. Arduino modelleri, Shieldler, kütüphane kullanımı konularına da bir sonraki yazımlarımda değineceğim.
Arduino ile Led Yakmak
Arduino alamayanlar http://123d.circuits.io/ bu adrese kayıt olarak Arduino projeleri geliştirebilir ve kayıt esnasında ücretsiz sürümünü seçerek kullanabilirler. Program Autodesk firmasına ait ve tamamen web üzerinde çalışma yapılmaktadır. Bu sayede istediğiniz her yerde çalışma fırsatınız bulunmakta.
Bu projemizde led diyotu belli aralıklarda yakma ve söndürme işlemi yapacağız.
Devre Bağlantısı:

int led=10; //Burada ledimizi bağlayacağımız yeri seçerek pine isim veriyoruz.
Ben 10 nolu çıkışı seçtim void setup()//Burada led diye atadıgımız degiskenimizi output yani cikis olarak atiyoruz
{ pinMode(led,OUTPUT); } void loop() //Döngüyü baslatıyoruz. { digitalWrite(led, HIGH); //Bu komut ledi yakar
delay(500); //Bu komutta led 500 ms ye yanık bir şekilde bekliyor. digitalWrite(led, LOW);//Bu komut ledi söndürüyor
delay(500); //Led 500 ms ye sönük olarak beklemede kalıyor. }
yazmanız yeterli olacaktır.iyi çalışmalar.
youtube// arduinomerkezi
Merhaba arkadaşlar. Bugün sizlerle Arduino ile RC522 RFID modülünü kullanacağız.
Gereken malzemeler:
- Arduino UNO
- Breadboard
- RC522 RFID modül ve 2 adet RFID kart/tag
- Erkek-erkek jumper kablo
- LED
- 220 Ω direnç
RFID genel anlamıyla nesnelerin radyo dalgaları kullanılarak tanınması için kullanılan teknolojidir. Günlük hayatımızda toplu taşıma biletlerinde, işyeri ve okul girişlerindeki turnikelerde karşımıza sıklıkla çıkmaktadır. Kablosuz haberleşme teknolojileri ile ilgili daha fazla bilgi edinmek isterseniz, Kablosuz Haberleşme Teknolojileri yazımızı okuyabilirsiniz.
Kullandığımız kartların kendilerine ait UID isimli bir numarası vardır. Bu numara, her kart için farklıdır. Okuyucumuza kartımızı veya anahtarlığımızı yaklaştırdığımızda bu numara okunarak işlem yapılır. Bu uygulamada, öncelikle elimizdeki kartların UID’lerini Arduino’muzun dahili EEPROM’una kaydederek ve daha sonra okuttuğumuz kartın UID’sini, bellekteki UID değerleriyle karşılaştırarak işlem yapacağız. Devre şemamız şu şekilde:
Bu adresten kartımızı çalıştırmamızda gerekli olan kütüphaneyi indirerek Arduino programının kurulu olduğu klasör altındaki librariesklasörüne MFRC522 ismiyle kaydediyoruz.
Öncelikle, elimizdeki kartları Arduino’nun EEPROM’una kaydedecek kodu yüklüyoruz:
#include <SPI.h> #include <MFRC522.h> #include <EEPROM.h> #define RST_PIN 9 #define SS_PIN 10 byte readCard[4]; int successRead; MFRC522 mfrc522(SS_PIN, RST_PIN); MFRC522::MIFARE_Key key; void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); Serial.println("RFID KART KAYIT UYGULAMASI"); Serial.println("--------------------------"); Serial.println("Lutfen 1 numarali karti okutun"); Serial.println(); do { //okuma başarılı olana kadar getID fonksiyonunu çağır successRead = getID(); } while (!successRead); for ( int i = 0; i < mfrc522.uid.size; i++ ) { //kartın UID'sini EEPROM'a kaydet EEPROM.write(i, readCard[i] ); } Serial.println("Kart EEPROM'a kaydedildi."); Serial.println(); Serial.println("Lutfen 2 numarali karti okutun."); Serial.println(); do { successRead = getID(); } while (!successRead); for ( int i = 0; i < mfrc522.uid.size; i++ ) { EEPROM.write(i + 4, readCard[i] ); } Serial.println("Kart EEPROM'a kaydedildi."); Serial.println(); Serial.println("Kart kayit islemi basarili!"); } void loop() { } int getID() { //yeni bir kart okunmadıysa 0 döndür if ( ! mfrc522.PICC_IsNewCardPresent()) { return 0; } if ( ! mfrc522.PICC_ReadCardSerial()) { return 0; } Serial.print("Kart UID'si: "); //kartın UID'sini byte byte oku ve seri monitöre yaz for (int i = 0; i < mfrc522.uid.size; i++) { // readCard[i] = mfrc522.uid.uidByte[i]; Serial.print(readCard[i], HEX); } Serial.println(""); //kart okumayı durdur ve 1 döndür (okuma başarılı) mfrc522.PICC_HaltA(); return 1; }
Bu kodu yükledikten sonra, Arduino programından “Seri Port Ekranı”nı açarak kart okuma işlemini yapıyoruz.
Burada dikkat etmemiz gereken nokta, 1 ve 2 numaralı kartların birbirinden farklı olması. Eğer okuma işlemi sırasında 1 ve 2 numaralı kart olarak aynı kartı seçersek, bir sonraki adımda kullanacağımız kod çalışmayacaktır. Kart okuma işlemi yapıldıktan sonra, aşağıdaki kodu Arduino’muza yükleyerek bir sonraki adıma geçiyoruz:
#include <SPI.h> #include <MFRC522.h> #include <EEPROM.h> #define RST_PIN 9 #define SS_PIN 10 #define ledPin 7 MFRC522 mfrc522(SS_PIN, RST_PIN); String lastRfid = ""; String kart1 = ""; String kart2 = ""; MFRC522::MIFARE_Key key; void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); pinMode(ledPin, OUTPUT); Serial.println("RFID KART OKUMA UYGULAMASI"); Serial.println("--------------------------"); Serial.println(); //EEPROM'dan kart bilgisini oku readEEPROM(); } void loop() { //yeni kart okununmadıkça devam etme if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } if ( ! mfrc522.PICC_ReadCardSerial()) { return; } //kartın UID'sini oku, rfid isimli string'e kaydet String rfid = ""; for (byte i = 0; i < mfrc522.uid.size; i++) { rfid += mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "; rfid += String(mfrc522.uid.uidByte[i], HEX); } //string'in boyutunu ayarla ve tamamını büyük harfe çevir rfid.trim(); rfid.toUpperCase(); if (rfid == lastRfid) return; lastRfid = rfid; Serial.print("Kart 1: "); Serial.println(kart1); Serial.print("Kart 2: "); Serial.println(kart2); Serial.print("Okunan: "); Serial.println(rfid); Serial.println(); //1 nolu kart okunduysa LED'i yak, 2 nolu kart okunduysa LED'i söndür if (rfid == kart1) { digitalWrite(ledPin, HIGH); Serial.println("LED yandi."); } if (rfid == kart2) { digitalWrite(ledPin, LOW); Serial.println("LED sondu."); } Serial.println(); delay(200); } void readEEPROM() { //EEPROM'dan ilk kartın UID'sini oku (ilk 4 byte) for (int i = 0 ; i < 4 ; i++) { kart1 += EEPROM.read(i) < 0x10 ? " 0" : " "; kart1 += String(EEPROM.read(i), HEX); } //EEPROM'dan ikinci kartın UID'sini oku for (int i = 4 ; i < 8 ; i++) { kart2 += EEPROM.read(i) < 0x10 ? " 0" : " "; kart2 += String(EEPROM.read(i), HEX); } //Okunan stringleri düzenle kart1.trim(); kart1.toUpperCase(); kart2.trim(); kart2.toUpperCase(); }
Bu kod sayesinde, 1 numaralı kartımızı okuttuğumuzda Arduino, RC522 modülün okuduğu UID değerini EEPROM’da kayıtlı olan 1 numaralı kart değeriyle karşılaştırıyor, eğer iki değer birbirinin aynısı ise 7 numaralı pine bağladığımız LED’i yakıyor. Arduino’muz, yeni bir kart okumak üzere hazır bekler haldeyken 2 numaralı kartı okutur isek, bu sefer yanmakta olan LED söndürülüyor. Eğer EEPROM’da UID’si kayıtlı olmayan bir kart okutursak LED’in durumunda herhangi bir değişiklik olmuyor.
Sizler de elinizdeki farklı RFID kartlarla deneme yaparak farklı kartları kaydedebilirsiniz. RC522 modül, bu uygulamada karta yazma işlemi yapmadığından, uygulamayı elinizdeki desteklenen tüm kartlarla sorunsuzca kullanabilirsiniz
ARDUİNO MEGA 2560.
Arduino Mega 2560 ATmega2560 mikrodenetleyici içeren bir Arduino kartıdır. Arduino Uno 'dan sonra en çok tercih edilen Arduino kartı olduğu söylenebilir. Arduino 'nun kardeş markası olan Genuino markasını taşıyan Genuino Mega 2560 kartı ile tamamen aynı özelliklere sahiptir. Arduino Mega 2560 'ta 54 tane dijital giriş / çıkış pini vardır. Bunlardan 15 tanesi PWM çıkışı olarak kullanılabilir. Ayrıca 16 adet analog girişi, 4 UART (donanım seri port), bir adet 16 MHz kristal osilatörü, USB bağlantısı, power jakı (2.1mm), ICSP başlığı ve reset butonu bulunmaktadır. Arduino Mega 2560 bir mikrodenetleyiciyi desteklemek için gerekli bileşenlerin hepsini içerir. Arduino Mega 2560 bir bilgisayara bağlanarak, bir adaptör ile ya da pil ile çalıştırılabilir. Arduino Mega, Arduino Duemilanove ya da Diecimila için tasarlanan shield lerin çoğu ile kullanılabilir. Arduino Mega 2560 R2 (revision 2) 8U2 HWB çizgisini toprağa çeken bir dirence sahiptir. Böylece DFU mode kullanmak kolaylaşır. Arduino Mega R3 (revision 3) ise şu ek özelliklere sahiptir; ![]() ![]() ![]() Aşağıdaki resimde Arduino Mega 2560 pinleri gösterilmektedir. ![]() Arduino Mega 2560 Teknik Özellikleri ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Arduino Mega 2560 bir USB kablosu ile bilgisayar bağlanarak çalıştırılabilir ya da harici bir güç kaynağından beslenebilir. Harici güç kaynağı bir AC-DC adaptör ya da bir pil / batarya olabilir. Adaptörün 2.1 mm jaklı ucunun merkezi pozitif olmalıdır ve Arduino Mega 2560 'ın power girişine takılmalıdır. Pil veya bataryanın uçları ise power konnektörünün GND ve Vin pinlerine bağlanmalıdır. Arduino Mega 2560 6 V - 20 V aralığında bir harici güç kaynağı ile beslenebilir. Ancak 7 V altında bir besleme yapıldığında 5V pini 5 V tan daha düşük çıkış verebilir ve kart kararsız çalışabilir. 12 V üzerinde bir voltaj beslemesi yapılması durumunda ise regülatör fazla ısınabilir ve karta zarar verebilir. Bu nedenle tavsiye edilen besleme gerilimi 7 V - 12 V aralığındadır. ![]() ![]() ![]() ![]() ![]() ![]() Arduino Mega 2560 'ta bulunan 54 tane dijital giriş / çıkış pininin tamamı, pinMode(), digitalWrite() ve digitalRead() fonksiyonları ile giriş ya da çıkış olarak kullanılabilir. Bu pinler 5 V ile çalışır. Her pin maksimum 40 mA çekebilir ya da sağlayabilir ve 20-50 KOhm dahili pull - up dirençleri vardır. Ayrıca bazı pinlerin özel fonksiyonları vardır: ![]() ![]() ![]() ![]() ![]() ![]() Arduino Mega 2560 'ın 16 tane analog girişinden her biri 10 bit çözünürlüğü destekler. Varsayılan ayarlarda topraktan 5 V a kadar ölçerler. Ancak, AREF pini ve analogReference() fonksiyonu kullanılarak üst limit ayarlanabilir. ![]() ![]() ![]() Arduino Mega 2560 bir bilgisayar ile, başka bir Arduino ile ya da diğer mikrodenetleyiciler ile haberleşme için çeşitli imkanlar sunar. ATmega2560 mikrodenetleyicisi TTL (5V) seri haberleşme için 4 donanımsal UART'a sahiptir. Kart üzerindeki bir ATmega16U2 seri haberleşmeyi USB üzerinden kanalize eder ve bilgisayardaki yazılıma sanal bir com portu olarak görünür. 16U2 standart USB com sürücülerini kullanır ve harici sürücü gerektirmez. Ancak, Windows 'ta bir .inf dosyası gereklidir. Kart üzerindeki RX ve TX ledleri USB den seri çipe ve USB den bilgisayara veri giderken yanıp söner. SoftwareSerial kütüphanesi Arduino Mega 2560 'ın dijital pinlerinden herhangi biri üzerinden seri haberleşmeye imkan sağlar. Ayrıca ATmega2560 TWI ve SPI haberleşmelerini de destekler. ![]() Arduino Mega 2560 'ı programlamak için Arduino programını buradan indirmeniz gerekir. Programı indirip açtıktan sonra Tools > Board menüsünden Arduino Mega 2560 'ı seçiniz. Arduino Mega 2560 üzerindeki ATmega2560 mikrodenetleyicisine önceden bir bootloader yüklenmiştir. Bu bootloader sayesinde Arduino 'yu programlamanız için harici bir programlayıcı donanımına ihtiyacınız olmaz. Orjinal STK500 programını kullanarak haberleşir. Ayrıca Arduino ISP kullanarak Arduino 'nun bootloader 'ını devre dışı bırakabilir ve mikrodenetleyiciyi ICSP (In Circuit Serial Programming) pini üzerinden programlayabilirsiniz. ![]() Arduino Mega 2560, bilgisayarınızın USB portunu aşırı akım ve kısa devreden koruyan resetlenebilir bir çoklu sigortası bulunur. Çoğu bilgilsayarın portlar için kendi korumaları olmasına rağmen bu sigorta ekstra bir koruma katmanı sağlar. Eğer USB portuna 500 mA den fazla bir yük binerse, sigorta otomatik olarak bağlantıyı kısa devre veya aşırı akım durumu ortadan kalkana dek keser. BU bilgi Robotiksistem.com tarafından alınmıştır. |