ARDUINO PROGRAMLAMA


www.arduino.cc - scratch.mit.edu

Arduino, elektronik ile ilgili olan her insanın kolayca kullanabilmesi için geliştirilmiş açık kaynaklı bir platformudur. Arduino kullanarak çeşitli sensörlerden gelen sinyalleri okuyabilir, ışık yakıp söndürebilir, motor çalıştırabilir; kısacası tüm elektronik uygulamalar yapılabilir..

Elektronik cihazların kontrol merkezi Elektronik Devre şeklinde adlandırılır. Elektronik cihazları insana benzetebiliriz. Bizim nasıl kana ihtiyacımız varsa elektronik devrelerinde elektriğe ihtiyacı vardır. Aynı zamanda insanın veya elektrik devresinin belli bir düşünme sistemine ihtiyacı vardır. 


ARDUINO KARTLARI

Arduino kartlar üzerinde bir adet mikrodenetleyici bulunur. Arduino Atmel firmasına ait mikrodenetleyicileri kullanmaktadır. Aynı şekilde arduinonun üzerinde kendine ait programlayıcısı vardır. Bir USB kablosu ile kolayca Arduino kodlanabilir. 



Arduino kartların;

*Açık kaynak kodludur.
*Pinler kullanıma hazır bir şekilde düzenlenmiştir.
*Dışardan güç sağlayabilmek için 7V-12V girişi vardır.

ARDUINO KARTI ELEMANLARI 

* Usb Giriş: Buradan Arduino’muzu USB aracılığı ile programlayabiliriz.
*  7 – 12 DC Güç Girişi: Arduino kartımıza dışarıdan güç sağlamak için kullanılır.
Arduino bilgisayara bağlı olmadığı zaman buraya 9V pil bağlayarak sistemi çalıştırabiliriz.  



* Mikrodenetleyici: Arduino Uno modeli mikrodenetleyici olarak ATmega328P kullanmaktadır.
*Güç ve yardımcı pinler: Bu pinler sayesinde devremizin güç ihtiyacımızı karşılayabiliriz.  5V ve 3.3V çıkışı alabiliriz. Diğer pinlerde ise topraklama, reset ve voltaj ayarlama özellikleri bulunmaktadır.
* Analog pinler: Analog sensörler bu pinlere takılmaktadır. 
* Genel amaçlı giriş / çıkış pinleri: Bu pinler sayesinde hem dijital sensör okuması  hem de PWM kontolü yapılabilir. 
* Reset butonu: Arduinoyu yeniden başlatmayı sağlar. Hafızasındaki program silinmez ancak programı yeniden başlatır.
* «L» LED-i:  Programı yüklerken sürekli yanıp söner. 13. dijital pine bağlıdır.
*TX ve RX LED’leri: Arduino iletişim kurduğunda yanıp söner. Örneğin Bluetooth cihazı gibi. Arduino veri gönderiyorsa TX (Transmit) LED’i yanıp söner.  Veri alıyorsa RX (Receive) LED’i yanıp söner.

ARDUINO MODELLERİ 

* ARDUINO UNO MODELİ

En Çok tercih edilen Arduino modelidir. Üzerinde ATmega328P mikrodenetleyicisi bulunmaktadır.

- Dijital Giriş / Çıkış Pini: 14
- PWM Pinleri : 6
- Analog Giriş Pinleri: 6

* ARDUINO NANO MODELİ

Kısıtlı yeri olan projeler için idealdir. Rahatlıkla breadboard üzerinde kullanılabilir. Mikrodenetleyicisi ATmega328P ya da ATmega168 olabilir.

- Dijital Giriş / Çıkış Pini: 14- PWM Pinleri : 6 - Analog Giriş Pinleri: 6



* ARDUINO PRO MİNİ MODELİ

Üzerinde USB bağlantısı bulunmaz. Oldukça küçüktür. 
Pro miniyi programlamak için FTDI kartlarını kullanmak gerekir. Kullandığı denetleyici Atmega328’dir.

- Dijital Giriş / Çıkış Pini: 14
- PWM Pinleri : 6
- Analog Giriş Pinleri: 6




*ARDUINO MEGA 2560 MODELİ

Eleman sayısı fazla ve pin sayısı yetmiyorsa ideal bir karttır. ATmega2560 denetleyicisini kullanır.

- Dijital Giriş / Çıkış Pini: 54 - PWM Pinleri : 15 - Analog Giriş Pinleri: 16
 

* ARDUINO LEONARDO MODELİ

Kendi İçinde USB arayüzü bulunduran ATmega32U4 mikrodenetleyicisi bulunur.  Fare, klavye ve benzeri birçok cihaz taklit etme özelliği vardır.

- Dijital Giriş / Çıkış Pini: 20
- PWM Pinleri : 7
- Analog Giriş Pinleri: 12





* ARDUINO LİLYPAD MODELİ

Kumaşlara Dikilmek için, giyilebilir teknolojilerde kullanılmak üzere tasarlanmıştır. ATmega168 denetleyicisini kullanır. Programlamak için mega da olduğu gibi bir FTDI kartı gerekir.

- Dijital Giriş / Çıkış Pini: 14
- PWM Pinleri : 6
- Analog Giriş Pinleri: 16


* ARDUINO IDE VE S4A’NIN İNDİRİLMESİ

Arduino Kartımızı programlamak için Arduino Ide’yi indirmemiz gerekir. S4A Arduino ile çalışan bir programdır.https://www.arduino.cc/en/software sayfasına girerek programı işletim sistemimize göre 
indiriyoruz. Daha sonra exe dosyasından kurulum yaparken tüm seçeneklerin işaretli olduğuna dikkat edelim.

http://s4a.cat/ sayfasına girerek S4A programını downloads kısmına tıklayarak işletim sistemimize göre indirip kuruyoruz. 



İki uygulamayı da yükledikten sonra Arduino IDE’yi açalım. S4A’nın sitesine tekrar girelim ve Installing the Firmware into your Arduino kısmında olan Download our firmware from here ‘a tıklıyoruz. Sonrasında birlikte açı seçerek tamama tıklıyoruz. Karşımıza gelen soruya tamam diyoruz.  Karşımıza gelen sayfadaki bütün kodları kopyalayalım ve Arduino IDE’de ki kodları sildikten sonra Arduino IDE’ye yapıştıralım. ( Ctrl + A ile hepsini seçebilirsiniz. )


Arduinomuzu bilgisayara USB kablo ile bağlayalım ve Araçlar / Kartlar / Arduino UNO’yu işaretliyoruz. Arduino kart ayarımızı yaptıktan sonra port ayarını Araçlar / Port kısmından kontrol edelim. Eğer bağlı olduğumuz COM’u bulamazsak Aygıt Yöneticisine giderek buradan nereye bağlı olduğumuzu öğrenebiliriz. Burada bağlantı noktaları ( Com ve LPT ) seçeneğinin altında Arduinomuzun hangi porta bağlı olduğunu öğrenebiliriz. Eğer bilgisayar Arduinomuzu görmüyorsa driver’ını yüklememiz gerekiyor.

1 – Arduino’yu bilgisayara tak.
2- Karşımıza hata mesajı çıkacaktır.
3- CH340 sürücüsünü indir ve kur.


İnternete yazdığımızda birçok siteden indirebiliriz. https://sparks.gogo.co.nz/ch340.html  
İndirdiğimiz uygulamayı açarak install ‘ a tıklayarak driver kurulumunu tamamlıyoruz.


* BUTON NEDİR?

Butonlar Üzerine bastığımız zaman aletimizin çalışmasını sağlar.Butonları bir kapı gibi düşünmeliyiz. Kapıyı açtığımızda içeri girebiliriz, kapalıyken giremeyiz.

* ELEKTRİK ANAHTARI NEDİR?

Elektrik anahtarları devredeki akımı kesmemizi sağlar. Bu sayede devredeki elektriği istediğimiz gibi kesebiliriz. Elektrik anahtarında ise butonun aksine anahtar açıksa elektrik geçemez kapalıysa geçebilir.

* BUTONA BASTIĞIMIZ ZAMAN ÇALIŞAN LED UYGULAMASI

Butona bastığımızda led yanacak, elimizi çektiğimiz zaman ise led’imiz kapanacak.

Malzemeler:

- 1 Tane Arduino Uno
- 1 Tane Breadboard
- 1 Tane LED
- 2 Tane Direnç (220 Ohm)
- 6 Tane Jumper Kablolar
- 1 Tane Buton

Devre Kurulumu : Breardboardımıza güç sağlamak için Arduino -dan 5V ve GND pinlerini takıyoruz. Led’in anot yani uzun olan bacağını 220 ohm direnç kullanarak 13.pine bağlıyoruz. Butonun bir bacağını 5V’a diğer bacağını ise 2.pine bağlıyoruz. Ardından 2.pini bağladığımız yer ile GND hattını 10K değerinde bir direnç ile birleştiriyoruz. Bu bağladığımız direncin ismi Pull Down’dur.

Not: Pull Down birer direnç değildir, direncin bağlanma şeklidir.




Arduino Kod Kısmı :

const int led=13; //artık 13.pin yerine led yazacağız.
const int buton=2; // artık 2.pin yazmak yerine buton yazacağız.
int butonDurum=0; // butonumuzun değerini almak için bir ifade tanımlıyoruz. 

void setup() {
  // put your setup code here, to run once:
pinMode(led,OUTPUT); //ledimizi çıkış ayarladık.
pinMode(buton,INPUT); //butonumuzu giriş ayarladık.
}

void loop() {
  // put your main code here, to run repeatedly:
butonDurum=digitalRead(buton); //butonun durumunu okuyoruz.
if(butonDurum==HIGH) 
{
  //Eğer buton durumu HIGH yani butona basılırsa ışığı yakıyoruz.
  digitalWrite(led,HIGH); 
}
else
{
  //Basılmadığı zaman led yanmayacak.
  digitalWrite(led,LOW); 
}
}

S4A Kod Kısmı :S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim. Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!

* SENSÖR NEDİR?

Apartmanımıza girdiğimiz zaman otomatik açılan ışıklar acaba nasıl çalışıyor? Mağazanın önüne geldiğimiz zaman kapılar nasıl açılıyor?

Sensörler etrafında oluşan değişiklikleri algılayarak yorumlar ve makineye komut verir. Sensörler ölçtüğü değerleri elektrik sinyallerine çevirirler. 


* SENSÖR ÇEŞİTLERİ

İki Çeşit sensör tipi vardır. Dijital Sensörler: Etrafında oluşan bir değişimi kullanıcıya VAR ya da YOK şeklinde sunan sensörlerdir.  Örneğin elimizi musluğun önüne yaklaştırdığımız zaman suyun akması gibi. 1 var ve 0 yok demektir. Analog Sensörler: Devrede 0V-5V arasındaki tüm değerleri algılayacak şekilde kullanılırlar. Örneğin bir sıcaklık sensörü birçok değer alabilmektedir.


Mekanik Sensörler: Uzunluk, alan, miktar, kuvvet, basınç, hız gibi değişkenler ölçülebilir.



Termal sensörler: Sıcaklık gibi değişkenler termal sensörler sayesinde ölçülür.


Elektriksel Sensörler: Voltaj, akım, direnç, frekans gibi değişkenler ölçülür.
Manyetik Sensörler: Alan yoğunluğu, geçirgenlik gibi değerler ölçülür.

Kimyasal Sensörler: Yoğunlaşma, içerik, reaksiyon hızı, pH miktarı gibi değişkenler ölçülebilir.
* PIR ( HAREKET SENSÖRÜ ) KULLANIMI

- Alarm Sistemleri
- Otomatik Aydınlatma Üniteleri Kızıl ötesi dalgaları kullanırlar.

Algılama alanı: 3-7 metre / Bekleme süresi: 5-200 saniye / Voltajı: DC 5V-12V 
* HAREKET EDİNCE YANAN LED UYGULAMASI

Işığı Kapatınca yanan bir led uygulaması yapacağız.

Malzemeler:

- Arduino Uno
- Tane Breadboard
- LED
- Direnç ( 220 Ohm )
- Tane Jumper Kablolar
- PIR Sensör


OUT çıkışını 2.dijital pine bağlıyoruz. Ledimizin anot bacağını 220 ohm direnç ile 13.pine ve katot bacağını GND’ye bağlıyoruz.

Arduino Kod Kısmı :

#define pir 2
#define led 13

int deger;

void setup() 

{
pinMode(pir,INPUT);  // PIR giriş olarak ayarladık.
pinMode(led,OUTPUT); // LED çıkış olarak ayarladık.
}
void loop() 
{
deger=digitalRead(pir); // Dijital değer okuması

if(deger==1)
{
digitalWrite(led, HIGH); // Okunan değer 1 olunca led yanar.
}
else
{
digitalWrite(led,LOW); // Okunan değer 1 değilse led söner.
} }


S4A Kod Kısmı :

S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim.

Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!

* SICAKLIK SENSÖRLERİ

En çok kullanılan sıcaklık sensörleri:

- RTD
- Termistörler
- Entegre Sıcaklık Sensörleri

RTD: Sıcaklığın artması ile direnç değiştiren elemanlardır. Sıcaklık arttıkça dirençleri azalır. -200 dereceden 850 dereceye kadar ölçüm yapabilirler. Saf metaldendir. Dirençleri ne kadar yüksekse hata payı o kadar az olur.



Termistörler: Sıcağa duyarlıdır. Sıcaklık arttıkça dirençleri artar.  -90 derece ve 130 derece arasında ölçüm yapabilirler. Seramik ve polimer malzemeden yapılırlar. ( Polimer: Bileşik malzeme )


Entergre Sıcaklık Sensörleri:

Direncinin artıp azalması yapıldığı maddeye bağlıdır. Biz LM35 kullanacağız.


LM35 ile Sıcaklık Ölçümü: Sıcaklığı ölçüp analog değer olarak verir. Düşük sıcaklıklar ve düşük hassasiyet için idealdir. Sıcaklık ölçümlerinde, ev otomasyonlarında ve termostatlarda kullanılırlar.

Çalışma voltajı: DC 4V-40V
Ölçüm aralığı: -55 derece / 150 derece
Ölçülen: Celsius ( Santigrat )
Çıkış: 10 mV Hata payı: 2 derece


* SICAKLIKLA YANAN LED UYGULAMASI

Malzemeler:

- Arduino Uno
- Tane Breadboard
- LED
- Direnç ( 220 Ohm )
- Tane Jumper Kablolar
- LM35 Sıcaklık Sensörü
- Buzzer













LM35’in yazıl olan kısmını bize bakacak şekilde yerleştirmeliyiz. Buzzer’ın + bacağını 11.pine – bacağını GND ye bağlamayı unutmayalım.

Arduino Kod Kısmı :

#define LM35 A0 // sensör A0 olarak ayarlandı.
#define buzzer 11 // buzzer 11.pin olarak ayarlandı.
#define led 12 // LED 12.pin olarak ayarlandı.

int sensor; // okunan değerleri depolamak için değişkenler.
float sicaklik;
int milivoltaj;

void setup() 
{
pinMode(buzzer,OUTPUT); //Buzzer çıkış olarak ayarlandı.
pinMode(led, OUTPUT); // LED çıkış olarak ayarlandı.
pinMode(LM35,INPUT); //LM35 giriş olarak ayarlandı.
}

void loop() {
sensor=analogRead(LM35); 
//sensörden okunan değer sensor değişkenine eşitlendi.
milivoltaj=(sensor/1023.0)*5000; //Milivoltaj dönüştürme
sicaklik=milivoltaj/10.0; //Celsius dönüştürme

if(sicaklik<25) // 25 dereceden küçük olduğu zaman
{ digitalWrite(led,HIGH);
  digitalWrite(buzzer,LOW);}
else
{ // 25 dereceden küçük değilse
  digitalWrite(led,LOW);
  digitalWrite(buzzer,HIGH);
}}


S4A Kod Kısmı :

S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim.

Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!


* HC – SR04 İLE MESAFE ÖLÇÜMÜ

Ultrasonik ses dalgalarını kullanan bir sensördür. Yani insanın göremeyeceği ve duyamayacağı ses frekansları ile en yakınındaki cismin mesafesini ölçer. Bu aslında basit bir sonardır. Yarasa ve yunuslar da sonar sistemini kullanan bazı canlılardır.

Sıklıkla kullanıldığı yerler:

- Robotlar
- Sanayi
- Endüstri
- Park sensörleri

Çalışma voltajı: DC +5V
Ölçüm aralığı: 2cm – 400cm
Hassasiyet: 0.3 cm



* MESAFE ÖLÇÜMÜYLE LED UYGULAMASI

Malzemeler:

- Arduino Uno
- Tane Breadboard
- LED Kırmızı ve Sarı
- 2xDirenç ( 220 Ohm )
- Tane Jumper Kablolar
- HC-SC04 Mesafe Sensörü
- Buzzer

Öncelikle breadboardımıza 5V ve toprakhattımıza çekiyoruz. Diğer elemanları taktıktan sonra katotlarını toprak hattına bağlamayı unutmayalım.


Arduino Kod Kısmı :

#define trigpin 10 // trigpini 10.çışık olarak ayarladık.
#define echopin A5 // echopini A5 giriş olarak ayarlandı.
#define led1 11 //1.LED 11.çıkış olarak ayarlandı.
#define led2 12 // 2.LED 12.çıkış olarak ayarlandı.
#define buzzer 13 // Buzzer 13.çıkış olarak ayarlandı.

void setup() 
{pinMode(trigpin,OUTPUT); // trigpin çıkış olacak ayarlandı.
pinMode(echopin, INPUT); // echopin giriş olarak ayarlandı.
pinMode(buzzer,OUTPUT); //Buzzer çıkış olarak ayarlandı.
pinMode(led1, OUTPUT); // LED çıkış olarak ayarlandı.
pinMode(led2, OUTPUT); // LED çıkış olarak ayarlandı.
}
void loop() { 
digitalWrite(trigpin,HIGH); //Trigpininden ses gönderildi.
delayMicroseconds(1000); 
digitalWrite(trigpin,LOW);
int sure=pulseIn(echopin,HIGH); //Kronometre süre tuttu.
int mesafe=(sure/2)/29.1; //Ses 2 kere gidip geldiğinden 2 ye bölündü.
if (mesafe>30) // Eğer mesafe 30cm'den büyük olursa 1.Led yakılır.
{ digitalWrite(led1,HIGH);
  digitalWrite(led2,LOW);
  digitalWrite(buzzer,LOW);}
if(30>mesafe && mesafe>15) // Eğer mesafe 30cm'den küçük ve 15'ten büyük ise 2.Led yakılır.
{ digitalWrite(led1,HIGH);
  digitalWrite(led2,LOW);
  digitalWrite(buzzer,LOW);}
if(mesafe<15) // Eğer mesafe 15cm'den küçük olursa buzzer çalıştırıldı.
{ digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(buzzer,HIGH);}}


S4A Kod Kısmı :

S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim.

Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!


* MOTOR NEDİR?

Elde ettiği enerjiyi mekanik enerjiye çeviren makineye motor diyebiliriz. AC (Alternatif akım) ve DC (Doğrusal akım) olarak iki çeşit motor vardır.

Fırçalı DC Motor: Genellikle oyuncak arabalarda kullanılan motordur.  Manyetik alanın mıknatısları itmesiyle çalışır. 


Fırçasız DC Motor: Hobi uçaklarında veya drone’lar da kullanılırlar. Fırçalı motora göre yüksek performanslıdır.  Mıknatıs motorların milinde bulunur.


Servo Motor: Genellikle robotlarda kullanılan motordur.  180 derece çalışma açısına sahiptir. Kullanımı kolaydır, hassastır, hareketleri kısıtlıdır.



Step motor: 3 boyutlu yazıcılarda kullanılır. Hassas konumları ayarlayabilen motorlardır



!!! Arduinomuz her pinden yaklaşık 40mA çıkış verir. Ancak en küçük motor bile 100mA fazla akım çekmektedir. 

L293D İle Dc Motor Kullanımı: L293D  motorlarımızı sürmeye yarayan küçük bir entegredir.
Çalışma voltajı: DC 4.5V-36V

Standart güç: 600 mA
Zorlamada / zirvede verilen güç: 1.2 A
Kullanım yerleri: Dc motorlar, step motorlar



* L293D MOTOR SÜRÜCÜ UYGULAMASI

Malzemeler:

- Arduino Uno
- Breadboard
- Jumper Kablolar
- DC Motor
- L293D Motor Sürücü

L293D entegresinin üzerindeki küçük bir çentik bulunuyor. Bunu baz olarak devre kulumu yapılmalıdır.


Arduino Kod Kısmı :

/* Serial ekran komutları
 *  Motorun sağa dönmesi için=a
 *  Motorun sola dönmesi için=b
 *  Motorları durdurmak için=c
 */
 #define sag_motor 13 //Motorun sağ bacağı
 #define sol_motor 12 //Motorun sol bacağı
 char gelen; //Gelen veriler depolanıyor.
 
 void setup(){ pinMode(sag_motor,OUTPUT); //motorlar çıkış olarak ayarlanıyor.
 pinMode(sol_motor,OUTPUT); //motorlar çıkış olarak ayarlanıyor.
 Serial.begin(9600); //serial iletişim başlatılıyor.
 }

 void loop()
 { if (Serial.available())
 { gelen=Serial.read(); //Serialden okunan değer gelene eşitleniyor.
 if (gelen=='a') //sağ motor çalıştırılıyor.
 {digitalWrite(sag_motor,HIGH);
  digitalWrite(sol_motor,LOW);
  Serial.println("Sağ motor çalıştırıldı.");}
 if (gelen=='b') //sol motor çalıştırılıyor.
 {digitalWrite(sag_motor,LOW);
  digitalWrite(sol_motor,HIGH);
  Serial.println("Sol motor çalıştırıldı.");}
   if (gelen=='c') //Motorlar durduruluyor.
 {digitalWrite(sag_motor,LOW);
  digitalWrite(sol_motor,LOW);
  Serial.println("Motorlar durduruldu.");}}}



S4A Kod Kısmı :

S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim.

Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!

Bu kodlar Arduino karakteri içinde oluşturulacaktır.

Yeni karakter çizin butonuna tıklayarak 3 buton çizelim. Sağ, sol ve durdurma butonları. Kodları her butonun içine atmak gereklidir.




 

* SERVO MOTOR KULLANIMI

Bir çok farklı servo motor çeşidi vardır. Biz SG90 modelini kullanacağız.

Çalışma Voltajı: DC 4.8V – 6V
Ağırlık: 9 gram
Dişli: Plastik
Boyut: 22mm x 11,5 x 27 mm
Çalışma derecesi: 0 – 55 derece 


* SERVO MOTOR SÜRÜCÜ UYGULAMASI

Malzemeler:

- Arduino Uno
- Servo Motor

Çizimdeki siyah renk bizim servo motorumuzda kahverengine, resimde ki sarı kablo ise servo motorumuzda
ki turuncu kablo yerine geçmektedir.



Arduino Kod Kısmı :

#include <Servo.h> //Servo kütüphanesini programa ekliyoruz.
Servo s_motor; //s_motor isminde servomuzu tanıtıyoruz.

void setup()
s_motor.attach(8); 
// Motorumuzu 8'e taktığımızı söylüyoruz.
}

void loop()

{
  s_motor.write(180); // 180 dereceye motorumuzu götürüyoruz.
  delay(2000);        // 2 saniye bekliyoruz.
  s_motor.write(0);   // 0 dereceye motorumuzu götürüyoruz.
  delay(2000);        // 2 saniye bekliyoruz.
}

* SHIELD NEDİR?

Arduinomuzda Bazı özellikler bulunmaz. Örneğin internete bağlanmak ya da SMS mesaj göndermek gibi. Bu özellikler için shield’ler vardır.Shield’ler bizi devre kurulumundan da kurtarır. Çünkü shieldler Arduino üzerine tam oturmaktadır. Faklı çeşitlikte shieldler vardır. Örneğin bluetooth shieldi, internet shieldi gibi.

 


Motor Shield: Bu shield sayesinde L293D entegremizin bağlantılarıyla uğraşmadan
motorlarımızı çalıştırabiliriz.

L293D MOTOR SHIELD UYGULAMASI



Ethernet Shield: Bu shield sayesinde internete bağlanabiliriz. Ayrıca Arduino için Ethernet modülüde vardır. Ancak modülde devre kurulumu gerekirken shieldde gerekmez. 

Bluetooth Shield: Bluetooth özelliği için kullanılır. En çok bilinen bluetooth modüllerine HC-05 vfe HC06’yı örnek verebiliriz.  Bluetooth shield veya modülünü S4A modülüyle kullanamayız.


Gsm Shield: Arduinomuzu bir telefona dönüştürmek mümkün. Bu shieldle arama yapabilir yada mesaj gönderebiliriz. Gsm shieldi S4A programı ile kullanamayız.


LCD Shield: Bu lcd ekranımız 16*2 karakter yazabilmektedir. Üzerinde ayrıca butonlar da bulunabilir. LCD shieldi S4A programı ile kullanamayız. 


Proto Shield: Kendi yaptığımız devreleri bir shield haline getirmeye yarıyor. Örneğin bir proto shield ile kendi motor shieldimizi yapabiliriz.




* KARA ŞİMŞEK UYGULAMASI

Malzemeler:

- Arduino Uno - 4 adet LED - Breadboard - 4 adet Direnç - Jumper kablolar;

Devre Kurulumu :

Eğer devreye daha fazla led ekleyeceksiniz kodunuza da buna göre eklemeler yapmayı unutmayın.



Arduino Kod Kısmı :

#define led1 13
#define led2 12
#define led3 11
#define led4 10

void setup() { 
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
  pinMode(led4,OUTPUT);
}

void loop(){
  digitalWrite(led1,HIGH);   delay(100);  digitalWrite(led1,LOW);  delay(100);
  digitalWrite(led2,HIGH);  delay(100);  digitalWrite(led2,LOW);  delay(100);
  digitalWrite(led3,HIGH);  delay(100);  digitalWrite(led3,LOW);  delay(100);
  digitalWrite(led4,HIGH);  delay(100);  digitalWrite(led4,LOW);  delay(100);
  digitalWrite(led3,HIGH);  delay(100);  digitalWrite(led3,LOW);  delay(100);
  digitalWrite(led2,HIGH);  delay(100);  digitalWrite(led2,LOW);  delay(100);
}

S4A Kod Kısmı :

S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim.

Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!



* RGB LED UYGULAMASI


Malzemeler:

- Arduino Uno
- RGB LED
- Breadboard
- 3 adet Direnç 
- Jumper kablolar

* RGB LED NEDİR?

Normal LED lerden farklı olarak 3 farklı rengi ( kırmızı, yeşil, mavi ) kendi içinde 
bulunduran bir LED çeşididir. 



Devre Kurulumu :

RGB LED’imizin en uzun bacağı ortak anot veya ortak katot bacağıdır. Bunu göz önüne alarak RGB LED’imizi devremize yerleştirmeliyiz. LED’in başta beyaz yanmasının nedeni hiç kod tanımlamamızdır.


S4A Kod Kısmı :

S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim. Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!

Arduino Kod Kısmı :

#define kirmizi 13
#define yesil 12
#define mavi 11

void setup() { 
  pinMode(kirmizi,OUTPUT);
  pinMode(yesil,OUTPUT);
  pinMode(mavi,OUTPUT);
             }

void loop(){

    //kırmızı renk için
  digitalWrite(kirmizi,LOW);   digitalWrite(yesil,HIGH);   digitalWrite(mavi,HIGH); delay(500);
    //yeşil renk için
  digitalWrite(kirmizi,HIGH);   digitalWrite(yesil,LOW);   digitalWrite(mavi,HIGH); delay(500);
    //mavi renk için
  digitalWrite(kirmizi,HIGH);   digitalWrite(yesil,HIGH);   digitalWrite(mavi,LOW); delay(500);
    //sarı renk için
  digitalWrite(kirmizi,LOW);   digitalWrite(yesil,LOW);   digitalWrite(mavi,HIGH); delay(500);
    //turkuaz renk için
  digitalWrite(kirmizi,HIGH);   digitalWrite(yesil,LOW);   digitalWrite(mavi,LOW); delay(500);
    //mor renk için
  digitalWrite(kirmizi,LOW);   digitalWrite(yesil,HIGH);   digitalWrite(mavi,LOW); delay(500);
    //beyaz renk için
  digitalWrite(kirmizi,LOW);   digitalWrite(yesil,LOW);   digitalWrite(mavi,LOW); delay(500);
           }

Not: Arduino’ya program yükleyebilmemiz için S4A programının kapalı olması gerekmektedir.


*SÜRGÜLÜ RGB LED UYGULAMASI

Malzemeler: 

- Arduino Uno
- RGB LED
- Breadboard
- 3 adet Direnç
- Jumper kablolar

RGB LED’imizin en uzun bacağı ortak anot veya ortak katot bacağıdır. Bunu göz önüne alarak RGB LED’imizi devremize yerleştirmeliyiz. LED’in başta beyaz yanmasının nedeni hiç kod tanımlamamızdır.



S4A Kod Kısmı :

S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim.

Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!

Arduino ve Pwm: Pwm analog sinyaller ile çalışan cihazları dijital sinyallerle kontrol etme tekniğine denir.  Sinyalin genişliği ile dijital sinyalden analog sinyal elde edebiliriz. Kırmızı, yeşil ve mavi renklerinde değişken oluşturup bu değişkenlerin üzerine çift tıklayarak sürgü elde ediyoruz. Değişkenin üzerine sağ tıklayalım ve en düşük – en yüksek değerleri 0-255 yapalım.




* POTANSİYOMETRE İLE SERVO MOTOR UYGULAMASI

Malzemeler:

- Arduino Uno
- Servo Motor
- Breadboard
- Potansiyometre
- Jumper kablolar



S4A Kod Kısmı :

S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim.

Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!

- Servo motorrumuzu 180 derece kadar döndürebiliyorduk. Potansiyometreden 1023 e kadar değerler okuyabiliyorduk. Bizim yapmak istediğimiz bu 1023 ü 180 e orantılı bir biçimde düşürmek. 1023 / 180 = 5,6833. Değerlerimizi depolayabileceğimiz deger adında bir değişken oluşturalım.

Angle: açı


Arduino Kod Kısmı :

#include <Servo.h>
#define degers A0
int deger;
Servo scratchservo;

void setup()

{ scratchservo.attach(8); }

void loop()
  
  deger= analogRead(degers);
  deger= map(deger,0,1023,0,180);
  scratchservo.write(deger);
  delay(10); 
  
}


Not: Arduino’ya program yükleyebilmemiz için S4A programının kapalı olması gerekmektedir.



* JOYSTICK NEDİR VE NASIL ÇALIŞIR?

Her gün oynadığımız oyunlarda kontrolümüzü sağlayan bir elemandır. Joysticki ileri götürdüğümüzde X düzlemi, sağa veya sola götürdüğümüzde ise Y düzlemi değişir. Bu değişimi bize 2 adet potansiyometre verir. 

GND: Modülümüzü bu pinle toprak hattına bağlıyoruz.+5V: Modülümüzü bu pinle güç hattına (5V) bağlarız.VRx: Joysticklerimizin X ekseninin bilgisini bu pinden alırız.VRy: Joysticklerimizin Y ekseninin bilgisini buı pinden alırız. SW: Joysticklerimizin üzerindeki butonun bilgisi bu pinden alırız.



* JOYSTICK UYGULAMASI

Malzemeler:

- Arduino Uno
- Joystick
- Breadboard
- Jumper Kablolar
- Direnç (10K)

Eğer modülümüzün üzerinde hali hazırda direnç bulunmakta ise modülün bacağını direkt olarak pinimize bağlayabiliriz.



S4A Kod Kısmı :

S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim.

Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!

- x,y ve buton adında 3 tane değişken oluşturalım. Daha sonra 1 adet karakter ekleyelim. Arduinomuzu programadığımız sayfaya giderek şu kod bloklarını yapıyoruz. Bununla arkadaki Arduino resminin gittiğini göreceğiz. 




Arduino Kod Kısmı :


#define x A0
#define y A1
#define buton 2

int x_durum; 
int y_durum;
bool buton_durum;

void setup ()
{ pinMode(buton,INPUT); Serial.begin(9600); }

void loop() { x_durum=analogRead(x);
              y_durum=analogRead(y);
              buton_durum=digitalRead(buton);

              Serial.print("x durum= ");
              Serial.println(x_durum);

              Serial.print("y durum= ");
              Serial.println(y_durum);

              Serial.print("buton durum= ");
              Serial.println(buton_durum);

              Serial.println("-----------------------");
              delay(500); }

Not: Arduino’ya program yükleyebilmemiz için S4A programının kapalı olması gerekmektedir.


* TRANSİSTÖR NEDİR?

Akımı Kontrol etmemizi sağlarlar. Bilgisayarlarda, fırınlarda, televizyonlarda, cep telefonlarında ve daha birçok yerde transistör kullanılmaktadır. Transistörlerin 3 bacağı olur. Base, Emitter, Collector’dur.

* JOYSTICK UYGULAMASI


Malzemeler:

- Arduino Uno
- 2N2222 Transistör
- Breadboard
- DC Motor
- Jumper Kablolar
- Direnç (10K)

S4A Kod Kısmı :

S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim.

Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!


Arduino Kod Kısmı :

#define motor 12 

void setup() {  pinMode(motor,OUTPUT); }

void loop() { digitalWrite(motor,HIGH);
              delay(5000);
              digitalWrite(motor,LOW);
              delay(5000);   }
 
Not: Arduino’ya program yükleyebilmemiz için S4A programının kapalı olması gerekmektedir.


* ARDUINO NANO UYGULAMASI

Kısıtlı yer olan projeler için idealdir.

- Dijital Giriş Çıkış Pini: 14
- PWM Pinleri: 6
- Analog Giriş Pinleri: 6 


Malzemeler:

- Arduino Nano
- LED
- Breadboard
- Jumper Kablolar
- Buton

Kartı Arduino Nano olarak seçelim ve portumuzu ayarlayalım.

Arduino Kod Kısmı :

#define buton 2
#define led 12

void setup() {
  pinMode(buton,INPUT);
  pinMode(led,OUTPUT);
}

void loop() 

{
  if(digitalRead(buton)==1)
{  
  digitalWrite(12,HIGH);
}
else
{
  digitalWrite(12,LOW);
}
}

Not: Arduino’ya program yükleyebilmemiz için S4A programının kapalı olması gerekmektedir.

* MEYVE SEBZE PİYANOSU UYGULAMASI

Malzemeler:

- Arduino Uno
- 6 Adet Meyve
- Breadboard
- Jumper Kablolar
- 6 Tane 1 M Direnç

Meyvemize dokurken mutlaka elimizin açık GND kablosunun ucuna değmesi gerekmektedir. Bunu daha pratik hale getirmek için kabloyu alüminyum folyoya bantlayabilirsiniz.


Devre Kurulumu :

Eğer direnç değerini değiştirirsek kod kısmını da buna uygun olarak değiştirmemiz gerekir. Değiştireceğimiz direnç değerinin çok düşük olmamasına dikkat etmeliyiz.

S4A Kod Kısmı : S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim. Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!

Arduino Kod Kısmı :

void setup() { 
  Serial.begin(9600); //Serial haberleşme başlatıldı. 
  }
void loop() { if(analogRead(A0)<800) { //Birinci meyve değeri
Serial.println('a');
while (analogRead(A0)<900){}}

if(analogRead(A1)<800) {//İkinci meyve değeri
Serial.println('b');
while (analogRead(A1)<900){}}
if(analogRead(A2)<800) {//Üçüncü meyve değeri
Serial.println('c');
while (analogRead(A2)<900){}}
if(analogRead(A3)<800) {//Dördüncü meyve değeri
Serial.println('d');
while (analogRead(A3)<900){}}
if(analogRead(A4)<800) {//Beşinci meyve değeri
Serial.println('e');
while (analogRead(A4)<900){}}
if(analogRead(A5)<800) { //Altıncı meyve değeri
Serial.println('f');
while (analogRead(A5)<90){}}}


* Wİ-Fİ KONTROLÜ UYGULAMASI


Malzemeler:

- Arduino Uno
- 2 Adet LED
- Breadboard
- Jumper Kablolar
- 2 Adet Direnç

Telefonumuza Scratcher Control isimli uygulamamızı Google Playden yüklüyoruz. 

S4A programından düzenle menüsünün altındaki Hot Mesh seçeneğine tıklayalım. Uygulamayı yapmak için telefon ve bilgisayar aynı Wi-Fi ağına bağlı olmalıdır. Mobil uygulamadan scana tıklayalım ve bilgisayarımıza ait olan ip adresini seçelim. Seçtikten sonra connect butonuna tıklayalım. Sonra kod bloklarını karakterimize ekleyelim. Algılama bölümündeki sensör değeri bloğuna sağ tıklayarak uzak sensör bağlantılarını sağlayın diyelim ve bloklarımızı kodlayalım.



S4A Kod Kısmı : S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim. Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!