Arduino Başlangıç Rehberi

0
678

Bu yazımızda arduinoda başlangıç yapmak isteyenler için gerekli olan bilgileri derledik.

Arduino model seçimi

Arduino’nun Uno, Mega, Nano, Lilypad, Promini gibi birçok modeli vardır. Bu modelleri boyut, giriş çıkış sayısı, işlem kapasitesi gibi özellikleri ayırır.

Başlangıç seviyesi için genelde UNO modeli önerilir. Çünkü en çok ve en kolay kullanılan modeldir. Bu yüzden yazımızı UNO modeli için yazacağız. Kodlarda oynama yaparak kodları diğer modellerde de kullanabilirsiniz.

Parça alışverişi

Başlangıç için bize gereken parça listesi
1- Arduino Uno kartı
1

2- Arduinoyu bilgisayara bağlamak için gerekli olan kablo2

3- Jumper Kablolar (Erkek-Erkek yeterlidir ama isterseniz hem EE alıp hem Dişi-Dişi alabilirsiniz)3

4- Çeşitli renklerde Ledlerled
5- RGB led220px-RGB_LED
6- PotansiyometrePotentiometer
7- Fotoselfotosel
8- Buton (birkaç tane alınız)buton
9- LM35 ısı sensörülm35
10- Breadboardbreadboard(Breadboardlarda + ve – çizgi olan delikler yatay olarak harf ve sayı ile verilen pinler ise dikey olarak birbirine bağlıdır ortadaki boşluk ise breadboardı ikiye ayırır yukarısı ile aşağısı arasında bağlantı yoktur)

(İsterseniz bunları ayrı ayrı almak yerine başlangıç seti olarak alabilirsiniz)
1- Arduino’yu bilgisayara bağlamak

Arduinonunuzu bilgisayara yanında gelen kablo ile bağlayın bilgisayarınız gerekli driverleri otomatik kuracak . Arduinonuza kodlarınızı eklemek için gerekli olan yazılımı Buradan indirebilirsiniz.yazılım kurulup açıldıktan sonra karşınıza böyle bir ekran çıkacaktır

1

Sonrasında programa arduinomuzu aşağıdaki resimdeki gibi tanıtmalıyız , bendeki uno modeli olduğundan uno yu seçtim.

2ardu

2-İlk Kodunuzu Arduino’ya Yüklemek

İlk kodumuz arduino dünyasındaki en basit kodlardan biri olan “Blink” blink adından da anlaşılabileceği gibi bir ledi açıp kapıyor , bunu 13. pine güç verip-keserek yapıyor . Halihazırda arduino üzerindeki “L” etiketli pin 13. pine bağlı yani o ledi kapayıp açmış oluyoruz.

ardu3

Resimdeki gibi “Örnekler” menüsünden 01.Basics menüsünün içindeki “Blink” i seçiyoruz.ardu4

Sağa doğru ok olan yükle tuşuna bastıktan sonra arduinomuzda RX ve TX pinleri hızlıca yanıp sönmeye başlayacaktır . RX = Recieve , TX = Transmit anlamına gelmektedir . Eğer bir sorun yok ise L etiketli pin yanıp sönmeye başlayacaktır. Tebrikler ! İlk Kodunuzu arduinonuza eklediniz

Alintidir:Ariadna Zas Rodriguez
Alintidir:Ariadna Zas Rodriguez

 

3-Kodları Tanıyalım

// Bunun gibi çift slash “//” ile yazılan kodlar arduino tarafından görülmez . Çift slash ı kodların anlamlarını yazmak veya kod paylaşırken kodu kullanacak kişiye not düşmek için kullanabilirsiniz

// void setup() {} komutu arduinonun bir kez çalıştırır sonra ise void loop() {} taki komutlara geçer ilgili komutlar {} sembolleri arasına yazılır
void setup() {
pinMode(13, OUTPUT); // pinmode giriş-çıkış pini ayarlamanızı sağlar biz led yakacağımız için 13 üncü pini çıkış yani OUTPUT olarak ayarladık eğer o pinden veri almak isteseydik o pini INPUT olarak ayarlardık
}

// void loop() {} içindeki kodları arduino sürekli çalıştırır

void loop() {
digitalWrite(13, HIGH); // Bu komut arduinoya 13. pine güç vermesini söylüyor
delay(1000); // Burada beklemesini söylüyor buradaki zaman milisaniye olarak yazılır 1000 ms bir saniyedir
digitalWrite(13, LOW); // Buradaki komut 13. pine giden elektriği kesiyor
delay(1000); // Burada tekrar bekliyor
}

4- Devreye buton eklemek

Butonumuzu devreye bu şekilde bağlıyoruz.

butonbaglamak

Direnç bağlamayı unutmayınız.

Bu bağlantıları yaptıktan sonra arduino programını açıp örnekler menüsündeki Digital menüsünün içindeki Button örneğini açınız karşınıza bu kodlar çıkacaktır

/*
Button

Turns on and off a light emitting diode(LED) connected to digital
pin 13, when pressing a pushbutton attached to pin 2.
The circuit:
* LED attached from pin 13 to ground
* pushbutton attached to pin 2 from +5V
* 10K resistor attached to pin 2 from ground

* Note: on most Arduinos there is already an LED on the board
attached to pin 13.
created 2005
by DojoDave <http://www.0j0.org>
modified 30 Aug 2011
by Tom Igoe

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/Button
*/

// constants won’t change. They’re used here to
// set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin

// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}

void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}

Kodlarımızı üstteki ok tuşuyla arduinomuza yükleyelim.Yüklediyseniz butona basabilirsiniz bastığınızda arduino üzerindeki L etiketli led yanacak , bıraktığınızda ise sönecektir.

Kodları inceleyelim:
const int buttonPin = 2;  // Başında const olan değerler read-only yani kod içerisinde değiştirilemeyen değerlerdir bu değerleri giriş çıkışları bağladığımız pinler yerine kullanırız örneğin bu kodda buton pini 2 olarak belirtilmiş
const int ledPin = 13; //Bu satırdada led pini 13 olarak belirtilmiş
int buttonState = 0;  // Eğer değer sadece int ile yazılmış ise kod içerisinde bu değer değiştirilebilir örneğini aşağıda göreceksiniz
void setup() {
pinMode(ledPin, OUTPUT); // Led pinini çıkış
pinMode(buttonPin, INPUT); // Button pinini ise giriş olarak ayarlıyoruz
}

void loop() {
buttonState = digitalRead(buttonPin); // Burada buttonstate değişken değerine digitalRead ile okuduğumuz button pininin durumunu yazıyoruz
if (buttonState == HIGH) { // Buradaki kod ise eğer buttonState değeri yüksek yani HIGH ise arduinoya led pinine güç vermesini söylüyor
digitalWrite(ledPin, HIGH);
}
else { // Else ise if durumunun geçerli olmadığı zamanlarda (bu kodda butona basılmadığı zaman) uygulanacak işleri söyler
digitalWrite(ledPin, LOW);
}
}

5-Potansiyometreyi arduinoya bağlamak ve ledi potansiyometre ile kontrol etmek

potansiyometre

Ledimizi ve potansiyometremizi resimdeki gibi arduinomuza bağlıyoruz . Ledin uzun ayağı + kısa ayağı – dir bu yüzden ledin uzun ayağını Pwm sinyal verebilen 5. pine diğer ayağını ise GND ( topraklama) hattına veriyoruz.

Kodumuz ise bu şekilde , kodun içinde gerekli açıklamaları görebilirsiniz :

const int led = 5; //Bunu yazmamız sayesinde kodumuzda artık 5 yazmak yerine led yazacağız
const int potansiyometre = A0 ; // Aynı şekilde potansiyometremizi belirttik
int parlaklik = 0; // Parlaklık adında bir değişken oluşturduk aşağıda bu değişkeni potansiyometreden aldığımız veriyi depolamak için kullanacağız

void setup() {
pinMode(led, OUTPUT); // Ledimizi çıkış pini olarak ayarladık
}

void loop() {
int parlaklik = analogRead(potansiyometre); // A0 pinine bağladığımız potansiyometreden aldığımız veriyi parlaklik değişkenine yaziyoruz
parlaklik = map(parlaklik, 0, 1023, 0, 255); // Potansiyometreden aldığımız değer 0 ile 1023 arasında ama bizim bunu pwm sinyali olarak gönderebilmemiz için 0 ile 255 arasında olması gerekiyor map komutu sayesinde 0 – 1023 arasındaki parlaklik değişkenimizi 0 – 255 arasina dönüştürdük
analogWrite(led, parlaklik); // 5. pine bağladığımız ledimize 0 – 255 arasina cevirdiğimiz potansiyometre değerinde pwm sinyali gönderiyoruz
}”

6- Fotosel Kullanımı

fotosel

Fotoselimizi resimdeki gibi arduinomuza bağlıyoruz ,  gördüğünüz gibi fotoselin bağlantı şekli ve kodları potansiyometreye oldukça benziyor ama bu sefer fotoselden aldığımız veriyi hem led yakmak için kullanacak hem de bilgisayarımıza veri olarak göndereceğiz.

Kodlarımız ile bu şekilde, Kodların içinde gerekli açıklamayı görebilirsiniz , önceki kodda öğrendiğimiz kodların açıklamalarını kalabalık yapmasın diye sildim :

const int led = 5;
const int fotosel = A0 ;
int parlaklik = 0;

void setup() {
Serial.begin(9600); // Bu komut ile seri portu aktifleştiriyoruz bu bilgisayarımız ile arduino arasında veri alışverişine izin verecek
pinMode(led, OUTPUT);
}

void loop() {

int parlaklik = analogRead(fotosel);
parlaklik = map(parlaklik, 0, 1023, 0, 255);
analogWrite(led, parlaklik);
Serial.print(“Parlaklik =”); // Seri port ekranimizda gozukecek yazi
Serial.println(parlaklik); // seri port ekranımızda parlaklik adli değişkenimizi gösteriyoruz
delay(100); // Fotosel okunmasında hata olmasın diye 100ms lik gecikme yapıyoruz
}

Bu kodları arduinomuza yükledikten sonra fotoselimizin üzerine parmağımızı bastıralım , gördüğünüz üzere ledimiz kararacaktır , map komutundaki çevrilmek istenen en yüksek ile en düşük değerin yerini değiştirirseniz ( parlaklik = map(parlaklik, 0, 1023, 0, 255); yerine parlaklik = map(parlaklik, 0, 1023, 255, 0);) arduinonuz ortam ne kadar karanlık ise o kadar lede güç verecektir.

Arduino programında sağ üstteki büyüteç simgesine basıp seri port ekranını açıyoruz eğer her şey doğru ise arduino üzerindeki TX(gönderme) ledi sürekli yanıp sönecek ve bilgisayardaki seri port ekranında parlaklık değerleri gözükecektir .seri port

7- LM35 sıcaklık sensörü kullanımı

lm35

Lm35 sensörümüzü resimdeki gibi bağladıktan sonra aşağıdaki kodu arduinomuza yüklüyoruz farkettiyseniz kod fotoselde kullandığımız kod ile aynı

Kod :

const int led = 5;
const int lm35 = A0 ;
int sicaklik = 0;

void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
}

void loop() {

int sicaklik = analogRead(lm35);
sicaklik = map(sicaklik, 0, 1023, 0, 255);
analogWrite(led, sicaklik);
Serial.print(“Sicaklik =”);
Serial.println(sicaklik);
delay(100);
}

Kapanış

Arduinodaki basit kodları öğrendiniz kendinizi dahada geliştirmek isterseniz aşağıdaki linkleri kullanın

Size ilham verebilecek projelerin olduğu sayfa
Bütün kodların ve örnek kullanımlarının listesi
Örnek kodların açıklamalarının ve arduinoya nasıl bağlandığının bulunduğu sayfa
Kütüphanelerin örnek kullanımlarının ve kodlarının olduğu sayfa