Arduino Müfredat22 23

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 94

ARDUINO

MÜFREDAT
HAZIRLIK KOLEJİ
2022-2023
Selim KENEZ
İÇİNDEKİLER

İÇİNDEKİLER TABLOSU
ARDUINO DERS 1 ..................................................................................................................................................... 5
ARDUINO NEDİR? ................................................................................................................................................ 5
DIGITAL VE ANALOG GİRİŞ ÇIKIŞ PİNLERİ ........................................................................................................ 5
ARDUINO KARTINA GÜÇ VERME ......................................................................................................................... 7
ARDUINO DERS 2 ..................................................................................................................................................... 7
DEVRE NEDİR? ..................................................................................................................................................... 7
DİRENÇ NEDİR? ................................................................................................................................................... 7
DİRENÇ RENK KODLARI NELERDİR? ..................................................................................................................... 8
ARDUINO DERS 3 ..................................................................................................................................................... 9
BREADBOARD NEDİR VE NASIL KULLANILIR? ...................................................................................................... 9
ARDUINO DERS 4 ..................................................................................................................................................... 9
TINKERCAD ONLINE SİMULASYON UYGULAMASI ............................................................................................... 9
KAYIT OLUŞTURMA VE GİRİŞ ........................................................................................................................... 9
ARDUINO DERS 6 ................................................................................................................................................... 10
ARDUINO YÜKLEME .......................................................................................................................................... 10
ARDUINO IDE KURULUMU VE KULLANIMI .................................................................................................... 10
ARDUINO DERS 7 ................................................................................................................................................... 11
ARDUINO KÜTÜPHANE EKLEME ........................................................................................................................ 11
ARDUINO DERS 8 ................................................................................................................................................... 11
ARDUINO TEMEL EĞİTİM FONKSİYONLARI ....................................................................................................... 11
SETUP, LOOP, PINMODE, DIGITALWRITE, DELAY .......................................................................................... 12
ARDUINO DERS 9 ................................................................................................................................................... 12
ARDUINO SERIAL MONITOR KULLANIMI ........................................................................................................... 12
ARDUINO DERS 10 ................................................................................................................................................. 13
DEĞİŞKEN NEDİR? VE NASIL TANIMLANIR? ...................................................................................................... 13
DEĞİŞKEN TÜRLERİ NELERDİR?............................................................................................................... 13
TAM SAYI DEĞİŞKEN TÜRLERİ ....................................................................................................................... 13
REEL SAYI TÜRLERİ......................................................................................................................................... 14
MANTIKSAL DEĞİŞKEN TÜRLERİ .................................................................................................................... 14
KARAKTER DEĞİŞKEN TÜRLERİ ...................................................................................................................... 15
DEĞİŞKENLER NEDEN TÜRLERE AYRILMIŞTIR? .............................................................................................. 15
ARDUINO DERS 11 ................................................................................................................................................. 17
SABİTLER............................................................................................................................................................ 17
ARDUINO DERS 12 ................................................................................................................................................. 18

1
ŞARTLAR : IF, ELSE, ELSE IF ................................................................................................................................ 18
ARDUINO DERS 13 ................................................................................................................................................. 18
BUTON KULLANIMI İLE DIGITAL READ KONUMU .............................................................................................. 18
ARDUINO DERS 14 ................................................................................................................................................. 19
RANDOM KOMUTU İLE RASTGELE SAYI ÜRETME .............................................................................................. 19
RANDOM SEED .................................................................................................................................................. 19
ARDUINO DERS 15 ................................................................................................................................................. 19
Arduino Random Led Yakmak Kodu ,Random Led Blink Code .......................................................................... 20
ARDUINO DERS 16 ................................................................................................................................................. 20
Arduino Potansiyometre Nedir, Nasıl Bağlanır, Led Parlaklığı Ayarlama .......................................................... 20
ARDUINO DERS 17 ................................................................................................................................................. 22
Arduino Eğitimi Analog Digital (Dijital) Veri ve ADC Analog Digital Converter .................................................. 22
ARDUINO DERS 18 ................................................................................................................................................. 23
Arduino Potansiyometre ile Analog Değer Okuma (Analog Read ..................................................................... 23
ARDUINO DERS 19 ................................................................................................................................................. 23
Arduino RGB LED Kullanımı ............................................................................................................................... 24
RGB LED Uygulamaları................................................................................................................................... 24
ARDUINO DERS 20 ................................................................................................................................................. 25
Arduino AnalogWrite Komutu ........................................................................................................................... 25
PWM Sinyali ile RGB LED Kontrolü ................................................................................................................ 26
ARDUINO DERS 21 ................................................................................................................................................. 27
Arduino For Döngüsü, Arduino Diziler .............................................................................................................. 27
Arduino Kara Şimşek Devresi Yapımı............................................................................................................. 29
ARDUINO DERS 22 ................................................................................................................................................. 30
Arduino HC SR04 Ultrasonik Mesafe Sensörü ile Led Yakmak .......................................................................... 30
ARDUINO DERS 23 ................................................................................................................................................. 32
Arduino LCD Ekran Kullanımı, Kodları ve Yazı Yazdırma .................................................................................... 32
ARDUINO DERS 24 ................................................................................................................................................. 33
Arduino Park Sensörü (Arduino Mesafe Sensörü .............................................................................................. 33
ARDUINO DERS 25 ................................................................................................................................................. 34
Arduino 7 Segment Display Kullanımı ve Bacakları | Yedi Segment – Seven Segment LED .............................. 34
ARDUINO DERS 26 ................................................................................................................................................. 37
Arduino 7 Segment Display 0-9 Sayıcı Devresi (Counter) - 7 Segment ScoreBoard .......................................... 37
ARDUINO DERS 31 ................................................................................................................................................. 40
Ses Sensörü Devresi ve Arduino ile Alkışla Yanan LED Lamba Yakmak ............................................................. 40
ARDUINO DERS 32 ................................................................................................................................................. 41
Ses Duyarlı LED Kontrolü ................................................................................................................................... 41

2
ARDUINO DERS 33 ................................................................................................................................................. 43
Arduino 433 mhz RF Alıcı (Receiver) Verici (Trasmitter) Modül Kullanımı | Virtual Wire ................................. 43
ARDUINO DERS 34 ................................................................................................................................................. 48
Arduino ile (infrared - kızılötesi) TV Kumanda Kontrol Devresi ile LED ve Buzzer Uygulaması ......................... 48
ARDUINO DERS 35 ................................................................................................................................................. 50
Bluetooth Nedir | Arduino HC-05 ve HC-06 Bluetooth Modülü | HC-05 vs HC-06 Farkı nelerdir? ................... 50
ARDUINO DERS 36 ................................................................................................................................................. 50
Arduino HC-05 HC-06 Bluetooth Modülü ve Cep Telefonu ile 4 LED nasıl yakılır?............................................ 50
ARDUINO DERS 37 ................................................................................................................................................. 52
Arduino Software Serial Kütüphanesi Kullanımı ile Bluetooth Seri Haberleşme nasıl yapılır? .......................... 52
ARDUINO DERS 38 ................................................................................................................................................. 54
Arduino HC05 Bluetooth AT Komutları, HC-05 Şifre ve Ad Değiştirme ............................................................. 54
ARDUINO DERS 39 ................................................................................................................................................. 55
LDR ( Light Dependent Resistor ) Nedir ve Arduino ile LDR ( Işık Senserü ) Devresi nasıl kurulur? Nasıl
kodlanır? ........................................................................................................................................................... 56
ARDUINO DERS 40 ................................................................................................................................................. 57
Arduino LDR Devresi ile Karanlıkta Yanan LED Projesi Nasıl Yapılır .................................................................. 57
ARDUINO DERS 41 ................................................................................................................................................. 59
Arduino ile Karaşimşek Devresi ve Park Sensörü Uygulaması nasıl yapılır? ...................................................... 59
ARDUINO DERS 42 ................................................................................................................................................. 61
While Döngüsü ( While Loop ) Nedir ................................................................................................................. 61
ARDUINO DERS 43 ................................................................................................................................................. 62
Arduino While Döngüsü Örnekleri .................................................................................................................... 62
ARDUINO DERS 44 ................................................................................................................................................. 64
PIR Sensörü Hareket Sensörü Arduino ile Nasıl Çalışır? Nasıl Bağlanır? Hassasiyet ve Zaman Ayarı nasıl yapılır?
.......................................................................................................................................................................... 64
ARDUINO DERS 45 ................................................................................................................................................. 66
Arduino’ da PIR – Hareket Sensörü ile Hırsız Alarm Sistemi Nasıl Yapılır? ....................................................... 66
ARDUINO DERS 46 ................................................................................................................................................. 67
Arduino Fonksiyon (Metot) Tanımlama Nedir?................................................................................................. 67
ARDUINO DERS 47 ................................................................................................................................................. 68
Arduino Fonksiyon (Metot) Türleri 1 ................................................................................................................. 68
ARDUINO DERS 48 ................................................................................................................................................. 69
Arduino Fonksiyon (Metot) Türleri 2 ................................................................................................................. 69
ARDUINO DERS 49 ................................................................................................................................................. 70
Arduino Fonksiyon (Metot) Türleri 3 ................................................................................................................. 70
ARDUINO DERS 50 ................................................................................................................................................. 71

3
Arduino ile DC Step Servo ve Lineer Motor Kullanımı ve Motor Sürücü Shield nedir, nasıl kullanır ................. 71
ARDUINO DERS 51 ................................................................................................................................................. 72
Arduino Pot Ve Buton İle PWM DC Motor Hız Kontrolü Nasıl Yapılır Ve Kodlanır? .......................................... 72
ARDUINO DERS 51 ................................................................................................................................................. 79
Servo Motor Nedir, Nasıl Çalışır? ...................................................................................................................... 79
ARDUINO DERS 52 ................................................................................................................................................. 79
Arduino PWM ile SG90 Servo Motor Kontrolü ve Servo Kütüphanesi Kodu ..................................................... 79
ARDUINO DERS 53 ................................................................................................................................................. 81
Step Motor Nedir, Nasıl Çalışır, Arduino ile 28byj-48 Step Motor Kontrolü ve ULN2003 Motor Sürücü .......... 81
ARDUINO DERS 57 ................................................................................................................................................. 83
Arduino ile Step Motor Projeleri Step motor Hız Yön kontrolü Devresi ........................................................... 83
ARDUINO DERS 54 ................................................................................................................................................. 85
RFID Kart ve Özellikleri | Arduino ile RFID Kart Kullanımı ................................................................................. 85
ARDUINO DERS 55 ................................................................................................................................................. 87
Arduino Uno ile MFRC522 RFID Kart Projesi ..................................................................................................... 87
ARDUINO DERS 56 ................................................................................................................................................. 88
Röle nedir, röle ne işe yarar, nasıl çalışır? | Arduino Röle Kullanımı................................................................. 88
ARDUINO DERS 57 ................................................................................................................................................. 89
Arduino 220V Röle Kullanımı ve Alkışla Yanıp Sönen 220V Lamba Kontrolü - DİKKAT 220V ............................ 89
ARDUINO DERS 58 ................................................................................................................................................. 90
Arduino Dersleri : Arduino Toprak Nem Sensörü (Toprak Nem Ölçer) ............................................................. 90
ALGORİTMA NEDİR? .............................................................................................................................................. 91

4
ARDUINO DERS 1
ARDUINO NEDİR?

A
rduino, açık kaynaklı bir elektronik platformudur. Arduino, kolayca programlanabilen mikrokontrolör
kartları, yazılım ortamı ve giriş/çıkış araçlarından oluşur. Bu kartlar, sensörler, motorlar ve diğer
cihazlar gibi elektronik bileşenlerle birlikte kullanılarak çeşitli projeler oluşturulabilir.

Arduino platformu, özellikle hobi elektroniği, prototipleme ve öğrenme amaçları için popülerdir. Arduino
kartları, basit bir şekilde programlanabilen ve çeşitli giriş/çıkış araçlarına sahip olduğu için özellikle kullanıcı
dostudur. Arduino, çeşitli programlama dilleriyle kullanılabilir ve kullanıcılar, kartlarının tasarımını ve
fonksiyonlarını özelleştirebilirler.

DIGITAL VE ANALOG GİRİŞ ÇIKIŞ PİNLERİ


Arduino, programlanabilir bir mikrodenetleyici kartıdır ve dijital ve analog sinyalleri okuyabilen bir dizi dijital ve
analog pinlere sahiptir. Dijital pinler sadece iki değer alabilir: "HIGH" (yüksek, 5 volt) veya "LOW" (düşük, 0
volt). Bu pinler, dijital sensörleri, butonları, LED'leri ve diğer çıkış cihazlarını kontrol etmek için kullanılabilir.

Arduino UNO'da 14 dijital giriş/çıkış (GPIO) pini bulunur. Bu pinler 0-13 arasındaki sayılarla belirtilir. Ayrıca, 6
adet analog giriş pinine sahiptir ve bu pinler A0-A5 olarak adlandırılır.

Dijital pinlerin kullanımı, pinMode() fonksiyonu ile belirtilen çıkış veya giriş moduna bağlıdır. digitalWrite()
fonksiyonu, dijital çıkış pini durumunu ayarlamak için kullanılırken, digitalRead() fonksiyonu dijital giriş
pinlerinden veri okumak için kullanılır.

Dijital pinlerin kullanımı, çeşitli projelerde oldukça yaygındır. Örneğin, bir LED'i yanıp söndürmek için bir dijital
çıkış pini kullanabilirsiniz veya bir düğmeyi okumak için bir dijital giriş pini kullanabilirsiniz.

Dijital pinlerin durumunu okumak veya değiştirmek için Arduino kodu kullanılır. Örneğin, aşağıdaki kod bloğu,
13 numaralı dijital çıkış pini üzerindeki bir LED'i yanıp söndürür:

 void setup() {
 pinMode(13, OUTPUT); // 13 numaralı pin çıkış olarak ayarlanır }

5
 void loop() { digitalWrite(13, HIGH); // LED'i yakar
 delay(1000); // 1 saniye bekle
 digitalWrite(13, LOW); // LED'i söndürür
 delay(1000); // 1 saniye bekle }

Bu kodda, setup() fonksiyonunda, 13 numaralı dijital çıkış pini çıkış olarak ayarlanır.

Arduino'da analog giriş pinleri, A0 ile A5 arasında altı adet 10 bitlik ADC (Analog to Digital Converter) pinidir. Bu
pinler, analog voltaj sinyallerini okuyarak bunları dijital verilere dönüştürür. Bu sayede sensörlerden gelen
analog sinyalleri okuyabilir ve değerlendirebilirsiniz.

Analog pinlerin kullanımı, dijital pinlerden biraz farklıdır. Analog sinyaller, 0 ile 5 volt arasında değişebilir ve bu
değerler ADC tarafından 0-1023 arasındaki bir sayıya dönüştürülür. Bu sayı, analogRead() fonksiyonu
kullanılarak okunabilir ve daha sonra işlem yapmak için kullanılabilir.

Örneğin, A0 pinine bağlı bir potansiyometre kullanarak analog sinyaller okunabilir ve bir LED'in parlaklığı bu
sinyallere bağlı olarak ayarlanabilir. Bu işlemi gerçekleştirmek için analogRead() fonksiyonu kullanılır ve elde
edilen değer, analogWrite() fonksiyonu kullanılarak LED'e verilir.

 int analogPin = A0; // kullanılacak analog giriş pini


 int analogValue = 0; // analog girişten okunan değer

 void setup() {
 Serial.begin(9600); // seri iletişim hızını ayarla
 }

 void loop() {
 // analog girişten değer oku ve seri portta yazdır
 analogValue = analogRead(analogPin);
 Serial.println(analogValue);

 delay(100); // 100 ms bekle


 }

Bu örnek kod, A0 pinine bağlı bir sensörden gelen analog sinyalleri okur ve seri portta yazdırır. analogRead()
fonksiyonu kullanılarak okunan değer, Serial.println() fonksiyonu ile seri portta yazdırılır. delay() fonksiyonu
kullanılarak 100 ms beklenir ve işlem tekrarlanır.

Bu örnekte, analog girişten okunan değer 0-1023 arasındadır ve seri portta gösterilir. Bu değer, sensörün
ölçtüğü şeyin niteliğine bağlı olarak değişebilir. Örneğin, bir LDR (ışık sensörü) ile kullanıldığında, analog değer
ortam ışığına bağlı olarak değişebilir.

6
ARDUINO KARTINA GÜÇ V ERME
Arduino kartına güç sağlamak için iki seçenek vardır:

USB güç kaynağından güç sağlayabilirsiniz. Bu yöntem, projelerinizi bilgisayarınızda çalıştırmanız veya taşınabilir
bir güç kaynağından faydalanmanız gerektiğinde kullanışlıdır.

Harici güç kaynağı: Arduino kartınızın güç soketi üzerinden bir harici güç kaynağı kullanarak güç sağlayabilirsiniz.
Bu yöntem, projenizin taşınabilir olmadığı veya projenizin USB bağlantı noktasına erişiminiz olmadığı
durumlarda kullanışlıdır.

Arduino kartınızın güç soketi genellikle 9V veya 12V DC bir güç kaynağına uyumlu bir konnektördür. Ancak,
kartınızın modeline bağlı olarak giriş voltajı 5V olabilir, bu nedenle güç kaynağınızın giriş voltajı gereksinimlerini
kontrol ettiğinizden emin olun. Ayrıca, Arduino kartınızın maksimum giriş voltajını aşmamaya özen gösterin,
aksi halde kartınıza zarar verebilirsiniz.

Harici güç kaynağı kullanarak Arduino kartınıza güç sağlamak için aşağıdaki adımları izleyebilirsiniz:

Harici güç kaynağınızın çıkış voltajını kontrol edin ve Arduino kartınızın giriş voltaj gereksinimlerini
karşıladığından emin olun.

Arduino kartınızın güç soketiyle harici güç kaynağınız arasında bir bağlantı kurun. Bu bağlantıyı yapmak için, güç
soketindeki uygun konnektörü bulun ve harici güç kaynağınızın konnektörünü Arduino kartınıza takın.

Güç kaynağınızın prizine takın ve Arduino kartınızın çalıştığını kontrol edin. Arduino kartınızın LED ışığı yanmalı
ve projenizin gerektirdiği işlemleri gerçekleştirebilmelisiniz.

Not: Arduino kartınızın modeline ve güç kaynağınıza bağlı olarak, kartınızın üzerindeki güç soketi yanında yer
alan polarite işaretini takip etmeniz gerekebilir. Ayrıca, bazı Arduino modellerinde güç kaynağı seçimi için bir
jumper seçeneği bulunabilir, bu nedenle kullandığınız Arduino modelinin kullanım kılavuzunu kontrol etmeniz
önerilir.

ARDUINO DERS 2
DEVRE NEDİR?

Devre, elektrik akımı veya sinyal gibi fiziksel büyüklüklerin kontrol edilmesi, iletimi veya işlenmesi için
tasarlanmış bağlantı elemanlarının bir araya getirilmesiyle oluşan bir sistemdir. Devreler, elemanlarının
özellikleri ve bağlantılarına göre farklı işlevleri yerine getirebilirler.

Elektrik devreleri, direnç, kapasitör, indüktör, diyot, transistör, entegre devre gibi elemanları kullanarak akımı
kontrol eder ve işler. Devreler, analog veya dijital işaretlerin işlenmesi için tasarlanabilirler ve birçok farklı
uygulama alanı vardır, örneğin elektronik cihazlar, güç kaynakları, telekomünikasyon sistemleri, robotik
sistemler, otomotiv elektroniği vb.

DİRENÇ NEDİR?

7
Direnç, bir elektrik devresinde akımın akışını sınırlayan bir özelliktir. Direnç, bir devrenin elektriksel direnci
olarak ifade edilir ve ohm (Ω) birimi ile ölçülür.

Direnç, devredeki malzeme, devre elemanlarının boyutları ve şekilleri, malzemenin sıcaklığı, devredeki diğer
elemanlar gibi birçok faktöre bağlıdır. Direncin amacı, devre elemanlarına zarar vermeden akımı sınırlamak ve
bu sayede devreyi kontrol edebilmektir.

Dirençler, devre elemanları arasında gerilimi düşürmek veya sinyalleri sınırlamak gibi çeşitli amaçlar için
kullanılır. Örneğin, evlerimizdeki ampuller, ısıtıcılar ve diğer elektrikli cihazlar, devrenin direnci tarafından
sınırlanmaktadır.

Dirençler, farklı şekil ve boyutlarda üretilirler ve kullanıldıkları amaçlara göre değişiklik gösterirler. Pasif devre
elemanlarından biridirler ve çeşitli devrelerde aktif elemanlarla birlikte kullanılarak, devrenin amacına uygun
çalışması sağlanır.

Dirençler, farklı materyallerden üretilebilirler. En yaygın kullanılan malzemeler arasında karbon, metal film ve
tel, seramik ve kompozit malzemeler yer alır. Bu malzemelerin her biri, farklı özellikler gösterir ve farklı
uygulamalarda kullanılırlar.

DİRENÇ RENK KODLARI NELERDİR?

Dirençler, elektronik devrelerde kullanılan temel pasif elemanlardır ve elektrik akımının akışını sınırlayan
elemanlardır. Dirençlerin üzerindeki renk kodları, direncin ohm cinsinden değerini belirtir. Aşağıda, direnç
kodlaması için kullanılan renkler ve bunların ohm değerlerini ifade etme şekilleri verilmiştir:

Renk Kodu: Siyah - Kahverengi - Kırmızı - Turuncu - Sarı - Yeşil - Mavi - Mor - Gri - Beyaz

Değer: 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9

Çarpan: x1 - x10 - x100 - x1,000 - x10,000 - x100,000 - x1,000,000 - x10,000,000

Tolerans: Altın (%5) - Gümüş (%10) - Yok (%20)

Örneğin, bir direncin renk kodu kırmızı, siyah, kahverengi, altın olabilir. Bu kod, direncin 2.2 ohm olduğunu (2
rakamı kırmızı, 1 rakamı siyah, çarpanı 10 olduğu için 10'un kahverengi olduğu, toleransın %5 olduğu için altın
halka) gösterir.

8
ARDUINO DERS 3
BREADBOARD NEDİR VE NASIL KULLANILIR?

Bir breadboard, bir elektronik devre yapmak için kullanılan bir tür prototip kartıdır. Genellikle plastik bir taban
üzerinde, çoğunlukla beyaz veya şeffaf bir renkle kaplıdır ve küçük deliklerle kaplanmıştır. Bu deliklerin her biri,
bir elektronik bileşenin bacaklarını geçirmek ve farklı bileşenlerin birbirleriyle bağlantı kurmasını sağlamak için
kullanılır.

Breadboard'lar, birçok farklı şekilde kullanılabilir. Örneğin, bir breadboard üzerinde basit devreler kurabilir,
Arduino veya Raspberry Pi gibi küçük bilgisayarlar için bir prototip devre oluşturabilirsiniz. Breadboard'lar,
elektronik projeler yapmak isteyen acemi ve profesyoneller için kullanışlı bir araçtır, çünkü devrelerinizi hızlı bir
şekilde prototipleyebilir ve test edebilirsiniz.

ARDUINO DERS 4
TINKERCAD ONLINE SİM ULASYON UYGULAMASI

Tinkercad, bir online devre simülasyon uygulamasıdır. Tinkercad, Autodesk firması tarafından sunulan bir 3D
tasarım ve prototipleme aracıdır. Kullanıcılar, tarayıcı üzerinden erişebilecekleri Tinkercad uygulaması ile birçok
farklı elektronik devreler tasarlayabilir ve bu devreleri simüle edebilirler.

Tinkercad ile kullanıcılar, dijital olarak birçok farklı bileşen ekleyerek devrelerini oluşturabilirler. Bu bileşenler
arasında dirençler, kondansatörler, transistörler ve entegre devreler gibi temel elektronik bileşenler yer alır.
Kullanıcılar, devrelerini oluşturduktan sonra simülasyon modunda çalıştırarak gerçek dünya koşullarına benzer
bir deneyim yaşayabilirler.

Tinkercad, öğrenme amaçlı olarak sıklıkla kullanılan bir araçtır. Özellikle, STEM eğitimi (bilim, teknoloji,
mühendislik ve matematik) alanında kullanılan bir araçtır. Öğrenciler, Tinkercad ile elektronik devrelerin nasıl
çalıştığını ve bu devrelerin tasarımı ve simülasyonu hakkında temel bilgileri öğrenebilirler.

KAYIT OLUŞTURMA VE GİRİŞ


Tinkercad, çevrimiçi bir 3D modelleme ve tasarım aracıdır. Tinkercad hesabı oluşturmak için aşağıdaki adımları
izleyebilirsiniz:

1. Tinkercad web sitesini açın: https://www.tinkercad.com/


2. "Hesap Oluştur" düğmesine tıklayın.
3. "Kaydol" sayfasında, bir e-posta adresi ve bir şifre girin.
4. Ayrıca, Tinkercad'ın kullanım şartlarına ve gizlilik politikasına uygun olduğunuzu onaylamak için
kutucuğu işaretleyin.
5. "Kaydol" düğmesine tıklayın.
6. Bir sonraki sayfada, adınızı ve soyadınızı girin.
7. Kayıt formunu tamamladıktan sonra, Tinkercad hesabınız oluşturulmuş olacak.
8. Artık Tinkercad'ı kullanabilirsiniz. Tinkercad'ın arayüzüne erişmek için "Başla" düğmesine tıklayın veya
hesabınızı doğrulamak için e-postanıza gelen doğrulama bağlantısını tıklayın.
9. Tinkercad'a kaydolmak ücretsizdir ve bir Google hesabıyla da kaydolabilirsiniz.

9
ARDUINO DERS 6
ARDUINO YÜKLEME
Arduinoya yükleme yapmak için aşağıdaki adımları takip edebilirsiniz:

Arduino yazılımını indirin ve yükleyin: Arduino yazılımını Arduino web sitesinden indirebilirsiniz. Ardından,
yükleyiciyi çalıştırarak bilgisayarınıza kurun.

Arduino kartını bağlayın: Arduino kartınızı USB kablosu ile bilgisayarınıza bağlayın. Arduino kartınızı
bilgisayarınıza takınca, sürücüleri otomatik olarak yükleyecektir.

Arduino yazılımını açın: Arduino yazılımını açın ve arduino kartınızın modelini ve portunu seçin. "Tools"
menüsünden "Board" ve "Port" seçeneklerini kullanarak bu ayarları yapabilirsiniz.

Arduino kodunu yazın: Arduino yazılımında, yeni bir kod dosyası açın ve kodunuzu yazın veya örnek kodları
kullanarak deneyler yapın.

Arduino kodunu kartınıza yükleyin: Kodunuzu yüklemek için "Upload" düğmesini kullanın. Bu, Arduino
yazılımında soldaki yüksek ok simgesi şeklindedir. Bu düğmeye tıkladığınızda, yazılım kodunuzu derleyecek ve
Arduino kartınıza yükleyecektir.

Arduino kodunun çalıştığını doğrulayın: Arduino kodunun doğru şekilde çalışıp çalışmadığını kontrol etmek için
seri monitörü kullanabilirsiniz. "Tools" menüsünden "Serial Monitor" seçeneğini seçerek açabilirsiniz. Bu,
Arduino kartınızdan seri veri okumanızı ve yazmanızı sağlar.

ARDUINO IDE KURULUMU VE KULLANIMI


Arduino, elektronik projeler geliştirmek için popüler bir platformdur. Arduino IDE, Arduino kartlarını
programlamak için kullanılan resmi entegre geliştirme ortamıdır. Arduino IDE'nin kurulumu ve kullanımı
aşağıdaki adımlarla gerçekleştirilebilir:

Arduino IDE Kurulumu:

Arduino IDE'nin en son sürümünü resmi web sitesinden indirin.

İndirilen dosyayı açın ve kurulum sihirbazını takip edin. Kurulum sırasında birkaç seçenekle karşılaşabilirsiniz,
bunları ihtiyacınıza göre ayarlayın.

Kurulum tamamlandıktan sonra, Arduino IDE'yi başlatın.

Arduino IDE Kullanımı:

Arduino kartınızı USB kablosuyla bilgisayara bağlayın.

Arduino IDE'de "Tools" menüsünden "Board" seçeneğine tıklayın ve kullanmak istediğiniz Arduino kartını seçin.

"Tools" menüsünden "Port" seçeneğine tıklayın ve Arduino kartınızın bağlı olduğu seri portu seçin.

Arduino kodunuzu yazın. Arduino IDE'de birçok örnek kod bulunabilir veya kendi kodunuzu yazabilirsiniz.

Kodunuzu test etmek için "Sketch" menüsünden "Upload" seçeneğine tıklayın. Kod, Arduino kartınıza yüklenir
ve çalıştırılır.

Arduino kartınızı kullanarak farklı elektronik projeler geliştirebilirsiniz. Arduino IDE'de bulunan örnek projeleri
inceleyebilir veya kendi projelerinizi oluşturabilirsiniz.

10
Arduino IDE'nin kullanımı, Arduino kartlarının programlanması için birçok kaynak ve öğretici videoya da
erişebileceğiniz kadar kolaydır. Başlamak için, Arduino öğrenme sayfasını ziyaret edebilirsiniz.

ARDUINO DERS 7
ARDUINO KÜTÜPHANE EK LEME
Arduino kütüphaneleri, projelerinizde kullanabileceğiniz önceden yazılmış kod parçalarıdır. Bu kütüphaneleri
projenize eklemek oldukça kolaydır. Aşağıdaki adımları takip ederek Arduino kütüphanesi nasıl eklenir
öğrenebilirsiniz:

1. İnternet tarayıcınızı açın ve arduino.cc adresine gidin.

2. Üst menüdeki "Software" (Yazılım) düğmesine tıklayın ve "Library Manager" (Kütüphane Yöneticisi)
seçeneğini seçin.

3. Aradığınız kütüphaneyi arayın veya "Filter your search" (Aramanızı Filtreleyin) alanına kütüphane adını
yazın.

4. Aradığınız kütüphaneyi bulduktan sonra, "Install" (Yükle) düğmesine tıklayın.

5. Yükleme işlemi tamamlandıktan sonra, Arduino IDE (Entegre Geliştirme Ortamı) programını açın.

6. Üst menüdeki "Sketch" (Çizim) düğmesine tıklayın ve "Include Library" (Kütüphane Ekle) seçeneğini
seçin.

7. Açılan alt menüde, yüklediğiniz kütüphanenin adını bulun ve seçin.

Bu adımları takip ettikten sonra, kütüphaneyi projenizde kullanabilirsiniz.

ARDUINO DERS 8
ARDUINO TEMEL EĞİTİM FONKSİYONLARI
Arduino, mikrokontrolör tabanlı bir platform olduğu için birçok temel fonksiyonu bulunmaktadır. Bunlardan
bazıları şunlardır:

1. pinMode(pin, mode): Bu fonksiyon, bir pinin INPUT veya OUTPUT olarak ayarlanmasını sağlar. Pin
modu INPUT olarak ayarlanırsa, Arduino'ya bağlı olan bir sensörden veya başka bir cihazdan veri
okunabilir. Pin modu OUTPUT olarak ayarlanırsa, Arduino'dan başka bir cihaza veri gönderilebilir.

2. digitalWrite(pin, value): Bu fonksiyon, bir pinin durumunu HIGH veya LOW olarak ayarlar. HIGH, 5 volt
sinyalini temsil ederken, LOW 0 volt sinyalini temsil eder. Bu fonksiyon, OUTPUT modunda olan bir pini
kontrol etmek için kullanılır.

3. digitalRead(pin): Bu fonksiyon, bir pinden gelen dijital sinyali okur. Bu fonksiyon, INPUT modunda olan
bir pini kontrol etmek için kullanılır.

4. analogRead(pin): Bu fonksiyon, bir pinden gelen analog sinyali okur. Bu fonksiyon, INPUT modunda
olan bir pini kontrol etmek için kullanılır.

5. analogWrite(pin, value): Bu fonksiyon, bir pini PWM (Pulse Width Modulation) moduna ayarlar. Bu,
belirli bir frekansta ve belirli bir duty cycle'la (yüksek seviye süresi) sinyal üretir. Bu fonksiyon, OUTPUT
modunda olan bir pini kontrol etmek için kullanılır.

6. delay(ms): Bu fonksiyon, belirli bir süre boyunca programın çalışmasını duraklatır. ms (milisaniye)
olarak verilen değer, duraklatma süresini belirler.

11
Bu fonksiyonlar, Arduino'nun temel işlevlerini gerçekleştirmek için kullanılır. Bunların yanı sıra, daha birçok
fonksiyon ve kütüphane mevcuttur ve bunlar Arduino'nun daha gelişmiş özelliklerini kullanmamızı sağlar.

SETUP, LOOP, PINMODE , DIGITALWRITE, DELA Y


Arduino, mikrokontrolör tabanlı bir platform olduğu için birçok temel fonksiyonu bulunmaktadır. Bunlardan
bazıları şunlardır:

pinMode(pin, mode): Bu fonksiyon, bir pinin INPUT veya OUTPUT olarak ayarlanmasını sağlar. Pin modu INPUT
olarak ayarlanırsa, Arduino'ya bağlı olan bir sensörden veya başka bir cihazdan veri okunabilir. Pin modu
OUTPUT olarak ayarlanırsa, Arduino'dan başka bir cihaza veri gönderilebilir.

digitalWrite(pin, value): Bu fonksiyon, bir pinin durumunu HIGH veya LOW olarak ayarlar. HIGH, 5 volt sinyalini
temsil ederken, LOW 0 volt sinyalini temsil eder. Bu fonksiyon, OUTPUT modunda olan bir pini kontrol etmek
için kullanılır.

digitalRead(pin): Bu fonksiyon, bir pinden gelen dijital sinyali okur. Bu fonksiyon, INPUT modunda olan bir pini
kontrol etmek için kullanılır.

analogRead(pin): Bu fonksiyon, bir pinden gelen analog sinyali okur. Bu fonksiyon, INPUT modunda olan bir pini
kontrol etmek için kullanılır.

analogWrite(pin, value): Bu fonksiyon, bir pini PWM (Pulse Width Modulation) moduna ayarlar. Bu, belirli bir
frekansta ve belirli bir duty cycle'la (yüksek seviye süresi) sinyal üretir. Bu fonksiyon, OUTPUT modunda olan bir
pini kontrol etmek için kullanılır.

delay(ms): Bu fonksiyon, belirli bir süre boyunca programın çalışmasını duraklatır. ms (milisaniye) olarak verilen
değer, duraklatma süresini belirler.

Bu fonksiyonlar, Arduino'nun temel işlevlerini gerçekleştirmek için kullanılır. Bunların yanı sıra, daha birçok
fonksiyon ve kütüphane mevcuttur ve bunlar Arduino'nun daha gelişmiş özelliklerini kullanmamızı sağlar.

ARDUINO DERS 9
ARDUINO SERIAL MONIT OR KULLANIMI
Arduino Serial Monitor, Arduino kartınızla bilgisayarınız arasındaki seri haberleşmeyi izlemenizi ve kontrol
etmenizi sağlayan bir araçtır. Bu araç, seri haberleşme protokollerini kullanarak Arduino kartınızla bilgisayarınız
arasında veri alışverişi yapmanıza olanak tanır.

Arduino Serial Monitor'u kullanmak için şu adımları takip edebilirsiniz:

1. Arduino IDE'yi açın ve Arduino kartınızı bilgisayarınıza bağlayın.


2. Arduino kodunuzu yazın veya açın ve yükleyin.
3. Serial.begin() komutunu Arduino kodunuzda kullanarak seri haberleşme hızını ve diğer ayarları
belirleyin. Bu komut, setup() fonksiyonunda yer alır.
4. Serial.print() veya Serial.println() komutlarıyla Arduino kartından bilgisayarınıza veri gönderin.
5. Serial.read() komutuyla bilgisayarınızdan Arduino kartına veri gönderin.
6. 6.Serial Monitor'u açmak için Arduino IDE'deki Araçlar menüsünden Serial Monitor'u seçin eya
Ctrl+Shift+M kısayolunu kullanın.

12
7. Serial Monitor penceresinde, Arduino kartından veya bilgisayarınızdan gelen verileri izleyebilir ve
girebilirsiniz.

Örneğin, aşağıdaki basit kod, Arduino kartından seri haberleşme protokolü aracılığıyla bilgisayarınıza "Hello
World!" metnini gönderir:

 void setup() {
 Serial.begin(9600); // seri haberleşme hızı 9600 baud
 }void loop() {
 Serial.println("Hello World!");
 delay(1000); // 1 saniye bekle
 }

Bu kodu yükledikten sonra, Serial Monitor'u açarak "Hello World!" metnini görebilirsiniz.

ARDUINO DERS 10
DEĞİŞKEN NEDİR? VE NASIL TANIMLANIR?
Değişken programlamanın temel taşıdır.

Programın yürütülmesi esnasında ihtiyaç duyulan bilgileri hafızada saklamak ve gerektiğinde geri çağırmak için
kullanılan kavramlardır.

Örnek :

Sıcaklık değeri, Ortam nem değeri v.b. bilgileri değişkenlerde saklanır.

Değişken Nasıl Tanımlanır?

Değişken temelde 3 parametreden oluşur.

1. Değişkenin Türü
2. Değişkenin İsmi
3. Değişkenin Değeri

Not: = atama operatörüdür.

DEĞİŞKEN TÜRLERİ NELERDİR?


1. Sayısal Türler (byte – int – long – float- double)
2. String Türler (string – char)
3. Mantıksal Türler (boolean)
4. Reel Türler (float-double)

TAM SAYI DEĞİŞKEN TÜRLERİ

13
DEĞİŞKEN ALDIĞI DEĞER ARALIKLARI BELLEKTE KAPLADIĞI
TÜRÜ BOYUT

BYTE 0 İLE 255 ARASI 1 BYTE

INT -32768 İLE +32767 ARASINDA 2 BYTE

UNSIGNED INT 0 İLE 65535 ARASINDA 2 BYTE

LONG -2.147.483.648 İLE + 2.147.483.648 4 BYTE


ARASI

UNSIGNED 0 İLE 4.294.967.295 ARASINDA 4 BYTE


LONG

NOT : TAM SAYI TÜRLERİ İÇİN YUKARIDA Kİ DEĞİŞKENLER KULLANILIR, BU DEĞİŞKEN TİPLERİNE ONDALIKLI
SAYILARI ATAMAYIZ.

ÖRNEK 25.5 GİBİ

REEL SAYI TÜRLERİ

DEĞİŞKEN ALDIĞI DEĞER ARALIKLARI BELLEKTE


TÜRÜ KAPLADIĞI BOYUT

FLOAT 3.4X10e38 İLE 3.4X10e38 ARASINDA 4 BYTE


DEĞER ALABİLİR. BASAMAK
HASSASİYETİ 7 DİR. (YAZILAN
SAYININ SONUNA F/f YAZILMALIDIR
3.12f gibi)
DOUBLE 5.0x10e324 İLE 1.7X10e308 ARASINDA 8 BYTE
DEĞER ALABİLİR. BASAMAK
HASSASİYETİ 16’DIR.

MANTIKSAL DEĞİŞKEN TÜRLERİ

DEĞİŞKEN AÇIKLAMA BELLEKTE


TÜRÜ KAPLADIĞI BOYUT

14
BOOLEAN SADECE TRUE, FALSE 2 BYTE
DEĞERLERİ ALABİLİR.

KARAKTER DEĞİŞKEN TÜ RLERİ

DEĞİŞKEN AÇIKLAMA BELLEKTE


TÜRÜ KAPLADIĞI BOYUT

CHAR TEK KARAKTER SAKLAMAK 2 BYTE


İÇİN KULLANILIR. ATANACAK
KARAKTER ‘ ‘ (TEK TIRNAK)
İÇİNE YAZARIZ.
STRING TEK KARAKTERDEN FAZLA KARAKTER SAYISINA
METİNSEL İFADELER İÇİN GÖRE DEĞİŞİR.
KULLANILIR. STRİNG
DEĞERLER “ “ (ÇİFT TIRNAK )
İÇİNE YAZARIZ.

DEĞİŞKENLER NEDEN TÜRLERE AYRILMIŞTIR?

 Belleğin (RAM) en verimli şekilde kullanılması için değişkenler çeşitli türlere


ayrılarak programlama dizayn edilmiştir.
 Dikkat etmemiz gereken aynı parametreler de işe yarayacak değişkenlerden
bellekte en az yer tutacak olanı seçmemiz gerekir.

DEĞİŞKEN İSİMLENDİRME KURALLARI NELERDİR?

1. Değişken ismi mutlaka bir harf ile başlamalıdır, bir rakam veya özel karakterle
başlayamaz.

ÖRNEK : 1led ismi yanlış bir örnektir.

Doğrusu led1 olmalıdır.

15
2. Değişken isminde boşluk bırakılamaz, bunun yerine alt çizgi karakteri
kullanılabilir.

ÖRNEK: ortam sicaklik değeri yanlış bir örnektir.

Doğrusu ortam_sicaklik_degeri olmalıdır.

3. Değişken isminde sadece harfler, rakamlar ve alt çizgi karakteri bulunabilir.

ÖRNEK: sicaklik+değeri yanlış bir örnektir. / Doğrusu sicaklik_degeri olmalıdır.

4. Değişkene verilecek isim program komutlarından oluşmamalıdır.

ÖRNEK : true, public v.b

5. Değişken ismi içerisinde Türkçe karakter bulunmamalıdır.

ÖNEMLİ NOT : AYNI TÜRDEN BİRDEN FAZLA DEĞİŞKEN TANIMINI TEK SATIRDA ARAYA VİRGÜL KOYARAK
YAZABİLİRİZ.

İnt led1=2,led=3,led=4,led=5

DEĞİŞKEN TANIMLAMA ÖRNEKLERİ

Değişken Tanımı ve Değer Atama Açıklama

Byte sicaklik = -8 Byte değişken türü 0-255 arası pozitif


sayıları tutabilir. Sicaklik değişken
tanımlama kurallarına uygundur ancak –
(eksi)8 değerini byte değişken türü tutamaz,
int değişken türü kullanılmalıydı.

String soyadi adi= “Mehmet Can” Adi soyadi değişken isminde boşluk
bırakıldığı için değişken tanımlama
kurallarına uymaz.

Char durum=a1 Değişken ismi uygun ancak char değişken


türü yalnızca tek bir karakteri tutabilir, aynı
zamanda değer tek tırnak içine yazılmalıdır.
Char secim=’x’ şeklinde kullanılabilir.

16
İnt sicaklik = 25.85 Değişken ismi uygun ancak int değişken
türü ondalıklı sayıları tutamaz. Double
sicaklik= 25,85 şeklinde kullanılabilir.

VERİ TİPLERİ
Arduino, C++ programlama dili temelli olduğundan, kullanılabilecek veri tipleri genellikle C++'ta kullanılanlarla
aynıdır. Bu veri tipleri arasında şunlar bulunur:

bool: Mantıksal değerler (true veya false) tutmak için kullanılır.

char: Bir karakteri tutmak için kullanılır. ASCII kodları kullanarak bir karakteri temsil eder.

int: Tam sayıları tutmak için kullanılır. Genellikle 2 byte uzunluğundadır.

long: Uzun tam sayıları tutmak için kullanılır. Genellikle 4 byte uzunluğundadır.

float: Ondalık sayıları tutmak için kullanılır. Genellikle 4 byte uzunluğundadır.

double: Çift hassasiyetli ondalık sayıları tutmak için kullanılır. Genellikle 8 byte uzunluğundadır.

unsigned: İşaretli olmayan tam sayıları tutmak için kullanılır.

byte: 8 bit (1 byte) uzunluğundaki değerleri tutmak için kullanılır.

Bu veri tipleri, Arduino'da kullanabileceğiniz temel veri tipleridir. Ayrıca, daha spesifik ihtiyaçlar için farklı
kütüphanelerde de farklı veri tipleri bulunabilir.

ARDUINO DERS 11
SABİTLER
Arduino'da, sabit değişkenler bir değer atandıktan sonra değiştirilemeyen değerlerdir. Bunlar, programınızın
çalışması sırasında değişmez. Sabit değişkenler "const" anahtar kelimesiyle tanımlanırlar.

Örneğin, aşağıdaki kodda "LED_PIN" sabit bir değişkendir ve LED'in bağlı olduğu pini temsil eder:

Arduino'da, sabit değişkenler bir değer atandıktan sonra değiştirilemeyen değerlerdir. Bunlar, programınızın
çalışması sırasında değişmez. Sabit değişkenler "const" anahtar kelimesiyle tanımlanırlar.

Örneğin, aşağıdaki kodda "LED_PIN" sabit bir değişkendir ve LED'in bağlı olduğu pini temsil eder:

const int LED_PIN = 13; // LED pin'i

Bu şekilde, LED_PIN değişkenine atanan değer 13 olduğundan, programın geri kalanı boyunca LED_PIN
değişkeninin değeri değiştirilemez.

Sabit değişkenler, programınızın okunabilirliğini artırabilir ve belirli bir değerin sadece bir kez atanmasını
sağlayarak hataları önleyebilir.

17
ARDUINO DERS 12
ŞARTLAR : IF, ELSE, ELSE IF
Bu şekilde, LED_PIN değişkenine atanan değer 13 olduğundan, programın geri kalanı boyunca LED_PIN
değişkeninin değeri değiştirilemez.

Sabit değişkenler, programınızın okunabilirliğini artırabilir ve belirli bir değerin sadece bir kez atanmasını
sağlayarak hataları önleyebilir.

 int x = 5;
 if (x < 10) {
 // x 10'dan küçük olduğunda yapılacak işlemler buraya yazılır
 } else {
 // x 10'dan büyük veya eşit olduğunda yapılacak işlemler buraya yazılır
 }

Bu örnekte, "x" değişkeni "10" dan küçük olduğu durumda "if" bloğundaki işlemler yapılır. Eğer "x" değişkeni
"10" dan büyük veya eşitse, "else" bloğundaki işlemler yapılır.

Aşağıda, birden fazla koşullu durum içeren bir örnek verilmiştir:

 int x = 5;
 if (x < 3) {
 // x 3'den küçük olduğunda yapılacak işlemler buraya yazılır
 } else if (x < 6) {
 // x 3 ile 5 arasında olduğunda yapılacak işlemler buraya yazılır
 } else {
 // x 6'dan büyük veya eşit olduğunda yapılacak işlemler buraya yazılır
 }

Bu örnekte, "x" değişkeninin değeri üç farklı duruma göre inceleniyor. İlk durumda, "x" değişkeni "3" ten küçük
olduğunda "if" bloğundaki işlemler yapılır. İkinci durumda, "x" değişkeni "3" ile "5" arası olduğunda “else if”
bloğunda ki işlemler yapılır. Üçüncü durumda, “x” değişkeni “6” dan büyük veya eşit “else” bloğunda ki işlemler
yapılır.

ARDUINO DERS 13
BUTON KULLANIMI İLE DIGITAL READ KONUMU
"Digital Read" komutu, Arduino veya benzeri bir mikrodenetleyici kullanılarak bir dijital giriş pimi ile bağlantılı
olan bir butondan gelen girişleri okumak için kullanılır.

Buton bağlantısı iki parçadan oluşur: bir tarafta butonun bir bacağı, diğer tarafta ise butonun diğer bacağı ile
birlikte bir 10K ohm direnç bulunur. Butonun bir bacağı, mikrodenetleyiciye bağlanan bir dijital giriş pimine,
diğer bacağı ise toprağa bağlanır.

Aşağıdaki örnek kodda, "buttonPin" olarak tanımlanan dijital giriş piminden butona bağlanan sinyali okuyoruz
ve "buttonState" adlı bir değişkene atıyoruz. Bu örnekte, eğer butona basılırsa "HIGH" (yani 1) değeri,
basılmadığında ise "LOW" (yani 0) değeri elde edilir.

 int buttonPin = 2; // Buton pimi tanımlanır

18
 int buttonState = 0; // Buton durumu tanımlanır
 void setup() {
 pinMode(buttonPin, INPUT); // Buton pimi giriş olarak tanımlanır
 Serial.begin(9600); // Seri haberleşme hızı ayarlanır
 }
 void loop() {
 buttonState = digitalRead(buttonPin); // Buton durumu okunur
 if (buttonState == HIGH) { // Eğer butona basılırsa
 Serial.println("Butona basildi"); // Seri porttan "Butona basıldı" mesajı gönderilir
 }
 delay(100); // Küçük bir gecikme eklenir
 }

Yukarıdaki kod, butona basıldığında "Butona basıldı" mesajını seri porttan gösterir. Bu mesajı Arduino IDE'deki
seri monitörü kullanarak görebilirsiniz.

ARDUINO DERS 14
RANDOM KOMUTU İLE RA STGELE SAYI ÜRETME
Arduino'da rastgele bir sayı üretmek için random() fonksiyonunu kullanabilirsiniz. Bu fonksiyon, rastgele bir sayı
üretir ve bu sayıyı belirttiğiniz minimum ve maksimum aralıkta sınırlandırabilirsiniz.

İşte örnek bir Arduino kodu:

 void setup() {
 Serial.begin(9600); // Seri haberleşmeyi başlat
 randomSeed(analogRead(0)); // Rastgele sayı üretmek için analog pini kullan
 }
 void loop() {
 int random_number = random(0, 100); // 0 ile 100 arasında bir rastgele sayı üret
 Serial.println(random_number); // Üretilen rastgele sayıyı seri monitöre yazdır
 delay(1000); // 1 saniye bekle
 }

RANDOM SEED
Random seed, rastgele sayı üretmek için kullanılan bir başlangıç noktasıdır. Bilgisayarlar ve diğer cihazlar
rastgele sayılar üretmek için algoritmalar kullanırlar, ancak bu algoritmaların başlangıç noktası olan bir sayıya
ihtiyaçları vardır. Bu sayıya random seed denir.

Aynı random seed ile çalıştığınızda, aynı rastgele sayı dizisi üretilir. Bu nedenle, bir rastgele sayı dizisi
oluşturmanın tekrarlanabilir olmasını sağlamak veya test etmek istediğiniz rastgele bir olay için aynı koşulları
oluşturmak istediğinizde, random seed kullanabilirsiniz.

ARDUINO DERS 15

19
ARDUİNO RANDOM LED YAKMAK KODU ,RANDOM LED BLİNK CODE
Arduino ile rastgele (random) bir sayı üretmek ve bu sayıya göre bir LED'i yakmak için aşağıdaki adımları
izleyebilirsiniz:

1. LED'i bağlayın: Arduino'daki bir dijital pini, bir direnç kullanarak LED'in anotuna bağlayın ve LED'in
katodunu toprağa bağlayın.

2. Arduino IDE'yi açın: Arduino IDE'yi açın ve bir yeni proje oluşturun.

3. Kodu yazın: Aşağıdaki kodu Arduino IDE'ye yazın:

 int ledPin = 2; // LED'in bağlı olduğu pin numarası


 int randomValue; // Rastgele sayıyı tutmak için değişken
 void setup() {
 pinMode(ledPin, OUTPUT); // LED'in bağlı olduğu pin çıkış olarak ayarlanır
 randomSeed(analogRead(0)); // Rastgele sayı üretmek için analog pin okunur
 }
 void loop() {
 randomValue = random(0, 255); // 0-255 arasında rastgele sayı üretilir
 analogWrite(ledPin, randomValue); // Rastgele sayı LED parlaklığını kontrol eder
 delay(500); // 500ms gecikme
 }

Bu kod, LED'in bağlı olduğu pin numarasını ve rastgele sayıyı tutmak için bir değişken tanımlar. setup()
fonksiyonu, LED pininin çıkış olarak ayarlanması ve rastgele sayı üretmek için analog pin okunması işlemlerini
gerçekleştirir. loop() fonksiyonu, rastgele bir sayı üretir ve bu sayıyı LED parlaklığını kontrol etmek için kullanır.
500ms gecikme ile döngü sürekli olarak çalışır ve LED'in parlaklığı sürekli olarak değişir.

4. Kodu yükleyin: Arduino kartınızı bilgisayarınıza bağlayın ve kodu yükleyin.

Bu işlemden sonra, LED her yarım saniyede bir rastgele bir parlaklık seviyesine sahip olacaktır.

ARDUINO DERS 16

ARDUİNO POTANSİYOMETRE NEDİR, NASIL BAĞLANIR, LED PARLAKLIĞI


AYARLAMA

Potansiyometre, elektronik devrelerde kullanılan bir direnç türüdür. Potansiyometreler, direncin değerini
değiştirebilen ve bu değişikliği çıkış voltajında veya akımında bir değişiklik yaratarak sinyal işlemede
kullanılabilen üç terminalli bir aygıttır.

Potansiyometreler, çeşitli boyutlarda ve şekillerde mevcuttur ve birçok farklı uygulama için kullanılabilirler.
Örneğin, bir potansiyometre bir ses düzenleyicisinde kullanılabilir ve kullanıcının çıkış sesinin yüksekliğini veya
tonunu ayarlamasına izin verebilir.

Potansiyometreler ayrıca aydınlatma sistemlerinde, motor hız kontrolünde ve diğer birçok uygulamada da
kullanılabilir.

20
Potansiyometreler, genellikle analog sinyallerin kontrolünde kullanılan, direnç değerini değiştirebilen elektronik
bileşenlerdir. Arduino ile potansiyometre bağlantısı oldukça kolaydır ve aşağıdaki adımları izleyerek
yapabilirsiniz:

 Potansiyometrenin üç ayağı olduğunu unutmayın: orta ayak (wiper) ve iki yan ayak (bağlantı uçları).
 Arduino'nun güç kaynağından (+5V veya +3.3V) bir yan ayak bağlantısına bir kablo bağlayın.
 Potansiyometrenin diğer yan ayak bağlantısını, Arduino'nun toprak bağlantısına (GND) bağlayın.
 Potansiyometrenin orta ayak bağlantısını, Arduino'nun analog giriş pinlerinden birine (A0, A1, A2, vb.)
bağlayın.

Bu bağlantıların Arduino üzerinde nasıl görünebileceğini gösteren bir diyagram aşağıdaki gibidir:

MARKDOWN

 +5V veya +3.3V


 |
 \
 / Potansiyometre
 \
 |
 GND
 |
 \
 / Potansiyometre
 \
 |
 A0 (veya başka bir analog giriş pini)

Bu bağlantıyı yaptıktan sonra, potansiyometreyi kontrol etmek için Arduino kodu yazabilirsiniz. Örneğin,
potansiyometrenin değerini okuyan ve seri monitöre yazan aşağıdaki kodu kullanabilirsiniz:

C++

 void setup() {
 Serial.begin(9600);
 }
 void loop() {
 int potValue = analogRead(A0);
 Serial.println(potValue);
 delay(10);
 }

Bu kod, A0 pininden gelen analog sinyali okur ve bu sinyalin değerini seri monitöre yazdırır. Potansiyometreyi
çevirdikçe, sinyalin değeri değişir ve bu değer monitörde görüntülenir.

21
Arduino ve potansiyometre kullanarak LED yakmak için aşağıdaki kodu kullanabilirsiniz:

 int potPin = A0; // Potansiyometre bağlantı pini A0


 int ledPin = 9; // LED bağlantı pini 9
 void setup() {
 pinMode(ledPin, OUTPUT); // LED pinini çıkış olarak ayarla
 }
 void loop() {
 int potValue = analogRead(potPin); // Potansiyometre değerini oku
 int brightness = map(potValue, 0, 1023, 0, 255); // Potansiyometre değerini 0-255 arasında ayarla
 analogWrite(ledPin, brightness); // LED parlaklığını ayarla
 }

Bu kodda, potansiyometrenin sinyal pini A0 pinine bağlıdır. LED ise 9 numaralı pine bağlıdır. Loop
fonksiyonunda, potansiyometre okunur ve okunan değer 0-255 arasında bir parlaklık değerine dönüştürülür. Bu
parlaklık değeri, analogWrite() fonksiyonu kullanılarak LED pinine yazılır ve LED parlaklığı ayarlanır.

ARDUINO DERS 17
ARDUİNO EĞİTİMİ ANAL OG DİGİTAL (DİJİTAL) VERİ VE ADC ANALOG D İGİTAL CONVERTER

Arduino, analog ve dijital veri girişleri için kullanılabilir.

Analog veri, değişken bir voltaj veya akım sinyali olarak ölçülür. Arduino, analog veri girişleri için analog pinler
sağlar. Bu pinler, 0 ila 5 volt arasındaki değişken voltajları ölçmek için kullanılabilir. Arduino'da analog veri girişi
yapmak için, analog sinyalin kaynağına bir voltaj bölücü veya sinyal amplifikatörü gibi bir devre bağlamak
gerekebilir. Arduino, analog girişleri ölçmek için analogRead() fonksiyonunu kullanır.

Dijital veri, açık veya kapalı gibi belirli bir durum olarak ölçülür. Arduino, dijital veri girişleri için dijital pinler
sağlar. Bu pinler, yalnızca açık veya kapalı durumları okuyabilirler. Arduino'da dijital veri girişi yapmak için, giriş
sinyalini düşük veya yüksek seviyelere çeviren bir devre bağlamak gerekir. Arduino, dijital girişleri okumak için
digitalRead() fonksiyonunu kullanır.

Hem analog hem de dijital veri girişleri, birçok Arduino projesinde kullanılır. Örneğin, sıcaklık, ışık veya ses
seviyesi gibi fiziksel özelliklerin ölçüldüğü birçok sensör, analog veri sağlar. Dijital girişler, düğme veya anahtar
gibi basit giriş cihazlarından gelen kullanıcı girdilerini okumak için kullanılabilir.

Arduino, dijital işleme yapabilen bir mikrodenetleyici platformudur. Analog sinyalleri dijital sinyallere
dönüştürmek için Arduino'da Analog-Dijital Dönüştürücü (ADC) kullanılır.

ADC, analog sinyalleri dijital sinyallere dönüştürmek için kullanılan bir elektronik devredir. Bu dönüştürme
işlemi, örnekleme ve kuantalama adımlarından oluşur. Örnekleme, analog sinyalin belirli aralıklarla
örneklenerek, belirli zaman dilimlerindeki örneklerin alınmasıdır. Kuantalama ise, örnekleme işlemi sonucu elde
edilen sinyalin belirli aralıklarda dijital değerlere dönüştürülmesidir.

22
Arduino'daki ADC, analog sinyalleri dijital değerlere dönüştürerek mikrodenetleyicinin dijital giriş pinlerine
aktarır. Bu sayede analog sensörlerin verileri okunarak, Arduino'da dijital işlem yapılabilir hale gelir.

ARDUINO DERS 18
ARDUİNO POTANSİYOMET RE İLE ANALOG DEĞER OKUMA (ANALOG READ )

Arduino, analog sinyalleri okumak için dahili bir analog-dijital dönüştürücü (ADC) kullanır. Bu sayede, Arduino
mikrodenetleyicileri potansiyometrelerin gibi analog sinyal çıkışı olan sensörlerden veri alabilir. Bu veriler daha
sonra işlenerek uygun çıktılar üretilir.

Potansiyometreler, üç bacağı olan ve genellikle direnç ayarlamak için kullanılan elektronik bileşenlerdir.
Potansiyometrenin orta bacağı, değişken direnç değerini çıkış olarak üretir. Bu çıkış Arduino'nun analog
pinlerine bağlanabilir ve potansiyometrenin direnci arttıkça, analog okuma değeri artar.

Arduino'da analog sinyalleri okumak için analogRead() fonksiyonu kullanılır. Bu fonksiyon, analog sinyalin bağlı
olduğu pine göre 0 ile 1023 arasında bir değer döndürür. 0, analog sinyalin hiçbir sinyal çıkarmadığı anlamına
gelirken 1023, analog sinyalin maksimum çıkış seviyesini gösterir.

Aşağıdaki kod örneği, bir potansiyometrenin orta bacağına bağlı olan analog pinin okunmasını göstermektedir:

 int analogPin = A0; // Potansiyometrenin bağlı olduğu pin


 int analogValue = 0; // Okunan analog değer
 void setup() {
 Serial.begin(9600); // Seri haberleşme hızı
 }
 void loop() {
 analogValue = analogRead(analogPin); // Analog pinin okunması
 Serial.println(analogValue); // Okunan analog değerin seri porttan gönderilmesi
 delay(100); // Okuma aralığının belirlenmesi
 }

Bu kod örneğinde, potansiyometrenin bağlı olduğu pin A0 olarak tanımlanmıştır. loop() fonksiyonunda,
analogRead() fonksiyonu kullanılarak okunan analog değer analogValue değişkenine atanır ve bu değer
Serial.print() fonksiyonu kullanılarak seri porttan gönderilir. delay() fonksiyonu ile de okuma aralığı belirlenir.

ARDUINO DERS 19

23
ARDUİNO RGB LED KULLANIMI

Arduino ile RGB LED kullanımı oldukça basittir ve kısa bir kod ile gerçekleştirilebilir. RGB LED, kırmızı, yeşil ve
mavi (RGB) renklerini karıştırarak farklı renkler oluşturabilen bir LED'dir.

RGB LED UYGULAMALARI

İşte RGB LED kullanarak Arduino'da farklı renkler oluşturmak için örnek bir kod:

 int redPin = 11; // kırmızı pim


 int greenPin = 10; // yeşil pim
 int bluePin = 9; // mavi pim
 void setup() {
 pinMode(redPin, OUTPUT);
 pinMode(greenPin, OUTPUT);
 pinMode(bluePin, OUTPUT);
 }
 void loop() {
 // kırmızı
 digitalWrite(redPin, HIGH);
 digitalWrite(greenPin, LOW);
 digitalWrite(bluePin, LOW);
 delay(1000);
 // yeşil
 digitalWrite(redPin, LOW);
 digitalWrite(greenPin, HIGH);
 digitalWrite(bluePin, LOW);
 delay(1000);
 // mavi
 digitalWrite(redPin, LOW);
 digitalWrite(greenPin, LOW);
 digitalWrite(bluePin, HIGH);
 delay(1000);
 // turuncu
 digitalWrite(redPin, HIGH);
 digitalWrite(greenPin, 0.5*HIGH);
 digitalWrite(bluePin, LOW);
 delay(1000);
 }

Bu kodda, kırmızı, yeşil ve mavi pinler, sırasıyla 11, 10 ve 9 numaralı pinler olarak tanımlanmıştır. setup()
fonksiyonunda, bu pinler çıkış olarak ayarlanır. loop() fonksiyonunda ise, önce kırmızı LED yanar ve diğer LED'ler
söner, ardından yeşil LED yanar ve diğer LED'ler söner, sonra mavi LED yanar ve diğer LED'ler söner. Son olarak,
turuncu rengi elde etmek için kırmızı ve yeşil LED'ler bir arada kullanılmıştır. 0.5 çarpanı, yeşil LED'nin
parlaklığını azaltmak için kullanılır.

24
Bu örnek kodda, delay() fonksiyonu kullanılarak LED'lerin yanma süresi 1000 milisaniye (1 saniye) olarak
ayarlanmıştır. Bu süreyi değiştirerek LED'lerin yanma süresini ayarlayabilirsiniz.

ARDUINO DERS 20
ARDUİNO ANALOGWRİTE KOMUTU
Analog write komutu, Arduino'nun PWM (Pulse Width Modulation - Darbe Genişlik Modülasyonu) özelliği ile
ilgilidir ve analog sinyal çıkışı sağlar.

Analog write komutu, belirtilen bir pinin çıkış voltajını değiştirmek için kullanılır. Bu pinler, genellikle “~” işareti
ile etiketlenir ve analog yazılmış bir komut kullanılarak çıkışları kontrol edilebilir. Örneğin, analog write(9, 127)
komutu, 9 numaralı pinin çıkış voltajını 0 ila 255 arasında bir değer olan 127'ye ayarlar.

PWM özelliği, bir sinyalin düşük voltajlı bir "duty cycle" (görev döngüsü) ile yüksek voltajlı bir "duty cycle"
arasında kesintisiz olarak değiştirilmesi yoluyla analog sinyal üretir. Bu, Arduino'da sadece belirli pinlerin analog
çıkış sağladığı anlamına gelir.

PWM özelliği, analog voltaj seviyelerini taklit ederek, belirli bir analog sinyali üretebilir. Ancak PWM sinyalleri,
analog sinyallerden farklı olarak kesintili bir dalga şekline sahiptir. PWM sinyalleri, örneğin motor hızını kontrol
etmek, LED parlaklığını ayarlamak gibi birçok uygulamada kullanılabilir.

Analog write() fonksiyonu, PWM frekansını belirlemek için bir önyükleme işlemi gerçekleştirir. Arduino Uno,
analogWrite() fonksiyonu için varsayılan olarak 490Hz PWM frekansı kullanır. Ancak, PWM frekansını
değiştirmek için farklı bir Arduino kartı kullanılıyorsa, PWM frekansını ayarlamak için özel kod yazmak
gerekebilir.

Örneğin, analog write() komutunu kullanarak LED parlaklığını ayarlamak istediğinizde, LED'i bir dirençle birlikte
belirli bir PWM çıkışına bağlamanız gerekir. Örneğin, analog write(9, 127) komutunu kullanarak 9 numaralı pine
bağlı bir LED'in parlaklığını ayarlayabilirsiniz. 127, PWM sinyalinin %50'sini temsil eder ve LED'in ortalama
parlaklığı yarıya düşürülür.

Analog write() komutu aynı zamanda ses sinyalleri üretmek için de kullanılabilir. Örneğin, analog write()
komutunu kullanarak, bir hoparlörden ton üretebilirsiniz. Bu, Arduino'yu bir müzik aleti olarak kullanmanızı
sağlar.

Özetle, analog write() komutu, Arduino'nun PWM özelliğini kullanarak analog sinyal üretmek için kullanılır.
PWM sinyalleri, birçok uygulamada kullanılabilir, özellikle motor hızını ve LED parlaklığını kontrol etmek için
kullanışlıdır.

25
PWM SİNYALİ İLE RGB LED KONTROLÜ

PWM (Pulse Width Modulation), sinyaldeki darbe genişliğini değiştirerek analog bir çıkış elde etmek için
kullanılan bir yöntemdir. RGB LED kontrolü için de PWM sinyalleri kullanılabilir. Her bir renk (kırmızı, yeşil, mavi)
için ayrı bir PWM sinyali kullanılabilir.

Aşağıdaki örnek kodda, Arduino UNO kullanılarak RGB LED kontrolü sağlanmaktadır. Bu örnekte, kırmızı, yeşil
ve mavi için üç ayrı PWM pimi kullanılmaktadır.

 int redPin = 9; // Kırmızı için PWM pini


 int greenPin = 10; // Yeşil için PWM pini
 int bluePin = 11; // Mavi için PWM pini
 void setup() {
 pinMode(redPin, OUTPUT); // Kırmızı pinini çıkış olarak ayarla
 pinMode(greenPin, OUTPUT); // Yeşil pinini çıkış olarak ayarla
 pinMode(bluePin, OUTPUT); // Mavi pinini çıkış olarak ayarla
 }
 void loop() {
 // Kırmızı LED'i yavaşça yak
 for (int i = 0; i <= 255; i++) {
 analogWrite(redPin, i);
 delay(10);
 }
 // Kırmızı LED'i yavaşça söndür
 for (int i = 255; i >= 0; i--) {
 analogWrite(redPin, i);
 delay(10);
 }
 // Yeşil LED'i yavaşça yak
 for (int i = 0; i <= 255; i++) {
 analogWrite(greenPin, i);
 delay(10);
 }
 // Yeşil LED'i yavaşça söndür
 for (int i = 255; i >= 0; i--) {
 analogWrite(greenPin, i);
 delay(10);
 }
 // Mavi LED'i yavaşça yak
 for (int i = 0; i <= 255; i++) {
 analogWrite(bluePin, i);
 delay(10);
 }
 // Mavi LED'i yavaşça söndür
 for (int i = 255; i >= 0; i--) {
 analogWrite(bluePin, i);

26
 delay(10);
 }
 }

Bu kod, kırmızı, yeşil ve mavi LED'leri yavaşça açıp kapatır. analogWrite() fonksiyonu, belirtilen PWM pini
üzerinde bir PWM sinyali üretir. İlk parametre, PWM pini numarasıdır ve ikinci parametre, PWM sinyalinin
genişliğini belirten bir değerdir. Bu değer 0 ile 255 arasında olabilir. delay() fonksiyonu, LED'in yavaşça açılıp
kapanması için bekletme süresini belirler. Bu süre milisaniye cinsindendir.

Bu kodu Arduino IDE gibi bir geliştirme ortamında açarak, Arduino kartına yükleyerek RGB LED'inizi kontrol
edebilirsiniz.

Bu örnek kodda, PWM sinyalleri tersine çevrildiği için renklerin parlaklık değerleri tersine çalışır. Yani,
analogWrite() fonksiyonuna verilen değerler 0-255 arasındaki değerin tersidir. Örneğin, analogWrite(redPin,
255) fonksiyonu, kırmızı LED'in tamamen söndürülmesine neden olurken, analogWrite(redPin, 0) fonksiyonu,
kırmızı LED'in tamamen açılmasına neden olur.

Yukarıdaki örnek kodda, her bir LED rengi için ayrı bir PWM pini kullanılır. analogWrite() fonksiyonu, pini ve 0-
255 arasındaki parlaklık değerini alır. Değer ne kadar yüksek olursa, LED o kadar parlak olur.

Ayrıca, örnek kodda her bir renk için yavaşça açma ve kapama işlemi yapılır. delay() fonksiyonu, belirtilen süre
boyunca işlemi durdurur. Bu nedenle, renklerin yavaşça açılması ve kapanması için belirtilen süre 10 ms'dir.

Eğer ortak katotlu bir RGB LED kullanıyorsanız, LED'in bağlantılarına göre örnek kodda değişiklik yapmanız
gerekebilir. LED'in katotlarını toprakla bağlayın ve her bir renk için ayrı bir anot kullanın. PWM sinyali vermek
için analogWrite() fonksiyonunda verilen değerleri değiştirmeniz gerekmez, çünkü ortak katotlu LED'lerde
yüksek değerler daha parlaklık anlamına gelir.

Örnek kodu yukarıdaki değişiklikleri yaparak ortak katotlu bir RGB LED ile kullanabilirsiniz. Ancak, LED'in
özelliklerine bağlı olarak bağlantılar ve kod farklılık gösterebilir. Bu nedenle, önce LED'in özelliklerini kontrol
etmek ve ona göre bağlantıları ve kodu ayarlamak önemlidir.

ARDUINO DERS 21
ARDUİNO FOR DÖNGÜSÜ, ARDUİNO DİZİLER

Arduino platformu, C++ programlama dilini kullanır ve C++ dilindeki for döngüsü Arduino programlama dilinde
de kullanılabilir.

For döngüsü, belirli bir kod bloğunu belirli bir sayıda kez çalıştırmak için kullanılır. Döngü, bir başlangıç değeri,
bir bitiş değeri ve artış miktarı belirtilerek yapılandırılır. Örneğin, aşağıdaki for döngüsü 0'dan 9'a kadar olan
sayıları ekrana yazdıracaktır:

for (int i = 0; i < 10; i++) {

Serial.println(i);

27
}

Bu döngü, 0'dan 9'a kadar olan sayıları ekrana yazdırmak için kullanılır. Döngünün başlangıç değeri 0'dır, bitiş
değeri 10'dur (ancak 10 dahil değildir) ve artış miktarı 1'dir. Her döngüde, i değişkeni arttırılır ve döngü koşulu
doğru olduğu sürece döngü devam eder.

Döngüyü istediğiniz şekilde yapılandırabilirsiniz. Örneğin, aşağıdaki döngü 10'dan 0'a kadar geri sayacaktır:

for (int i = 10; i >= 0; i--) {

Serial.println(i);

Bu döngüde başlangıç değeri 10, bitiş değeri 0 ve artış miktarı -1'dir. Döngü koşulu, i değişkeninin 0'dan büyük
veya eşit olması olduğu sürece doğrudur.

DİZİLER:

Arduino, C++ programlama dilini kullanarak programlanabilen bir mikrokontrolör kartıdır. Bu nedenle,
Arduino'da kullanılabilecek diziler, C++ dilinde kullanılan dizilere benzerdir.

Dizi, aynı türden birden fazla değişkeni depolamak için kullanılan bir veri yapısıdır. Arduino'da, bir dizi değişkeni
tanımlamak için şu sözdizimi kullanılır:

veri_tipi dizi_ismi [dizi_boyutu];

Burada, "veri_tipi" değişkenlerin türünü belirtir (örneğin, int, float, char, vb.), "dizi_ismi" diziye verilen ismi
belirtir ve "dizi_boyutu" ise dizinin maksimum boyutunu belirtir. Örneğin, aşağıdaki kodda, "dizi" isimli bir dizi
oluşturuluyor ve boyutu 10 olarak belirtiliyor:

int dizi[10];

Bu kod, 10 tamsayı değişkeni içeren bir dizi oluşturur.

Dizi elemanlarına erişmek için, dizi_ismi ve dizinin indis numarasını kullanarak erişim yapılır. İndis numarası
0'dan başlar ve dizinin boyutundan bir azdır. Örneğin, aşağıdaki kodda, dizi_ismi "dizi" olan dizinin 3. elemanına
erişiliyor:

dizi[2] = 5;

Bu kod, "dizi" dizisinin 3. elemanına (dizi[2]) 5 değerini atar.

Ayrıca, dizi elemanlarını for döngüsü kullanarak da dolaşabilirsiniz. Örneğin, aşağıdaki kodda, "dizi" dizisi
içindeki tüm elemanlar ekrana yazdırılır:

28
for (int i = 0; i < 10; i++) {

Serial.println(dizi[i]);

Bu kod, "dizi" dizisindeki her elemanı sırayla dolaşarak ekrana yazdırır.

ARDUİNO KARA ŞİMŞEK DEVRESİ YAPIMI

Karaşimşek devresi, adını doğal olmayan bir şekilde gökyüzünde gözlemlenen atmosferik bir olay olan kara
şimşekten almaktadır. Karaşimşek devresi, elektronik devrelerin basit bir formudur ve hobi elektroniği
meraklıları tarafından kolayca yapılabilir.

Arduino, bu devrenin kontrolörünü sağlamak için kullanılabilir. İşte Arduino kullanarak karaşimşek devresinin
yapılışına dair adımlar:

Gereksinimler:

 Arduino kartı
 1 adet LED
 1 adet 220 ohm direnç
 2 adet 10K ohm direnç
 Jumper kabloları
 Breadboard

Adımlar:

1. Arduino kartınızı bilgisayarınıza bağlayın ve Arduino IDE yazılımını açın.


2. Breadboard'a 220 ohm direnci ve LED'i yerleştirin.
3. LED'in anot (uzun bacak) ucunu breadboard'un pozitif (+) sütununa bağlayın.
4. LED'in katot (kısa bacak) ucunu 220 ohm direncin bir ucuna bağlayın.
5. 220 ohm direncin diğer ucunu Arduino'nun D13 pinine bağlayın.
6. Breadboard'a 10K ohm direnci ve başka bir jumper kablosu ekleyin.
7. Jumper kablosunun bir ucunu 10K ohm direncin bir ucuna bağlayın.

29
8. 10K ohm direncin diğer ucunu Arduino'nun A0 pinine bağlayın.
9. Breadboard'a başka bir 10K ohm direnç ve jumper kablosu ekleyin.
10. Jumper kablosunun bir ucunu 10K ohm direncin bir ucuna bağlayın.
11. 10K ohm direncin diğer ucunu Arduino'nun GND (toprak) pinine bağlayın.

Devre tamamlandığında, Arduino kartınızdan yazılım yükleyerek karaşimşek devrenizi çalıştırabilirsiniz. Yazılımı
yazmak için Arduino IDE yazılımını kullanabilirsiniz.

Örnek kod aşağıdaki gibidir:

 int ledPin = 13;


 int sensorPin = A0;
 void setup() {
 pinMode(ledPin, OUTPUT);
 pinMode(sensorPin, INPUT);
 }
 void loop() {
 int sensorValue = analogRead(sensorPin);
 if (sensorValue > 500) {
 digitalWrite(ledPin, HIGH);
 delay(50);
 digitalWrite(ledPin, LOW);
 delay(50);
 }
 }

Bu kod, A0 pimindeki analog değeri okur ve bu değer 500'den büyük olduğunda D13 pimindeki LED'i yanıp
söndürür. Bu, karaşimşek devresinin çalışma prensibine benzer bir şekilde çalışır.

Not: Bu sadece temel bir karaşimşek devresidir. Devreyi daha da geliştirmek için farklı bileşenler ve özellikler
ekleyebilirsiniz.

ARDUINO DERS 22

ARDUİNO HC SR04 ULTRASONİK MESAFE SENSÖRÜ İLE LED YAKMAK

Arduino ve HC-SR04 ultrasonik mesafe sensörü ile led yakmak oldukça basit bir işlemdir. İşlem şu şekilde
gerçekleştirilebilir:

1. Arduino kartınızı ve HC-SR04 mesafe sensörünüzü hazırlayın.


2. Daha sonra, bir led bağlantı kablosu kullanarak Arduino kartınızın dijital pimi 13'e ledi bağlayın. LED'in
anotu (+) pimine, led'in katotu (-) pimine ise 220 ohm'luk bir direnç ile bağlantı yapın. Bu şekilde,
LED'inizi kontrol etmek için bir devre oluşturmuş olacaksınız.

30
3. HC-SR04 mesafe sensörü için, VCC pimini Arduino'nun 5V pimine, GND pimini Arduino'nun GND
pimine ve Trig pimini Arduino'nun 2. dijital pimine bağlayın. Echo pimini ise Arduino'nun 3. dijital
pimine bağlayın.
4. Şimdi, Arduino IDE'yi açın ve yeni bir proje oluşturun.
5. HC-SR04 mesafe sensörü ile mesafeyi ölçmek ve LED'i yakmak için aşağıdaki kodu Arduino IDE'de
yazın:
 const int trigPin = 2; // HC-SR04 trig pini
 const int echoPin = 3; // HC-SR04 echo pini
 const int ledPin = 13; // LED pin
 long duration, distance; // mesafe ölçümü için değişkenler
 void setup() {
 pinMode(trigPin, OUTPUT); // trig pini çıkış olarak ayarlandı
 pinMode(echoPin, INPUT); // echo pini giriş olarak ayarlandı
 pinMode(ledPin, OUTPUT); // led pini çıkış olarak ayarlandı
 Serial.begin(9600); // seri port başlatıldı
 }
 void loop() {
 // HC-SR04 mesafe sensörü ile mesafe ölçümü yapılıyor
 digitalWrite(trigPin, LOW); // trig pini düşük sinyal veriyor
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH); // trig pini yüksek sinyal veriyor
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW); // trig pini tekrar düşük sinyal veriyor
 duration = pulseIn(echoPin, HIGH); // mesafe ölçümü sonucu echo pini üzerinden alınıyor
 distance = duration * 0.034 / 2; // mesafe ölçümü hesaplanıyor
 // mesafe ölçümü sonucuna göre led kontrolü yapılıyor
 if (distance <= 10) { // eğer mesafe 10 cm'den az ise
 digitalWrite(ledPin, HIGH); // led yanar
 } else { // değilse
 digitalWrite(ledPin, LOW); // led söner
 }
 Serial.print("Mesafe: ");
 Serial.print(distance);
 Serial.println(" cm");
 delay(500); // bir süre bekleniyor
 }

6. Kodu yüklemek için, Arduino kartınızı USB kablosuyla bilgisayarınıza bağlayın ve Arduino IDE'deki "Upload"
butonuna tıklayın. Kodun yüklenmesi birkaç saniye sürecektir.

7. Yüklemeyi tamamladıktan sonra, Arduino kartınızı güç kaynağına bağlayın.

8. HC-SR04 mesafe sensörüne bir engel yaklaştırdığınızda, mesafe sensörü mesafeyi ölçecek ve ölçülen mesafe
10 cm'den azsa, LED yanacaktır.

Bu şekilde, Arduino ve HC-SR04 ultrasonik mesafe sensörü ile led yakmak işlemini gerçekleştirmiş olacaksınız.

31
ARDUINO DERS 23
ARDUİNO LCD EKRAN KULLANIMI, KODLARI VE YAZI YAZDIRMA

Arduino LCD ekran, Arduino gibi mikrodenetleyicilerle birlikte kullanılan bir çıkış cihazıdır. Bu ekranlar,
kullanıcılara bir metin veya karakter dizisi görüntülemek için kullanılır. Ayrıca, giriş veya çıkış durumunu da
görüntüleyebilirler. İşte Arduino LCD ekran kullanımı ve kodları için adımlar:

Malzemelerin Hazırlanması:

1. Arduino
2. LCD Ekran
3. Potansiyometre
4. 10K Direnç
5. Jumper Kablolar

Bağlantıların Yapılması:

 LCD Ekran Pinleri: VSS - GND VDD - 5V VO –


 Potansiyometre orta pini RS - 12 RW - GND E - 11 D4 - 5 D5 - 4 D6 - 3 D7 - 2 A - 5V K - GND
 Potansiyometre Pinleri: GND - GND VCC - 5V Out - VO Pinine bağlı

Kodun Yazılması:

 #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


 void setup() {
 lcd.begin(16, 2);
 lcd.setCursor(0,0);
 lcd.print("Merhaba!"); }
 void loop() { lcd.setCursor(0, 1);
 lcd.print("ChatGPT!");
 delay(1000);
 lcd.setCursor(0, 1);
 lcd.print(" ");
 delay(1000); }

Kodun Açıklanması:

İlk önce, LiquidCrystal kütüphanesi Arduino koduna dahil edilir.

Ardından, lcd nesnesi oluşturulur ve bu nesne, LCD ekranın bağlandığı pinleri tanımlar.

setup() fonksiyonunda, lcd ekranının boyutu belirtilir (16 sütun, 2 satır) ve ekrana "Merhaba!" yazısı yazdırılır.

loop() fonksiyonunda, cursor (imleç) pozisyonu belirlenir (ilk satırın altına, sol köşeye) ve "ChatGPT!" yazısı
yazdırılır. Daha sonra, bir saniye beklenir ve imleç pozisyonu temizlenir (yani, birinci satırın altındaki tüm
karakterler silinir) ve tekrar bir saniye beklenir. Bu işlem sonsuz bir döngüde devam eder.

Kodun Yüklenmesi ve Çalıştırılması:

32
Kod, Arduino IDE'de yazılır ve yüklenir.

Arduino ve LCD ekranı USB kablosu aracılığıyla bilgisayara bağlanır.

Arduino IDE'de Serial Monitor açılır ve LCD ekranın yazdıkları burada takip edilir.

Yukarıdaki kod, LCD ekranın bir satırında "Merhaba Dünya”başa!" ve ikinci satırında "ChatGPT!" yazdırmaktadır.
Ekranda yazdırılacak metni değiştirmek için lcd.print() fonksiyonunun içindeki metni düzenleyebilirsiniz.
Örneğin, "Hello World!" yazdırmak için şu satırı kullanabilirsiniz:

python code

lcd.print("Hello World!");

Ayrıca, lcd.setCursor() fonksiyonu kullanılarak imleçin konumu da değiştirilebilir. İlk parametre satır numarasını,
ikinci parametre sütun numarasını belirtir. Örneğin, imlecin konumunu ikinci satırın ortasına taşımak için şu
satırı kullanabilirsiniz:

lcd.setCursor(8, 1);

Sonuç olarak, Arduino LCD ekran kullanarak yazı yazdırma oldukça basittir. LCD ekranını kullanarak sensör
verileri, mesajlar ve diğer bilgiler gibi birçok şeyi görüntüleyebilirsiniz.

ARDUINO DERS 24
ARDUİNO PARK SENSÖRÜ (ARDUİNO MESAFE SENSÖRÜ )

Arduino ile bir park sensörü yapmak oldukça kolaydır. İşte adım adım yapmanız gerekenler:

Malzemeler:

 Ultrasonik sensör
 Arduino Uno
 Breadboard
 Erkek-dişi jumper kabloları
 USB kablosu

1. Ultrasonik sensörü breadboard'a bağlayın. ECHO pimi için bir dişi jumper kablosu kullanın ve TRIG pimi
için başka bir dişi jumper kablosu kullanın. Ayrıca sensörün VCC ve GND pinlerini de breadboard'un ilgili
alanlarına bağlayın.
2. Arduino Uno'yu breadboard'a bağlayın. Arduino'nun GND pini breadboard'un GND bölümüne
bağlanmalıdır. Arduino'nun 5V pini breadboard'un VCC bölümüne bağlanmalıdır.
3. Jumper kablosu yardımıyla sensörün ECHO pimini Arduino Uno'nun 7. pinine bağlayın ve TRIG pimini
Arduino Uno'nun 6. pinine bağlayın.
4. Şimdi kodlama aşamasına geçin. Arduino IDE'yi açın ve aşağıdaki kodu yazın:

33
 const int trigPin = 6;
 const int echoPin = 7;
 long duration;
 int distance;

 void setup() {
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 Serial.begin(9600);
 }

 void loop() {
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 distance = duration * 0.034 / 2;
 Serial.print("Mesafe: ");
 Serial.print(distance);
 Serial.println(" cm");
 delay(500);
 }

Bu kod, sensörden gelen verileri okur ve mesafeyi hesaplar. Sonra da mesafeyi seri bağlantı üzerinden
bilgisayara gönderir. Ayrıca mesafe değerini 500ms aralıklarla tekrar tekrar okur.

5. Son olarak, Arduino Uno'yu bilgisayarınıza USB kablosuyla bağlayın ve kodu yükleyin. Arduino Uno'yu
güç kaynağına bağladığınızda, sensörü kullanarak park mesafesini ölçebilirsiniz. Sensör nesnelere
yaklaştıkça, mesafe değişecek ve bu değer seri bağlantı aracılığıyla bilgisayarınıza gönderilecektir.

ARDUINO DERS 25
ARDUİNO 7 SEGMENT Dİ SPLAY KULLANIMI VE BACAKLARI | YEDİ SEGMENT – SEVEN SEGMENT
LED

Arduino ile 7 segment display kullanmak oldukça kolaydır ve birkaç adımda gerçekleştirilebilir. 7 segment
display, 7 ayrı LED segmentinden oluşan ve sayıları göstermek için kullanılan bir elektronik bileşendir. Arduino
ile 7 segment display kullanmak için şu adımları izleyebilirsiniz:

1. Arduino ve 7 segment display'i bir araya getirin. 7 segment display, 8 bacağa sahiptir. 4 bacağı
ortadaki anot veya katot bağlantı noktasına bağlanırken, diğer 4 bacak sayıları temsil eden her bir
segmente bağlanır.

34
2. Arduino IDE'yi açın ve yeni bir proje başlatın.
3. 7 segment display'in bacaklarını Arduino'ya bağlayın. Genellikle, ortadaki anot veya katot bağlantı
noktası, Arduino'nun dijital pinlerinden birine bağlanırken, diğer 4 bacak segmentleri, Arduino'nun
diğer dijital pinlerine bağlanır.
4. Arduino IDE'de, 7 segment display'in bağlantılarını kontrol etmek için bir kod yazın. Bu kodda,
öncelikle bağlantı noktalarını tanımlamanız ve ardından display'i kullanarak sayıları görüntülemek
için kod yazmanız gerekir.
5. Kodu yükleyin ve 7 segment display'in çalışıp çalışmadığını kontrol edin.

Birkaç örnek kod parçası verelim:

 int a = 2;
 int b = 3;
 int c = 4;
 int d = 5;
 int e = 6;
 int f = 7;
 int g = 8;
 int dp = 9;
 int digit1 = 10;
 int digit2 = 11;

 void setup() {
 pinMode(a, OUTPUT);
 pinMode(b, OUTPUT);
 pinMode(c, OUTPUT);
 pinMode(d, OUTPUT);
 pinMode(e, OUTPUT);
 pinMode(f, OUTPUT);
 pinMode(g, OUTPUT);
 pinMode(dp, OUTPUT);
 pinMode(digit1, OUTPUT);
 pinMode(digit2, OUTPUT);
 }

 void loop() {
 // Sayıları göstermek için sırayla segmentleri açarız
 digitalWrite(digit1, LOW);
 digitalWrite(g, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(a, HIGH);
 digitalWrite(dp, LOW);

35
 delay(1000); // 1 saniye bekletiriz

 digitalWrite(digit1, LOW);
 digitalWrite(g, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(e, LOW);
 digitalWrite(d, LOW);
 digitalWrite(c, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(a, LOW);
 digitalWrite(dp, LOW);
 delay(1000);

 // ve böyle devam eder


 }

Yukarıdaki örnekte, 7 segment display'in her bir bacağı Arduino'nun farklı bir dijital pini ile bağlanmıştır. Ayrıca,
iki ayrı "digit" (basamak) pini de kullanılmıştır, bu da çift basamaklı sayıları gösterebilmemize olanak tanır.

7 segment display'in bacakları genellikle şu şekildedir:

---

f| |b

|g|

---

e| |c

| |

--- . dp

Burada, her bir bacak harfi, segmentin adını temsil eder. Örneğin, "a" bacağı, 7 segment display'in üst sol
segmentini temsil ederken, "b" bacağı, üst orta segmenti temsil eder.

Ayrıca, 7 segment display'ler genellikle iki farklı tiptedir: ortak anotlu ve ortak katotlu. Ortak anotlu
display'lerde, ortak anot bacağına pozitif voltaj uygulanırken, segment bacaklarına negatif voltaj uygulanır.
Ortak katotlu display'lerde ise, tam tersi yapılır: ortak katot bacağına negatif voltaj uygulanırken, segment
bacaklarına pozitif voltaj uygulanır.

36
7 segment display'in hangi tipte olduğunu belirlemek için, datasheet'ini inceleyebilirsiniz veya bacaklardaki
bağlantıları inceleyerek tespit edebilirsiniz.

ARDUINO DERS 26
ARDUİNO 7 SEGMENT Dİ SPLAY 0-9 SAYICI DEVRESİ (COUNTER) - 7 SEGMENT SCOREBOARD

Arduino 7-segment display 0-9 sayıcı devresi yapmak için aşağıdaki adımları takip edebilirsiniz:

Malzemeler:

 Arduino Uno
 7 segment display
 220 ohm dirençler (x7)
 Jumper kablolar

Adım 1: Devre şemasını çizin 7-segment display'i kullanarak devre şemasını çizin. 7-segment display'in pinleri
anot veya katot tipine göre farklılık gösterir. Anotlu 7-segment display'i kullanacaksanız, ortak anotlu 7-segment
display'i kullanacakmış gibi bağlayın.

Adım 2: Arduino'ya bağlayın 7-segment display'in pinlerini, dirençleri ve Arduino'yu bağlayın. 7-segment
display'in her bir segmentinin her bir pini 220 ohm direnç ile Arduino'daki dijital pinlere bağlanmalıdır.

Adım 3: Kodu yazın ve yükleyin Arduino IDE'yi açın ve aşağıdaki kodu yazın. Ardından, Arduino'ya yükleyin.

 int pinA = 2;
 int pinB = 3;
 int pinC = 4;
 int pinD = 5;
 int pinE = 6;
 int pinF = 7;
 int pinG = 8;
 int count = 0;
 void setup() {
 pinMode(pinA, OUTPUT); p
 inMode(pinB, OUTPUT);
 pinMode(pinC, OUTPUT);
 pinMode(pinD, OUTPUT);
 pinMode(pinE, OUTPUT);
 pinMode(pinF, OUTPUT);
 pinMode(pinG, OUTPUT); }
 void loop() {
 if (count == 0) {
 digitalWrite(pinA, HIGH);
 digitalWrite(pinB, HIGH);
 digitalWrite(pinC, HIGH);
 digitalWrite(pinD, HIGH);

37
 digitalWrite(pinE, HIGH);
 digitalWrite(pinF, HIGH);
 digitalWrite(pinG, LOW); }
 else if (count == 1) {
 digitalWrite(pinA, LOW);
 digitalWrite(pinB, HIGH);
 digitalWrite(pinC, HIGH);
 digitalWrite(pinD, LOW);
 digitalWrite(pinE, LOW);
 digitalWrite(pinF, LOW);
 digitalWrite(pinG, LOW); }
 else if (count == 2) {
 digitalWrite(pinA, HIGH);
 digitalWrite(pinB, HIGH);
 digitalWrite(pinC, LOW);
 digitalWrite(pinD, HIGH);
 digitalWrite(pinE, HIGH);
 digitalWrite(pinF, LOW);
 digitalWrite(pinG, HIGH); }
 else if (count == 3) {
 digitalWrite(pinA, HIGH);
 digitalWrite(pinB, HIGH);
 digitalWrite(pinC, HIGH);
 digitalWrite(pinD, HIGH);
 digitalWrite(pinE, LOW);
 digitalWrite(pinF, LOW);
 digitalWrite(pinG, HIGH); }
 else if (count == 4) {
 digitalWrite(pinA, LOW);
 digitalWrite(pinB, HIGH);
 digitalWrite(pinC, HIGH);
 digitalWrite(pinD, LOW);
 digitalWrite(pinE, LOW);
 digitalWrite(pinF, HIGH);
 digitalWrite(pinG, HIGH); }
 else if (count == 5) {
 digitalWrite(pinA, HIGH);
 digitalWrite(pinB, LOW);
 digitalWrite(pinC, HIGH);
 digitalWrite(pinD, HIGH);
 digitalWrite(pinE, LOW);
 digitalWrite(pinF, HIGH);
 digitalWrite(pinG, HIGH); }
 else if (count == 6) {
 digitalWrite(pinA, HIGH);
 digitalWrite(pinB, LOW);
 digitalWrite(pinC, HIGH);
 digitalWrite(pinD, HIGH);

38
 digitalWrite(pinE, HIGH);
 digitalWrite(pinF, HIGH);
 digitalWrite(pinG, HIGH); }
 else if (count == 7) {
 digitalWrite(pinA, HIGH);
 digitalWrite(pinB, HIGH);
 digitalWrite(pinC, HIGH);
 digitalWrite(pinD, LOW);
 digitalWrite(pinE, LOW);
 digitalWrite(pinF, LOW);
 digitalWrite(pinG, LOW); }
 else if (count == 8) {
 digitalWrite(pinA, HIGH);
 digitalWrite(pinB, HIGH);
 digitalWrite(pinC, HIGH);
 digitalWrite(pinD, HIGH);
 digitalWrite(pinE, HIGH);
 digitalWrite(pinF, HIGH);
 digitalWrite(pinG, HIGH); }
 else if (count == 9) {
 digitalWrite(pinA, HIGH);
 digitalWrite(pinB, HIGH);
 digitalWrite(pinC, HIGH);
 digitalWrite(pinD, HIGH);
 digitalWrite(pinE, LOW);
 digitalWrite(pinF, HIGH);
 digitalWrite(pinG, HIGH); }
 delay(1000); // wait for a second
 count++; if (count > 9) { count = 0; } }

Bu kod, 0'dan 9'a kadar sayar ve 7-segment display'de her sayıyı gösterir.

Adım 4: Devreyi test edin Arduino'yu USB kablosuyla bilgisayara bağlayın ve devreyi test edin. 7-segment
display'de sayıların değiştiğini görmelisiniz.

Not: Bu sadece basit bir örnek devre ve kod örneğidir. İhtiyaçlarınıza ve 7-segment display'inize bağlı olarak
devrenin ve kodun farklı şekillerde tasarlanması gerekebilir.

Adım 5: Devreyi geliştirin Bu basit devreyi daha da geliştirebilirsiniz. Örneğin, aşağıdaki gibi yapabilirsiniz:

Devreyi daha görsel hale getirmek için, LED'lerle birlikte 7-segment display kullanabilirsiniz. Örneğin, her sayıyı
gösteren LED'leri ekleyebilirsiniz.

Daha büyük sayıları göstermek için, birden fazla 7-segment display kullanabilirsiniz. Bu durumda, her display
için ayrı pinler kullanmanız gerekecektir.

Sayaç hızını ayarlamak için, delay süresini değiştirebilirsiniz. Örneğin, 500 milisaniye bekletmek için delay(500)
kullanabilirsiniz.

39
Sayacı farklı bir başlangıç sayısı ile başlatmak için, count değişkeninin başlangıç değerini değiştirebilirsiniz.
Örneğin, 3'ten başlamak için int count = 3; kullanabilirsiniz.

Bu gibi geliştirmeler, devrenin işlevselliğini artırabilir ve size farklı uygulama fikirleri verebilir.

ARDUINO DERS 31
SES SENSÖRÜ DEVRESİ VE ARDUİNO İLE ALKIŞLA YANAN LED LAMBA YAKMAK

Öncelikle, bir ses sensörü devresi ve bir Arduino kullanarak bir alkışla yanacak bir LED lamba yapmak istediğinizi
varsayalım. Bu projeyi tamamlamak için aşağıdaki adımları takip edebilirsiniz:

Malzemeler:

 Arduino UNO veya benzeri bir kart


 Ses sensörü modülü
 LED lamba
 220 ohm direnç
 Jumper kabloları
 Breadboard

Adım 1: Devre Şemasını Hazırlama

Ses sensörü modülünü ve LED lambayı Arduino'ya bağlamak için bir devre şeması hazırlamanız gerekiyor. Bu
projede, ses sensörü modülünün S pinini Arduino'nun A0 pinine, LED lambanın anotunu Arduino'nun 9. pinine
ve LED lambanın katodunu 220 ohm direnç ile breadboard üzerine bağlayacağız. 220 ohm direnç, LED'in aşırı
akım almasını önleyecektir.

Adım 2: Devreyi Bağlama

Devre şemasını kullanarak devreyi bağlayın. Ses sensörü modülünün VCC pinini Arduino'nun 5V pinine, G pinini
de Arduino'nun GND pinine bağlayın.

Adım 3: Arduino Kodunu Yazma

Arduino IDE'yi açın ve aşağıdaki kodu yazın:

 const int soundSensor = A0;


 const int ledPin = 9;

40
 void setup() {
 pinMode(soundSensor, INPUT);
 pinMode(ledPin, OUTPUT);
 Serial.begin(9600);
 }

 void loop() {
 int sensorValue = analogRead(soundSensor);
 Serial.println(sensorValue);
 if (sensorValue > 500) {
 digitalWrite(ledPin, HIGH);
 } else {
 digitalWrite(ledPin, LOW);
 }
 }

Bu kod, ses sensöründen aldığı değeri okuyacak ve eğer değer 500'den büyükse, LED lambayı yanacak ve
ardından sönecek. Yani alkışlandığında LED lamba yanacak.

Adım 4: Kodu Yükleyin Kodu Arduino kartına yüklemek için, Arduino IDE'de "Upload" düğmesine tıklayın.

Adım 5: Test Etme Ses sensörüne bir alkış yaparak LED lambanın yanıp sönüp sönmediğini test edin. Eğer lamba
yanmazsa, bağlantıları ve kodu kontrol edin.

Bu adımları takip ederek bir alkışla yanacak bir LED lamba yapabilirsiniz.

ARDUINO DERS 32
SES DUYARLI LED KONTROLÜ

Arduino ile sese duyarlı LED kontrolü yapmak oldukça kolaydır. İşlem için bir Arduino kartına, bir ses sensörüne
ve bir LED'e ihtiyacınız olacak. Ayrıca, bu projeyi yapmak için Arduino IDE yazılımı yüklü olmalıdır.

İşlemin adımları şöyledir:

1. Arduino kartınızı bilgisayarınıza bağlayın ve Arduino IDE yazılımını açın.

2. Yeni bir proje oluşturun ve kodlama yapmak için boş bir dosya açın.

3. Ses sensörünüzü Arduino kartınıza bağlayın. Sensörün VCC pini Arduino'nun 5V pinine, GND pini
Arduino'nun GND pinine ve AO pini ise Arduino'nun A0 pinine bağlanmalıdır.

4. LED'in pozitif bacağını (uzun bacak) Arduino'nun bir boş pinine bağlayın. LED'in negatif bacağını (kısa
bacak) ise Arduino'nun GND pinine bağlayın.

41
5. Kodlama işlemine başlamak için, öncelikle sensör değerlerini okuyacağız. Aşağıdaki kodu kullanarak
sensörün okuduğu değerleri alabilirsiniz:
int sesDegeri = analogRead(A0);

Ardından, LED'i yakmak veya söndürmek için if-else koşul yapısı kullanacağız. Eğer ses sensörünün okuduğu
değer belirli bir eşik değerinden büyükse, LED'i yakacağız. Aksi halde, LED'i söndüreceğiz. Aşağıdaki kodu
kullanarak LED'i kontrol edebilirsiniz:

 if (sesDegeri > eşikDeğeri) {


 digitalWrite(LED_PINI, HIGH);
 } else {
 digitalWrite(LED_PINI, LOW);
 }

Tamamlanmış kodlama işlemi aşağıdaki gibidir:

 const int SES_PINI = A0;


 const int LED_PINI = 13;
 const int EŞIK_DEĞERİ = 400;

 void setup() {
 pinMode(LED_PINI, OUTPUT);
 }

 void loop() {
 int sesDegeri = analogRead(SES_PINI);

 if (sesDegeri > EŞIK_DEĞERİ) {


 digitalWrite(LED_PINI, HIGH);
 } else {
 digitalWrite(LED_PINI, LOW);
 }
 }

8. Kodlama işlemi tamamlandıktan sonra, kodunuzu Arduino kartınıza yükleyin ve LED'in sensör
okumasına göre yanıp sönmesini gözlemleyin.

Not: Eşik değerini projenizin ihtiyacına göre ayarlayabilirsiniz. Eşik değeri, sensörün okuduğu ses seviyesinin ne
kadar yüksek olması gerektiğini belirler.

42
9. Projenin performansını artırmak için bazı iyileştirmeler yapabilirsiniz. Örneğin, LED'in yanıp söndürme
hızını artırmak isterseniz, delay() fonksiyonu yerine millis() fonksiyonunu kullanarak daha hızlı bir
şekilde yanıp söndürebilirsiniz.

10. Ayrıca, proje için farklı LED'ler veya farklı ses sensörleri kullanabilirsiniz. Farklı bileşenler
kullandığınızda, pin bağlantılarının doğru olduğundan emin olun.

11. Son olarak, projenizi daha da geliştirmek için farklı işlevler ekleyebilirsiniz. Örneğin, farklı sensörler
kullanarak LED'in rengini değiştirebilir veya LED'in yanıp sönme hızını farklı ses seviyelerine göre
ayarlayabilirsiniz.

12. Arduino ile sese duyarlı LED kontrolü yapmak oldukça basit ve eğlenceli bir projedir. Bu projeyi
tamamlamak, Arduino programlama becerilerinizi geliştirmenize ve elektronik projeler hakkında daha
fazla bilgi edinmenize yardımcı olacaktır.

ARDUINO DERS 33
ARDUİNO 433 MHZ RF A LICI (RECEİVER) VERİCİ (TRASMİTTER) MODÜL KULLANIMI | VİRTUAL
WİRE

Arduino, 433 MHz RF alıcı ve verici modülleri kullanarak kablosuz iletişim yapabilir. Bu modüller ucuz ve
kullanımı kolaydır. Bu modülleri kullanarak birbirine bağlı iki Arduino kartı arasında veri iletişimi
sağlayabilirsiniz.

İşlem için ihtiyacınız olan malzemeler:

 433 MHz RF alıcı modülü


 433 MHz RF verici modülü
 Arduino UNO kartı (veya benzeri)
 Breadboard
 Erkek-erkek ve erkek-dişi jumper kabloları

RF Alıcı ve Verici Modüllerinin Bağlantısı

43
RF alıcı modülünün bağlantıları:

 GND: Arduino GND pinine bağlanır.


 VCC: Arduino 5V pinine bağlanır.
 DATA: Arduino D2 pinine bağlanır.

RF verici modülünün bağlantıları:

GND: Arduino GND pinine bağlanır.

VCC: Arduino 5V pinine bağlanır.

DATA: Arduino D3 pinine bağlanır.

Bu bağlantılar, alıcı ve verici modüllerinizi Arduino kartınıza bağlar.

Kodlama

Bu kod örneği, verici modülü kullanarak alıcı modülünden alınan verileri gönderir ve alıcı modülü de bu verileri
alır.

Verici Kodu:

 #include <RH_ASK.h>
 #include <SPI.h> // Bu kütüphaneyi yüklemeniz gerekiyor.

 RH_ASK driver;

 void setup()
 {
 Serial.begin(9600);
 if (!driver.init())
 Serial.println("Sürücü başlatılamadı");
 }

 void loop()
 {

44
 const char *msg = "Merhaba, Dünya!";
 driver.send((uint8_t *)msg, strlen(msg));
 driver.waitPacketSent();
 delay(1000);
 }

Alıcı Kodu:

 #include <RH_ASK.h>
 #include <SPI.h> // Bu kütüphaneyi yüklemeniz gerekiyor.

 RH_ASK driver;

 void setup()
 {
 Serial.begin(9600);
 if (!driver.init())
 Serial.println("Sürücü başlatılamadı");
 }

 void loop()
 {
 uint8_t buf[12];
 uint8_t buflen = sizeof(buf);
 if (driver.recv(buf, &buflen))
 {
 Serial.print("Alınan Mesaj: ");
 Serial.println((char *)buf);
 }
 }

Bu kod örneği, RH_ASK kütüphanesini kullanır. Bu kütüphane, verileri göndermek ve almak için kullanılır.

Alıcı kodu, bir dizi karakter olarak alınan verileri yazdırır. Bu örnekte, "Merhaba, Dünya!" mesajı gönderilir ve
alıcı kodu bu mesajı yazdırır.

Not: RF alıcı ve verici modüllerinin antenlerinin uzunluğu, kablosuz iletişimin gücünü etkileyebilir. Antenleri
olabildiğince uzun yapmanızı öneririm.

Kodlarımızda RH_ASK kütüphanesini kullanarak verileri gönderdik ve alıcıdan alındıktan sonra ekrana yazdırdık.
Ancak kodlarımızın bazı kısımlarına bakalım:

45
Verici Kodu Açıklamaları:

 #include <RH_ASK.h>: RH_ASK kütüphanesi, verileri kablosuz olarak göndermek ve almak için kullanılır.
Bu kütüphane, çeşitli kablosuz veri iletişim protokolleri için destek sağlar.
 #include <SPI.h>: SPI kütüphanesi, SPI (Serial Peripheral Interface) iletişimi için kullanılır. RF alıcı ve
verici modülleri, SPI protokolünü kullanarak Arduino ile iletişim kurarlar.
 RH_ASK driver;: RH_ASK kütüphanesinin sınıfından bir nesne oluştururuz. Bu nesne, kablosuz veri
iletişimi için kullanılır.
 void setup(): Arduino kartımız açılırken çalışacak olan kodları içerir.
 Serial.begin(9600);: Seri haberleşme hızını ayarlar. Bu örnekte, baud hızı 9600 olarak ayarlanmıştır.
 if (!driver.init()): RH_ASK sınıfındaki init() fonksiyonu, kablosuz veri iletişimi için gerekli ayarları yapar.
Eğer ayarlar başarılı bir şekilde yapılamazsa, bu satırda yer alan ifade çalışır.
 const char *msg = "Merhaba, Dünya!";: Göndermek istediğimiz mesajı tanımlarız. Bu mesaj, bir dizi
karakter olarak saklanır.
 driver.send((uint8_t *)msg, strlen(msg));: send() fonksiyonu, mesajı göndermek için kullanılır. Bu
fonksiyona, göndermek istediğimiz mesajın adresini ve uzunluğunu (byte olarak) veririz. Burada, mesaj
bir dizi karakter olduğundan, strlen() fonksiyonuyla mesajın uzunluğunu belirleriz.
 driver.waitPacketSent();: Gönderilen mesajın tamamlanması beklenir.
 delay(1000);: Mesaj gönderildikten sonra, bir saniye bekler ve döngüyü tekrar başlatır.

Alıcı Kodu Açıklamaları:

#include <RH_ASK.h>: RH_ASK kütüphanesi, verileri kablosuz olarak göndermek ve almak için kullanılır.
Bu kütüphane, çeşitli kablosuz veri iletişim protokolleri için destek sağlar.
#include <SPI.h>: SPI kütüphanesi, SPI (Serial Peripheral Interface) iletişimi için kullanılır. RF alıcı ve
verici modülleri, SPI protokolünü kullanarak Arduino ile iletişim kurarlar.
RH_ASK driver;: RH_ASK k ütüphanesinin sınıfından bir nesne oluştururuz. Bu nesne, kablosuz veri
iletişimi için kullanılır.

 void setup(): Arduino kartımız açılırken çalışacak olan kodları içerir.


 Serial.begin(9600);: Seri haberleşme hızını ayarlar. Bu örnekte, baud hızı 9600 olarak ayarlanmıştır.
 if (!driver.init()): RH_ASK sınıfındaki init() fonksiyonu, kablosuz veri iletişimi için gerekli ayarları yapar.
Eğer ayarlar başarılı bir şekilde yapılamazsa, bu satırda yer alan ifade çalışır.
 driver.setReceiveMode();: Alıcı moduna geçmek için kullanılır.
 Serial.println("Alıcı hazır");: Alıcının hazır olduğunu bildirmek için bir seri yazdırma işlemi yapılır.
 pinMode(13, OUTPUT);: LED'in bağlı olduğu pini çıkış moduna ayarlar.

46
 digitalWrite(13, LOW);: LED'i kapatmak için çıkış pini düşük seviyeye ayarlanır.
 uint8_t buf[12];: Alınan veriyi saklamak için bir dizi tanımlarız. Burada, en fazla 12 byte'lık bir veri
alabilecek şekilde ayarladık.
 uint8_t buflen = sizeof(buf);: Veri boyutunu belirleriz.
 if (driver.recv(buf, &buflen)): Alıcı, recv() fonksiyonuyla verileri almaya başlar. Eğer veri başarıyla
alınırsa, bu fonksiyon true değerini döndürür.
 Serial.print("Alınan mesaj: ");: Alınan mesajı seri yazdırma işlemiyle ekrana basarız.
 Serial.println((char*)buf);: Alınan mesajın karakter dizisine dönüştürülmüş halini ekrana basarız.
 digitalWrite(13, HIGH);: LED'i yakmak için çıkış pini yüksek seviyeye ayarlanır.
 delay(500);: LED 500 milisaniye boyunca yanar.
 digitalWrite(13, LOW);: LED'i kapatmak için çıkış pini düşük seviyeye ayarlanır. Daha sonra, alıcı verileri
yeniden almaya hazır hale gelir.

İşlevselliğin tamamını gözden geçirdiğimize göre, kodun tamamına bakalım:

 #include <RH_ASK.h>
 #include <SPI.h>

 RH_ASK driver;

 void setup()
 {
 Serial.begin(9600); // Seri haberleşme hızını ayarla
 if (!driver.init()) // Kablosuz veri iletişimi için gerekli ayarları yap
 Serial.println("RH_ASK inisializasyon hatasi");
 driver.setReceiveMode(); // Alıcı moduna geç
 Serial.println("Alıcı hazır");
 pinMode(13, OUTPUT); // LED pinini çıkış moduna ayarla
 digitalWrite(13, LOW); // LED'i kapat
 }

 void loop()
 {
 uint8_t buf[12]; // Alınan veriyi saklamak için bir dizi tanımla
 uint8_t buflen = sizeof(buf); // Veri boyutunu belirle
 if (driver.recv(buf, &buflen)) // Veriyi al ve sakla
 {
 Serial.print("Alınan mesaj: ");
 Serial.println((char*)buf);
 digitalWrite(13, HIGH); // LED'i yak
 delay(500); // LED 500 ms boyunca yanar
 digitalWrite(13, LOW); // LED'i kapat
 }

47
 }

Bu kodu Arduino IDE'de derledikten sonra, alıcının veri alması için uygun olacak şekilde bir RF verici modülüne
ihtiyacımız var. Alıcının bağlı olduğu Arduino kartının 5V pinine, verici modülünün VCC pinini, GND pinine de
verici modülünün GND pinini bağlamalıyız.

Verici modülüyle ilgili ayrıntılar ve onu kullanmak için gerekli olan kodla ilgili daha fazla bilgi için, "Arduino 433
MHz RF Verici Modül Kullanımı ve Kodlanması" başlıklı rehberimize göz atabilirsiniz.

Tamam, o zaman şimdi kodu yükleyebilir ve verici modülü ile birlikte kullanabilirsiniz. Alıcı modülün seri
monitöründe "Alıcı hazır" yazısı gözüktüğünde, verici modülü kullanarak bir mesaj gönderin ve alıcının bu
mesajı alıp LED'i yakıp söndürdüğünü gözlemleyin.

Bu örnekte, LED'in yanıp sönme süresi 500 milisaniyedir. Bu süreyi değiştirebilir ve LED'in yanma süresini
artırabilir veya azaltabilirsiniz.

Alıcının veri almasını durdurmak için alıcı modülün bağlı olduğu Arduino kartını sadece sıfırlamanız yeterlidir.
Alıcı kartın güç kaynağını kesmenize gerek yoktur.

ARDUINO DERS 34
ARDUİNO İLE (İNFRARE D - KIZILÖTESİ) TV KUMAN DA KONTROL DEVRESİ İ LE LED VE BUZZER
UYGULAMASI

Arduino ile infrared kızılötesi sinyalleri alarak TV kumandasını kontrol etmek oldukça basit bir işlemdir. Bunun
için Arduino'nun IR kütüphanesini kullanabilirsiniz. Ayrıca LED ve Buzzer gibi diğer bileşenleri de devreye dahil
edebilirsiniz.

İşlem adımlarını şu şekilde özetleyebiliriz:

Gerekli bileşenleri hazırlayın: Arduino Uno, IR alıcı sensör, IR uzaktan kumanda, LED ve buzzer.

Arduino IDE yazılımını açın ve IR kütüphanesini indirin ve yükleyin.

IR alıcı sensörü Arduino Uno'nun GND, VCC ve sinyal pimlerine bağlayın. IR alıcı sensörün sinyal pimini Arduino
Uno'nun 11 numaralı dijital pimine bağlayın.

LED'i Arduino Uno'nun 13 numaralı dijital pimine, buzzer'i ise 8 numaralı dijital pimine bağlayın.

Aşağıdaki kodu Arduino IDE'ye kopyalayın ve yükleyin.

 #include <IRremote.h>

48
 int IR_RECEIVE_PIN = 11; // IR alıcı sensör pimi
 int LED_PIN = 13; // LED pimi
 int BUZZER_PIN = 8; // Buzzer pimi
 IRrecv irrecv(IR_RECEIVE_PIN);
 decode_results results;

 void setup()
 {
 pinMode(LED_PIN, OUTPUT);
 pinMode(BUZZER_PIN, OUTPUT);
 Serial.begin(9600);
 irrecv.enableIRIn(); // IR alıcısını başlat
 }

 void loop()
 {
 if (irrecv.decode(&results)) { // IR sinyali alınırsa
 Serial.println(results.value, HEX);
 switch (results.value) {
 case 0xFFA25D: // Kumanda tuşuna göre işlem yap
 digitalWrite(LED_PIN, HIGH);
 tone(BUZZER_PIN, 1000);
 delay(500);
 noTone(BUZZER_PIN);
 digitalWrite(LED_PIN, LOW);
 break;
 case 0xFF629D:
 digitalWrite(LED_PIN, HIGH);
 tone(BUZZER_PIN, 2000);
 delay(500);
 noTone(BUZZER_PIN);
 digitalWrite(LED_PIN, LOW);
 break;
 // Diğer kumanda tuşları için de case'ler oluşturabilirsiniz
 }
 irrecv.resume(); // IR alıcısını tekrar başlat
 }
 }

IR kumandanızı yönlendirerek herhangi bir tuşa basın ve Arduino'daki LED ve buzzer'ın yanıt verdiğini
gözlemleyin.

Yukarıdaki kodda, IR sinyali alındığında Arduino'nun 13 numaralı dijital pimindeki LED yanacak ve buzzer ses
çıkaracaktır. Kodun switch-case blokları ile farklı kumanda tuşlarına farklı işlemler atanabilir.

49
Örneğin, kodda 0xFFA25D ve 0xFF629D hex değerleri, örnek olarak kullanılmıştır. Bu değerler, kullandığınız
kumandanın farklı tuşlarının hex kodlarıdır. Bu kodları değiştirerek kumandanızın farklı tuşlarını kullanabilirsiniz.

Ayrıca, buzzer ses frekansını değiştirerek farklı tonlar elde edebilirsiniz. Kodda tone(BUZZER_PIN, 1000) satırı,
buzzer'ın 1000 Hz frekansında bir ses çıkarmasını sağlar. Bu değeri değiştirerek farklı tonlar elde edebilirsiniz.

Sonuç olarak, yukarıdaki adımları takip ederek Arduino ile infrared kızılötesi sinyalleri alarak TV kumandasını
kontrol edebilir ve LED ve buzzer gibi diğer bileşenleri de devreye dahil edebilirsiniz. Bu sayede, eğlenceli ve
interaktif projeler yapabilirsiniz.

ARDUINO DERS 35
BLUETOOTH NEDİR | AR DUİNO HC-05 VE HC-06 BLUETOOTH MODÜLÜ | HC-05 VS HC-06 FARKI
NELERDİR?

Bluetooth, kablosuz iletişim protokollerinden biridir ve cihazların birbirleriyle veri alışverişi yapmasına izin verir.
Bluetooth, düşük güç tüketimi ve kablosuz bağlantı sağlama yeteneği nedeniyle birçok cihazda kullanılır.
Arduino gibi mikrokontrolör tabanlı sistemler, Bluetooth modülleri kullanarak kablosuz iletişim sağlayabilirler.

HC-05 ve HC-06, popüler Bluetooth modülleridir ve birçok farklı projede kullanılırlar. Her iki modül de Bluetooth
2.0 standardını kullanır ve TTL seri port arayüzüne sahiptir. İki modül arasındaki temel fark, firmware
yazılımındadır. HC-05 modülü daha gelişmiş bir firmware yazılımına sahiptir ve daha fazla özellik sunar, örneğin
hem Master hem de Slave modlarında çalışabilir ve AT komutları kullanarak özelleştirilebilir. HC-06 modülü ise
sadece Slave modunda çalışır ve özelleştirilebilirliği daha sınırlıdır.

HC-05 modülü ayrıca daha pahalıdır, ancak daha fazla özellik sunması nedeniyle tercih edilebilir. HC-06 modülü
daha ucuzdur ve basit projeler için yeterli olabilir. Ancak, her iki modül de güvenilir ve kolay kullanımlıdır.

ARDUINO DERS 36
ARDUİNO HC-05 HC-06 BLUETOOTH MODÜLÜ VE CEP TELEFONU İLE 4 LED NASIL YAKILIR?

Arduino ile HC-05 veya HC-06 Bluetooth modülü kullanarak cep telefonu ile 4 LED'i nasıl kontrol edebileceğinizi
aşağıda detaylı bir şekilde anlatılmıştır.

Gerekli Malzemeler:

50
 Arduino UNO
 HC-05 veya HC-06 Bluetooth Modülü
 Breadboard
 Jumper Kablolar
 Adet LED
 Adet 220 Ohm Direnç
 USB Kablosu

 int ledPin1 = 2;
 int ledPin2 = 3;
 int ledPin3 = 4;
 int ledPin4 = 5;

 void setup() {
 Serial.begin(9600);
 pinMode(ledPin1, OUTPUT);
 pinMode(ledPin2, OUTPUT);
 pinMode(ledPin3, OUTPUT);
 pinMode(ledPin4, OUTPUT);
 }

 void loop() {
 if(Serial.available() > 0){
 int value = Serial.read();
 if(value == '1'){
 digitalWrite(ledPin1, HIGH);
 digitalWrite(ledPin2, LOW);
 digitalWrite(ledPin3, LOW);
 digitalWrite(ledPin4, LOW);
 }
 else if(value == '2'){
 digitalWrite(ledPin1, LOW);
 digitalWrite(ledPin2, HIGH);
 digitalWrite(ledPin3, LOW);
 digitalWrite(ledPin4, LOW);
 }
 else if(value == '3'){
 digitalWrite(ledPin1, LOW);
 digitalWrite(ledPin2, LOW);
 digitalWrite(ledPin3, HIGH);
 digitalWrite(ledPin4, LOW);
 }
 else if(value == '4'){
 digitalWrite(ledPin1, LOW);

51
 digitalWrite(ledPin2, LOW);
 digitalWrite(ledPin3, LOW);
 digitalWrite(ledPin4, HIGH);
 }
 }
 }

Adım 3: Mobil Uygulama

Android veya iOS için bir Bluetooth terminal uygulaması indirin. Bu örnekte, Android için Bluetooth Terminal
uygulamasını kullanacağız.

Bluetooth Terminal uygulamasını açın ve bağlantı simgesine dokunun.

HC-05 veya HC-06 modülünüzü seçin ve eşleştirin.

Uygulamanın altındaki metin kutusuna "1" yazın ve "Send" düğmesine dokunun. Bu, ilk LED'in yanmasına neden
olacak. "2" yazarsanız ikinci LED, "3" yazarsanız üçüncü LED ve "4" yazarsanız dördüncü LED yanacaktır.

Bu kadar! Şimdi, cep telefonunuzla Arduino'yu kullanarak 4 LED'i kontrol edebilirsiniz.

ARDUINO DERS 37
ARDUİNO SOFTWARE SERİAL KÜTÜPHANESİ KULL ANIMI İLE BLUETOOTH SERİ HABERLEŞME
NASIL YAPILIR?

Arduino ile Bluetooth modüllerinin seri haberleşmesi, Arduino Software Serial kütüphanesi kullanılarak
yapılabilir. Aşağıdaki adımlar, Arduino ile HC-05 Bluetooth modülü kullanılarak seri haberleşme yapmak için
izlenmesi gereken adımları içerir:

Adım 1: Malzemeleri Hazırlama

 Arduino UNO veya benzeri bir model


 HC-05 Bluetooth modülü
 Breadboard
 Jumper kabloları

Adım 2: Devre Şemasını Bağlama

 Arduino UNO'nun RX pini, HC-05'in TX pinine bağlanır.


 Arduino UNO'nun TX pini, HC-05'in RX pinine bağlanır.
 HC-05'in VCC pini, Arduino UNO'nun 5V pinine bağlanır.
 HC-05'in GND pini, Arduino UNO'nun GND pinine bağlanır.

52
Adım 3: Bluetooth Modülünü Ayarlama

 HC-05 modülünü bir USB-TTL adaptörüne bağlayın.


 Arduino IDE'yi açın ve Araçlar > Seri Port > USB-TTL adaptörünün seri bağlantı noktasını seçin.
 9600 baud oranında seri haberleşme hızını ayarlayın.
 "AT" komutunu göndererek, HC-05 modülünün AT moduna girmesini sağlayın.
 AT modu etkinleştikten sonra, Bluetooth modülünün adını, PIN kodunu ve diğer ayarlarını
yapılandırabilirsiniz. (Örneğin, "AT+NAMEmybluetooth" komutunu kullanarak modülün adını
"mybluetooth" olarak değiştirebilirsiniz.)

Adım 4: Arduino Sketch'ini Yükleme

 Arduino IDE'de yeni bir boş sketch açın.


 SoftwareSerial kütüphanesini kullanmak için kodun en üst kısmına "#include <SoftwareSerial.h>"
ekleyin.
 SoftwareSerial nesnesini tanımlamak için "SoftwareSerial mySerial(rxPin, txPin);" komutunu ekleyin.
(rxPin ve txPin, Arduino pim numaralarınıza göre değiştirilmelidir.)
 "void setup()" fonksiyonunda, seri haberleşme hızını "Serial.begin(9600);" ve "mySerial.begin(9600);"
komutlarıyla ayarlayın.
 "void loop()" fonksiyonunda, Bluetooth modülünden gelen verileri okumak için "if
(mySerial.available()) { // read data }" komutunu ekleyin.
 Bluetooth modülüne veri göndermek için "mySerial.print("hello world");" gibi bir komut
kullanabilirsiniz.

Adım 5: Sketch'i Yükleyin ve Test Edin

 Arduino kartınıza yüklemek için "Upload" düğmesine tıklayın.


 HC-05 modülünün ve Arduino UNO kartının gücünü bağlayın.
 Bluetooth modülünün eşleştirilmiş cihazlar listesinde göründüğünü kontrol edin.
 Eşleştirilen cihazı seçin ve seri monitörünü açın. (Arduino IDE'ye dahil olan "Seri Monitör" aracını
kullanabilirsiniz.)
 Arduino ile Bluetooth modüllerinin seri haberleşmesi, Arduino Software Serial kütüphanesi kullanılarak
yapılabilir. Aşağıdaki adımlar, Arduino ile HC-05 Bluetooth modülü kullanılarak seri haberleşme
yapmak için izlenmesi gereken adımları içerir:
 Seri monitörde "9600 baud" hızını seçin ve "Both NL & CR" seçeneğini etkinleştirin.
 Bluetooth modülüne "hello world" gibi bir mesaj gönderin ve Arduino kartından gelen yanıtı kontrol
edin.

İşte bir örnek Arduino sketch'i, Bluetooth modülünden gelen verileri okur ve seri monitöre gösterir:

 #include <SoftwareSerial.h>

 SoftwareSerial mySerial(2, 3); // RX, TX

 void setup() {

53
 Serial.begin(9600);
 mySerial.begin(9600);
 }

 void loop() {
 if (mySerial.available()) {
 Serial.write(mySerial.read());
 }
 }

Bu kod, HC-05 modülüne bağlanmak için Arduino UNO'nun 2. ve 3. pinlerini kullanan bir SoftwareSerial nesnesi
oluşturur. "void setup()" fonksiyonunda, seri haberleşme hızları ayarlanır. "void loop()" fonksiyonunda,
Bluetooth modülünden gelen veriler okunur ve "Serial.write()" komutuyla seri monitöre yazdırılır.

ARDUINO DERS 38
ARDUİNO HC05 BLUETOO TH AT KOMUTLARI, HC -05 ŞİFRE VE AD DEĞİŞ TİRME

Arduino HC-05 Bluetooth modülü, seri haberleşme yoluyla AT (Komut) modunda çalışır. Bu modda, Bluetooth
modülüne AT komutları göndererek, modülün ayarlarını değiştirebilirsiniz. HC-05 Bluetooth modülünün AT
komutlarını kullanarak şifre ve adını değiştirebilirsiniz.

HC-05 Bluetooth modülünün AT komutlarını kullanarak, şifre ve adını değiştirmek için şu adımları
izleyebilirsiniz:

1. Arduino kartınızı bilgisayarınıza bağlayın ve Arduino IDE yazılımını açın.


2. HC-05 Bluetooth modülünü Arduino kartınıza bağlayın.
3. Arduino IDE yazılımında, yeni bir boş program dosyası oluşturun ve aşağıdaki kodu kopyalayıp
yapıştırın:

 #include <SoftwareSerial.h>

 SoftwareSerial BTSerial(2, 3); // RX, TX

 void setup() {
 Serial.begin(9600);
 BTSerial.begin(38400); // Bluetooth modülünün baud hızı
 }

54
 void loop() {
 if (BTSerial.available()) {
 Serial.write(BTSerial.read());
 }
 if (Serial.available()) {
 BTSerial.write(Serial.read());
 }
 }

4. Arduino kartınızı bilgisayarınıza bağlıyken, programı yükleyin.


5. Bluetooth modülünü Arduino kartınıza bağladıktan sonra, herhangi bir seri terminal programı (örneğin,
Arduino IDE serı monitör) açın ve aşağıdaki AT komutlarını kullanarak Bluetooth modülünün şifresini
ve adını değiştirin:

AT+NAMEyeni_ad // Yeni adınızı buraya yazın


AT+PINyeni_sifre // Yeni şifrenizi buraya yazın
AT+RESET

6. Komutları yazdıktan sonra "Enter" tuşuna basın ve modülün yanıtını gözlemleyin.

Not: HC-05 Bluetooth modülü varsayılan olarak "HC-05" adı ve "1234" şifresiyle gelir. Yeni bir şifre ve
ad belirlediğinizden emin olun ve not edin. Ayrıca, AT komutlarını göndermek için Bluetooth
modülünün bağlantısı açık ve bağlı olmalıdır.

AT komutlarının açıklaması:

1. AT+NAME: Bluetooth modülünün adını değiştirmek için kullanılır. "yeni_ad" kısmını, değiştirmek
istediğiniz ad ile değiştirin.

2. AT+PIN: Bluetooth modülünün şifresini değiştirmek için kullanılır. "yeni_sifre" kısmını, değiştirmek
istediğiniz şifre ile değiştirin.

3. AT+RESET: Bluetooth modülünü sıfırlamak için kullanılır. Ayarlarınızı değiştirdikten sonra, bu komutu
kullanarak Bluetooth modülünü sıfırlamanız önerilir.

Yukarıdaki AT komutları, Bluetooth modülünün ayarlarını değiştirir. Bu nedenle, bu komutları gönderdikten


sonra, değişikliklerin yapılıp yapılmadığını kontrol etmek için tekrar bağlantı kurmanız gerekebilir. Ayrıca, bazı
Bluetooth modülleri, AT komutlarını kabul etmek için özel bir modu etkinleştirmeniz gerektirir. Bu modun
etkinleştirilmesi ve devre dışı bırakılması için farklı AT komutları kullanılabilir. Modülünüzün belgelerine veya
üreticinin web sitesine başvurarak, doğru AT komutlarını kullanarak modülünüzün ayarlarını değiştirebilirsiniz.

ARDUINO DERS 39

55
LDR ( LİGHT DEPENDEN T RESİSTOR ) NEDİR VE ARDUİNO İLE LDR ( IŞIK SENSERÜ ) DEVRE Sİ
NASIL KURULUR? NASIL KODLANIR?

LDR (Light Dependent Resistor), ışığa bağlı direnç anlamına gelir ve çevresel ışık düzeyine duyarlılığı olan bir
elektronik bileşendir. LDR, ışığa maruz kaldığında direnci azalır ve karanlıkta direnci artar. Bu özelliği, ışığın
varlığını veya yokluğunu algılamak için kullanılabilir.

LDR, Arduino gibi bir mikrodenetleyici kullanılarak ışık sensörü olarak kullanılabilir. Aşağıdaki adımları izleyerek
LDR devresi oluşturulabilir ve Arduino kodu yazılabilir.

Malzemeler:

 LDR
 10K ohm direnç
 Breadboard
 Jumper kabloları
 Arduino Uno
 USB kablosu

Devre Şeması:

 LDR'nin bir ucunu 5V pinine bağlayın.


 LDR'nin diğer ucunu 10K ohm direnç ile bağlayın.
 10K ohm direnç, GND pinine bağlayın.
 LDR'den analog veri okumak için, A0 pinine bağlayın.

Arduino Kodu:

1. Arduino IDE'yi açın ve bir yeni dosya oluşturun.


2. Aşağıdaki kodu yazın:

 int ldrPin = A0;


 int ldrValue = 0;

 void setup() {
 Serial.begin(9600);
 }

 void loop() {

56
 ldrValue = analogRead(ldrPin);
 Serial.print("LDR Value: ");
 Serial.println(ldrValue);
 delay(1000);
 }

3. Kodda, LDR pininin A0 olduğunu tanımlayın.


4. setup() fonksiyonunda, seri bağlantı hızını 9600 baud olarak ayarlayın.
5. loop() fonksiyonunda, analogRead() fonksiyonunu kullanarak LDR değerini okuyun ve
6. Serial.print() fonksiyonunu kullanarak değeri seri monitöre yazdırın.
7. delay() fonksiyonunu yazarak kodu tamamlayın.

ARDUINO DERS 40
ARDUİNO LDR DEVRESİ İLE KARANLIKTA YANAN LED PROJESİ NASIL YAPILIR

Arduino LDR devresi ile karanlıkta yanacak bir LED projesi yapmak oldukça kolaydır. İşlem adımları şu şekildedir:

Malzemeler:

 Arduino UNO veya benzeri bir kart


 220 ohm direnç
 LDR (Işık bağımlı direnç)
 LED
 Breadboard
 Jumper kabloları

Adım 1: Devre Bağlantısı

Öncelikle, breadboard üzerinde devreyi bağlamak için gerekli bileşenleri yerleştirin. Breadboard üzerinde
arduino kartınızın GND pini ile birinci dikey sıranın bir ucunu bağlayın ve aynı sıranın diğer ucuna 220 ohm
direnci bağlayın. Direncin diğer ucunu LDR'ye bağlayın ve LDR'nin diğer ucunu arduino kartının 5V pini ile aynı
dikey sıranın bir ucuna bağlayın.

57
Aynı dikey sıranın diğer ucuna, LED'nin uzun bacağını bağlayın ve kısa bacağını arduino kartının GND pini ile
bağlayın.

Adım 2: Kod Yazma

Arduino IDE'yi açın ve aşağıdaki kodu yazın:

 int LDR = A0;


 int LED = 13;
 void setup() {
 pinMode(LED, OUTPUT);
 pinMode(LDR, INPUT);
 }
 void loop() {
 int value = analogRead(LDR);
 if (value < 500) {
 digitalWrite(LED, HIGH);
 }
 else {
 digitalWrite(LED, LOW);
 }
 }

Kod, LDR'nin okuduğu değeri kontrol eder ve bu değer 500'den düşükse, LED'yi yakar. Eğer değer 500'den
yüksekse, LED'yi söndürür.

Adım 3: Yükleme

Kodu yazdıktan sonra, Arduino kartınızı bilgisayarınıza bağlayın ve kodu yüklemek için "Upload" düğmesine
tıklayın.

Adım 4: Test Etme

Devreyi test etmek için LDR'ye ışık verin. LDR ışık seviyesini algılar ve eğer ışık seviyesi yeterince düşükse, LED
yanar.

Bu şekilde, arduino LDR devresi ile karanlıkta yanacak bir LED projesini kolayca yapabilirsiniz.

58
ARDUINO DERS 41
ARDUİNO İLE KARAŞİMŞEK DEVRESİ VE PARK SENSÖRÜ UYGULAMASI NA SIL YAPILIR?

Arduino ile Karaşimşek Devresi ve Park Sensörü Uygulaması yapmak için şu adımları takip edebilirsiniz:

Malzemeler:

 Arduino UNO veya benzeri bir kart


 Ultrasonik sensör (HC-SR04 gibi)
 8 adet 5mm LED (Kırmızı, Yeşil ve Sarı renklerinde)
 8 adet 220 ohm direnç
 Breadboard (deney tahtası)
 Jumper kablolar

Adım 1: Karaşimşek Devresi

1.1. Breadboard'a 8 adet LED ve 8 adet 220 ohm direnç yerleştirin.

1.2. Kırmızı LED'ler için dirençlerin bir ucu breadboard'un bir tarafına, diğer ucu LED'in kırmızı bacağına
bağlayın.

1.3. Yeşil LED'ler için dirençlerin bir ucu breadboard'un diğer tarafına, diğer ucu LED'in yeşil bacağına bağlayın.

1.4. Sarı LED'ler için dirençlerin bir ucu breadboard'un orta kısmına, diğer ucu LED'in sarı bacağına bağlayın.

Adım 2: Ultrasonik sensörü bağlama

2.1. Ultrasonik sensörün Vcc pini, breadboard'un bir tarafına bağlanır ve 5V pinine bağlanır.

2.2. Ultrasonik sensörün GND pini, breadboard'un diğer tarafına bağlanır ve GND pinine bağlanır.

2.3. Ultrasonik sensörün trig pini, Arduino'nun 9 numaralı dijital pinine bağlanır.

2.4. Ultrasonik sensörün echo pini, Arduino'nun 10 numaralı dijital pinine bağlanır.

59
Adım 3: Kodlama

3.1. Arduino IDE'yi açın ve aşağıdaki kodu yazın:

 #define trigPin 9
 #define echoPin 10
 #define redLED 2
 #define yellowLED 3
 #define greenLED 4

 long duration;
 int distance;
 int safetyDistance = 30;

 void setup() {
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 pinMode(redLED, OUTPUT);
 pinMode(yellowLED, OUTPUT);
 pinMode(greenLED, OUTPUT);
 }

 void loop() {
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);

 duration = pulseIn(echoPin, HIGH);


 distance = duration * 0.034 / 2;

 if (distance <= safetyDistance) {


 digitalWrite(redLED, HIGH);
 digitalWrite(yellowLED, LOW);
 digitalWrite(greenLED, LOW);
 } else if (distance > safetyDistance && distance <= 60) {
 digitalWrite(yellowLED, HIGH);
 digitalWrite(redLED, LOW);
 digitalWrite(greenLED, LOW);
 } else {
 digitalWrite(greenLED, HIGH);
 digitalWrite(redLED, LOW);
 digitalWrite(yellowLED, LOW);
 }

60
 }
3.2. Sketch -> Upload ile Arduino kartına yükleyin.

Adım 4: Test Etme

4.1. Arduino kartını USB kablosu ile bilgisayara bağlayın.

4.2. Arduino IDE'de Serial Monitor'u açın ve 9600 baud hızında ayarlayın.

4.3. Ultrasonik sensörün yakınına bir engel koyun ve LED'lerin nasıl yanıp söndüğünü izleyin.

4.4. Engeli uzaklaştırın ve LED'lerin durmasını izleyin.

Not: Güvenli mesafeyi ayarlamak için safetyDistance değişkenini değiştirebilirsiniz. Bu değeri artırarak
sensörden alınan mesafenin arttığına dikkat edin.

Bu şekilde, Arduino ile Karaşimşek Devresi ve Park Sensörü uygulamasını başarıyla gerçekleştirmiş
olursunuz.

ARDUINO DERS 42
WHİLE DÖNGÜSÜ ( WHİLE LOOP ) NEDİR

Döngüler (loops), programlama dillerinde tekrar eden işlemleri gerçekleştirmek için kullanılan yapılardır.
Döngülerin birçok çeşidi vardır, ancak "while" döngüsü, belirli bir koşulun doğru olduğu sürece bir kod bloğunu
tekrar tekrar çalıştırır.

While döngüsü, bir koşulun doğru olup olmadığını kontrol eder ve koşul doğru olduğu sürece döngü içindeki
işlemleri tekrar eder. Koşul yanlış olduğunda döngü sona erer ve program devam eder.

61
While döngüsü, aşağıdaki genel yapıya sahiptir:

while (koşul) {

// tekrar eden işlemler

Burada "koşul", döngünün her bir turunda kontrol edilen bir ifadedir. Koşul doğru olduğu sürece, "tekrar eden
işlemler" adı verilen bir dizi işlem sürekli olarak tekrar edilir. Koşul yanlış olduğunda, döngü sona erer ve
program devam eder.

Örneğin, aşağıdaki kod bloğu, "sayi" değişkeninin 10'dan küçük olduğu sürece ekrana sayıları yazdırmaya devam
eder:

int sayi = 1;

while (sayi < 10) {

System.out.println(sayi);

sayi++;

Bu kod bloğu, 1'den 9'a kadar olan sayıları ekrana yazdırır ve döngü sona erer.

ARDUINO DERS 43
ARDUİNO WHİLE DÖNGÜS Ü ÖRNEKLERİ

While döngüsü, belirli bir koşulun sağlanması durumunda tekrarlanan bir döngüdür. Arduino'da while döngüsü
kullanarak, belirli bir koşul sağlandığı sürece bir kod bloğunu tekrar tekrar çalıştırabilirsiniz.

İşte Arduino'da while döngüsü kullanarak yapılabilecek bazı örnekler:

1. LED'in sürekli olarak yanıp sönmesi:

62
 int ledPin = 13;
 void setup() {
 pinMode(ledPin, OUTPUT);
 }
 void loop() {
 while(true) {
 digitalWrite(ledPin, HIGH);
 delay(1000);
 digitalWrite(ledPin, LOW);
 delay(1000);
 }
 }
2. Potansiyometre ile LED parlaklığı ayarlama:

 int ledPin = 9;
 int potPin = A0;
 void setup() {
 pinMode(ledPin, OUTPUT);
 pinMode(potPin, INPUT);
 }
 void loop() {
 int potValue = analogRead(potPin);
 while(potValue > 0) {
 analogWrite(ledPin, potValue/4);
 potValue = analogRead(potPin);
 delay(10);
 }
 }

3. Butona basıldığında LED yanıp söner:


 int buttonPin = 2;
 int ledPin = 13;
 void setup() {
 pinMode(buttonPin, INPUT);
 pinMode(ledPin, OUTPUT);
 }
 void loop() {
 while(digitalRead(buttonPin) == HIGH) {
 digitalWrite(ledPin, HIGH);
 delay(1000);
 digitalWrite(ledPin, LOW);
 delay(1000);
 }
 }

4. Ultrasonik sensör ile mesafe ölçümü yaparak LED yakma:

63
 int triggerPin = 7;
 int echoPin = 6;
 int ledPin = 13;
 long duration;
 int distance;
 void setup() {
 pinMode(triggerPin, OUTPUT);
 pinMode(echoPin, INPUT);
 pinMode(ledPin, OUTPUT);
 }
 void loop() {
 digitalWrite(triggerPin, LOW);
 delayMicroseconds(2);
 digitalWrite(triggerPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(triggerPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 distance = duration * 0.034 / 2;
 while(distance <= 10) {
 digitalWrite(ledPin, HIGH);
 delay(500);
 digitalWrite(ledPin, LOW);
 delay(500);
 digitalWrite(triggerPin, LOW);
 delayMicroseconds(2);
 digitalWrite(triggerPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(triggerPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 distance = duration * 0.034 / 2;
 }
 }

Bu örnekler, while döngüsü kullanarak Arduino'da çeşitli işlevler gerçekleştirmenize yardımcı olabilir. Ancak
unutmayın, while döngüsü sonsuz bir döngüye dönüşebilir ve programınızın donmasına neden olabilir. Bu
nedenle, while döngüsü kullanmadan önce dikkatli bir şekilde planlama yapmanız gerekmektedir.

ARDUINO DERS 44
PIR SENSÖRÜ HAREKET SENSÖRÜ ARDUİNO İLE NASIL ÇALIŞIR? NASIL BAĞLANIR? HASSASİYET
VE ZAMAN AYARI NASIL YAPILIR?

64
PIR (Passive Infrared) sensörü, hareket algılama sensörü olarak kullanılır ve Arduino gibi mikrokontrolörlerle
birlikte kullanılarak çeşitli projelerde kullanılabilir. PIR sensörü, hareket eden bir cisim tarafından yayılan
kızılötesi radyasyonu algılar ve bu sayede hareketi tespit eder. Arduino ile PIR sensörü bağlamak için aşağıdaki
adımları izleyebilirsiniz:

Adım 1: PIR sensörü için gerekli donanımı hazırlayın.

PIR sensörü, sinyal pimi, güç pimi ve topraklama pimi gibi üç pime sahiptir. Bu nedenle, bir breadboard, jumper
kabloları ve 5V güç kaynağı veya USB kablosu gibi temel donanımlar gerektirir.

Adım 2: Arduino ve PIR sensörü arasındaki bağlantıları yapın.

PIR sensörünün sinyal pimi, Arduino'nun bir dijital giriş pini (örneğin D2) ile bağlanmalıdır. Güç pimi,
Arduino'nun 5V veya 3.3V çıkışına bağlanmalıdır ve topraklama pimi, Arduino'nun GND pini ile bağlanmalıdır.

Adım 3: Arduino kodunu yazın.

Aşağıdaki örnek kod, PIR sensörü tarafından algılanan hareketi tespit eder ve seri port aracılığıyla bilgi gönderir:

 int pirPin = 2; // PIR sensörü sinyal pimi D2'ye bağlı


 int ledPin = 13; // LED, D13 pimine bağlı

 void setup(){
 pinMode(pirPin, INPUT); // PIR sensörü girişi olarak ayarla
 pinMode(ledPin, OUTPUT); // LED çıkışı olarak ayarla
 Serial.begin(9600); // Seri portu başlat
 }

 void loop(){
 int motion = digitalRead(pirPin); // PIR sensörü çıkışını oku
 if (motion == HIGH){ // Eğer hareket algılandıysa
 digitalWrite(ledPin, HIGH); // LED'i yak
 Serial.println("Hareket algılandı!"); // Seri porta mesaj gönder
 delay(1000); // 1 saniye bekle
 }
 else{
 digitalWrite(ledPin, LOW); // LED'i söndür
 }
 }

65
Adım 4: Hassasiyet ve zaman ayarlarını yapın.

PIR sensörünün hassasiyeti ve zaman ayarları genellikle sensörün kendisinde ayarlanabilir. Sensörün üzerindeki
potansiyometreler, hassasiyeti ve zaman gecikmesini ayarlamak için kullanılabilir. Potansiyometreleri saat
yönünde veya saat tersi yönünde çevirerek ayar yapabilirsiniz. Hassasiyeti ayarlamak için genellikle "SENS"
potansiyometresi kullanılırken, zaman gecikmesini ay arlamak için "TIME" potansiyometresi kullanılır.
Potansiyometrelerin ayarlanması için kullanım kılavuzunu okumak en doğru yöntem olacaktır.

Ayrıca, Arduino kodunu değiştirerek hassasiyeti ve zaman ayarlarını da yapabilirsiniz. Örneğin, aşağıdaki kodda,
"delay" fonksiyonunun süresi değiştirilerek zaman ayarı yapılabilir:

ARDUINO DERS 45
ARDUİNO’ DA PIR – HAREKET SENSÖRÜ İLE HIRSIZ ALARM SİSTEMİ NASIL YAPILIR?

Arduino ve PIR (Passive Infrared) hareket sensörü kullanarak bir hırsız alarm sistemi yapmak oldukça kolaydır.
İşte adım adım nasıl yapacağınız:

Malzemeler:

 Arduino Uno
 PIR hareket sensörü
 Buzzer
 Breadboard
 Jumper kabloları

Adım 1: Devre Şeması

Öncelikle, Arduino ve PIR hareket sensörü devre şemasını hazırlayın. Aşağıdaki resimde bu devre şemasını
görebilirsiniz.

Adım 2: Devreyi Bağlama

Devre şemasını takip ederek, Arduino, PIR hareket sensörü ve Buzzer'ı breadboard üzerinde bağlayın.

Adım 3: Kodlama

66
Devrenizi bağladıktan sonra, Arduino IDE'yi açın ve aşağıdaki kodu yapıştırın:

 int ledPin = 13;


 int pirPin = 2;
 int buzzerPin = 11;
 void setup() {
 pinMode(ledPin, OUTPUT);
 pinMode(pirPin, INPUT);
 pinMode(buzzerPin, OUTPUT);
 Serial.begin(9600); }
 void loop() {
 int pirValue = digitalRead(pirPin);
 if (pirValue == HIGH) {
 digitalWrite(ledPin, HIGH);
 tone(buzzerPin, 1000);
 delay(500); noTone(buzzerPin); }
 else { digitalWrite(ledPin, LOW); }
 Serial.println(pirValue); }

Bu kod, PIR hareket sensörünün çıkışını okur ve hareket algılandığında LED'i ve Buzzer'ı etkinleştirir.

Adım 4: Yükleme

Kodu yüklemek için, Arduino'yu bilgisayarınıza USB kablosuyla bağlayın. Arduino IDE'deki Araçlar menüsünden
Arduino Uno'yu seçin ve ardından kodunuzu yüklemek için Yükle düğmesini tıklayın.

Adım 5: Test Etme

Sistemi test etmek için, hareket sensörünü elinizle hareket ettirin. Bu, LED'in ve Buzzer'ın etkinleşmesine neden
olacaktır.

Artık Arduino ve PIR hareket sensörü kullanarak basit bir hırsız alarm sistemi oluşturmuş oldunuz!

ARDUINO DERS 46
ARDUİNO FONKSİYON (M ETOT) TANIMLAMA NEDİ R?

Arduino'da fonksiyon veya metodun tanımlanması, belirli bir işlevi yerine getiren ve gerektiğinde çağrılabilecek
bir kod bloğunun yazılması anlamına gelir. Bu kod bloğu, program içinde tekrar tekrar kullanılabilir ve kodun
daha okunaklı ve düzenli olmasını sağlar.

Arduino'da bir fonksiyon, aşağıdaki şekilde tanımlanabilir:

 return_type function_name(parameter1, parameter2, ...) {


 // function body
 }

67
Burada:

 ‘return_type’, fonksiyonun geri dönüş değerinin türünü belirtir. Bu tür int, float, void vb.bolabilir.

 ‘function_name’, fonksiyonun adını belirtir. Bu isim, çağrıldığında fonksiyonun çalıştırılmasını sağlar.


 ‘parameter1’, ‘parameter2’, vb., fonksiyonun parametrelerini belirtir. Bu parametreler, fonksiyonun
içinde kullanılabilir ve çağrıldığında veri sağlamak için kullanılır.
 ‘function body’, fonksiyonun gerçek işlevsini içeren kod bloğudur.

Örneğin, bir LED'in yanmasını sağlayan bir fonksiyon aşağıdaki şekilde tanımlanabilir:

 void ledOn(int pin) {


 pinMode(pin, OUTPUT);
 digitalWrite(pin, HIGH);
 }

Bu fonksiyon, bir pin numarası alır ve o pini çıkış olarak ayarlar ve yüksek seviyeye (HIGH) ayarlar. Fonksiyon,
ledOn(pinNumber) şeklinde çağrılabilir ve verilen pin numarasında bir LED'in yanmasını sağlayacaktır.

ARDUINO DERS 47
ARDUİNO FONKSİYON (M ETOT) TÜRLERİ 1
Arduino'da kullanılan bazı fonksiyon (metot) türleri şunlardır:

1. Dijital I/O Fonksiyonları: Arduino'da bulunan dijital pinler, 0 veya 1 değerlerini alabilirler. Bu pinler
üzerinde yapılacak olan işlemler, dijital I/O fonksiyonları kullanılarak yapılır. pinMode(), digitalWrite(),
digitalRead() fonksiyonları dijital I/O fonksiyonlarıdır.

2. Analog I/O Fonksiyonları: Arduino'da bulunan analog pinler, 0 ile 5V arasında değişen voltaj değerlerini
alabilirler. Bu pinler üzerinde yapılacak olan işlemler, analog I/O fonksiyonları kullanılarak yapılır.
analogRead() ve analogWrite() fonksiyonları analog I/O fonksiyonlarıdır.

3. Serial İletişim Fonksiyonları: Arduino, seri iletişim protokollerini kullanarak diğer cihazlarla iletişim
kurabilir. Serial.begin(), Serial.print() ve Serial.read() fonksiyonları, seri iletişim fonksiyonlarıdır.

4. Timekeeping Fonksiyonları: Arduino'da zamanlama işlemleri yapmak için timekeeping fonksiyonları


kullanılır. delay(), millis() ve micros() fonksiyonları, timekeeping fonksiyonlarıdır.

68
5. Math Fonksiyonları: Arduino'da matematiksel işlemler yapmak için math fonksiyonları kullanılır. abs(),
sin(), cos() ve tan() fonksiyonları, math fonksiyonlarıdır.

6. String Fonksiyonları: Arduino'da metin işleme işlemleri yapmak için string fonksiyonları kullanılır.
strcat(), strcmp(), strlen() ve strcpy() fonksiyonları, string fonksiyonlarıdır.

7. Ethernet Fonksiyonları: Arduino Ethernet Shield veya Arduino Ethernet Board kullanılarak internet
bağlantısı kurulabilir. Ethernet.begin(), Ethernet.client() ve Ethernet.server() fonksiyonları, Ethernet
fonksiyonlarıdır.

8. Wireless Fonksiyonları: Arduino, kablosuz iletişim protokolleri kullanarak diğer cihazlarla iletişim
kurabilir. WiFi.begin(), WiFi.SSID() ve WiFi.status() fonksiyonları, kablosuz iletişim fonksiyonlarıdır.

ARDUINO DERS 48
ARDUİNO FONKSİYON (M ETOT) TÜRLERİ 2

9. LCD Fonksiyonları: Arduino'da LCD ekranlar kullanarak metin ve grafikleri gösterebilirsiniz. LCD
ekranları kontrol etmek için LiquidCrystal kütüphanesi kullanılır. print(), setCursor(), clear() gibi
fonksiyonlar bu kütüphanenin fonksiyonlarıdır.

10. Servo Fonksiyonları: Arduino, servo motorları kontrol etmek için Servo kütüphanesi kullanır. attach(),
write() ve read() fonksiyonları servo fonksiyonlarıdır.

11. Wire (I2C) Fonksiyonları: Arduino, I2C protokolünü kullanarak diğer cihazlarla iletişim kurabilir.
Wire.begin(), Wire.write() ve Wire.read() fonksiyonları, I2C fonksiyonlarıdır.

12. SPI Fonksiyonları: Arduino, SPI protokolünü kullanarak diğer cihazlarla iletişim kurabilir. SPI.begin(),
SPI.transfer() ve SPI.end() fonksiyonları, SPI fonksiyonlarıdır.

13. EEPROM Fonksiyonları: Arduino, EEPROM belleği kullanarak verileri kalıcı olarak saklayabilir.
EEPROM.write(), EEPROM.read() ve EEPROM.update() fonksiyonları, EEPROM fonksiyonlarıdır.

14. Tone Fonksiyonları: Arduino, ses çıkışı sağlamak için tone() ve noTone() fonksiyonlarını kullanır.

69
15. Adafruit NeoPixel Fonksiyonları: Adafruit NeoPixel, LED'lerden oluşan bir şerit üzerinden iletişim
kurarak RGB renklerinin mükemmel bir şekilde kontrol edilmesine izin veren bir kütüphanedir.
Adafruit_NeoPixel() ve strip.setPixelColor() fonksiyonları bu kütüphanenin fonksiyonlarıdır.

16. Ethernet2 Fonksiyonları: Arduino, Ethernet2 kütüphanesi kullanarak Ethernet Shield veya Arduino
Ethernet Board ile internet bağlantısı kurabilir. Ethernet2.begin(), Ethernet2.client() ve
Ethernet2.server() fonksiyonları, Ethernet2 fonksiyonlarıdır.

17. Adafruit GFX Fonksiyonları: Adafruit GFX kütüphanesi, çeşitli grafik nesneleri (metin, çizgi, daire,
üçgen, dikdörtgen vb.) çizmek için kullanılır. Adafruit_GFX fonksiyonları, bu kütüphanenin
fonksiyonlarıdır.

18. Adafruit SSD1306 Fonksiyonları: Adafruit SSD1306 kütüphanesi, OLED ekranları kontrol etmek için
kullanılır. Adafruit_SSD1306 fonksiyonları, bu kütüphanenin fonksiyonlarıdır.

19. Adafruit BME280 Fonksiyonları: Adafruit BME280 kütüphanesi, sıcaklık, nem ve basınç sensörlerini
kontrol etmek için kullanılır. Adafruit_BME280 fonksiyonları, bu kütüphanenin fonksiyonlarıdır.
20. Adafruit BMP280 Fonksiyonları: Adafruit BMP280 kütüphanesi, sıcaklık ve basınç sensörlerini kontrol
etmek için kullanılır. Adafruit_BMP280 fonksiyonları, bu kütüphanenin fonksiyonlarıdır.

ARDUINO DERS 49
ARDUİNO FONKSİYON (M ETOT) TÜRLERİ 3

21. Adafruit MAX31855 Fonksiyonları: Adafruit MAX31855 kütüphanesi, termokupl sensörleri okumak için
kullanılır. Adafruit_MAX31855 fonksiyonları, bu kütüphanenin fonksiyonlarıdır.
22. Adafruit MAX6675 Fonksiyonları: Adafruit MAX6675 kütüphanesi, K tipi termokuplları okumak için
kullanılır. Adafruit_MAX6675 fonksiyonları, bu kütüphanenin fonksiyonlarıdır.
23. Adafruit Motor Shield V2 Fonksiyonları: Adafruit Motor Shield V2 kütüphanesi, DC motorlar ve step
motorları kontrol etmek için kullanılır. Adafruit_MotorShield fonksiyonları, bu kütüphanenin
fonksiyonlarıdır.
24. Adafruit INA219 Fonksiyonları: Adafruit INA219 kütüphanesi, DC akım, gerilim ve güç ölçmek için
kullanılır. Adafruit_INA219 fonksiyonları, bu kütüphanenin fonksiyonlarıdır.
25. Adafruit FONA Fonksiyonları: Adafruit FONA kütüphanesi, GSM ağları üzerinden arama, SMS ve
internet bağlantısı sağlamak için kullanılır. Adafruit_FONA fonksiyonları, bu kütüphanenin
fonksiyonlarıdır.
26. Adafruit GFX Library Fonksiyonları: Adafruit GFX kütüphanesi, çeşitli grafik nesneleri çizmek için
kullanılır. Adafruit_GFX fonksiyonları, bu kütüphanenin fonksiyonlarıdır.
27. Adafruit TSL2561 Fonksiyonları: Adafruit TSL2561 kütüphanesi, ışık sensörlerini kontrol etmek için
kullanılır. Adafruit_TSL2561 fonksiyonları, bu kütüphanenin fonksiyonlarıdır.
28. Adafruit VL53L0X Fonksiyonları: Adafruit VL53L0X kütüphanesi, uzaklık sensörleri ile mesafeyi ölçmek
için kullanılır. Adafruit_VL53L0X fonksiyonları, bu kütüphanenin fonksiyonlarıdır.

70
29. Adafruit HMC5883L Fonksiyonları: Adafruit HMC5883L kütüphanesi, manyetik sensörleri kontrol
etmek için kullanılır. Adafruit_HMC5883L fonksiyonları, bu kütüphanenin fonksiyonlarıdır.
30. Adafruit ADS1X15 Fonksiyonları: Adafruit ADS1X15 kütüphanesi, analog sinyalleri okumak için
kullanılır. Adafruit_ADS1015 ve Adafruit_ADS1115 fonksiyonları, bu kütüphanenin fonksiyonlarıdır.
31. Adafruit INA260 Fonksiyonları: Adafruit INA260 kütüphanesi, DC akım, gerilim ve güç ölçmek için
kullanılır. Adafruit_INA260 fonksiyonları, bu kütüphanenin fonksiyonlarıdır.
32. Adafruit APDS9960 Fonksiyonları: Adafruit APDS9960 kütüphanesi, renk, ışık, hareket ve yakınlık
sensörlerini kontrol etmek için kullanılır. Adafruit_APDS9960 fonksiyonları, bu kütüphanenin
fonksiyonlarıdır.
33. Adafruit MCP4725 Fonksiyonları: Adafruit MCP4725 kütüphanesi, DAC'leri (sayısal-analog
dönüştürücü) kontrol etmek için kullanılır. Adafruit_MCP4725 fonksiyonları, bu kütüphanenin
fonksiyonlarıdır.
34. Adafruit INA169 Fonksiyonları: Adafruit INA169 kütüphanesi, DC akım ölçmek için kullanılır.
Adafruit_INA169 fonksiyonları, bu kütüphanenin fonksiyonlarıdır.

Bu sadece birkaç örnek, Arduino'da kullanılabilen birçok farklı fonksiyon ve kütüphane vardır. Her
kütüphanenin kullanımı, sağladığı işlevselliğe bağlı olarak değişebilir.

ARDUINO DERS 50
ARDUİNO İLE DC STEP SERVO VE LİNEER MOTO R KULLANIMI VE MOTOR SÜRÜCÜ SHİELD NEDİR,
NASIL KULLANIR

Arduino, DC motorlar, step motorlar ve servo motorlar gibi farklı motor türlerini kontrol etmek için
kullanılabilir. Ayrıca, lineer motorlar da kontrol edilebilir. Bu motor türleri arasında bazı farklılıklar vardır ve her
birinin farklı özellikleri ve avantajları vardır. Aşağıda, Arduino ile her bir motor türü için kullanabileceğiniz temel
bilgiler verilmiştir.

DC Motorlar:

Arduino ile DC motorları kontrol etmek için genellikle bir motor sürücü devresi kullanılır. Motor sürücü devresi,
motorun hızını ve yönünü kontrol etmek için PWM (Pulse Width Modulation) sinyalleri kullanarak motorun
sürülmesini sağlar. DC motorlar genellikle basit ve ucuzdur, ancak tam konum kontrolü yapmak zordur.

Step Motorlar:

Step motorlar, belirli adımlarla dönen bir mil üzerine monte edilmiş manyetik bobinler kullanır. Arduino ile step
motorları kontrol etmek için bir step motor sürücüsü kullanmanız gerekir. Step motor sürücüsü, motorun
hareketini kontrol etmek için dijital sinyaller kullanarak manyetik alanları değiştirir. Step motorlar tam konum
kontrolü yapmak için idealdir, ancak yüksek hızlarda çalışmak zor olabilir.

Servo Motorlar:

Servo motorlar, belirli bir açıya veya pozisyona hassas bir şekilde dönebilen bir motor türüdür. Arduino ile servo
motorları kontrol etmek için bir servo sürücü kullanmanız gerekir. Servo sürücüsü, motorun açısını kontrol

71
etmek için PWM sinyalleri kullanarak motoru sürer. Servo motorlar, hassas konum kontrolü gerektiğinde
idealdir.

Lineer Motorlar:

Lineer motorlar, döner bir mil yerine doğrusal hareket sağlayan manyetik alanlar kullanarak hareket eder.
Arduino ile lineer motorları kontrol etmek için manyetik alanları kontrol etmek için bir lineer motor sürücü
kullanmanız gerekir. Lineer motorlar yüksek hızlarda çalışabilir ve doğrusal hareket gerektiğinde idealdirler.

Genel olarak, Arduino ile DC motorlar, step motorlar, servo motorlar ve lineer motorlar gibi farklı motor türleri
kontrol edilebilir. Hangi motor türünün kullanılacağı, uygulamanın gereksinimlerine bağlıdır.

Motor Sürücü Shield:

Arduino ve benzeri mikrokontrolcüler ile motorların kontrolünü sağlamak için kullanılan bir karttır. Bu kart,
motorların hızını, yönünü ve gücünü kontrol etmek için gerekli olan sürücü devrelerini içerir.

Motor Sürücü Shield, birçok farklı motor türüne uygun olacak şekilde tasarlanmıştır. Bu motorlar arasında DC
motorlar, adım motorlar ve servo motorlar bulunur. Motor sürücü kartı, mikrokontrolcü ile haberleşmek için
birçok farklı arayüz seçeneği sunar, örneğin SPI, I2C veya UART.

Motor Sürücü Shield'ı kullanmak oldukça basittir. İlk olarak, motorların bağlantı noktalarını kartın uygun
soketlerine bağlamalısınız. Ardından, uygun motor sürücü kütüphanesini kodunuzda kullanarak motorları
kontrol etmek için gerekli komutları yazabilirsiniz. Bu komutlar, motorların hızını, yönünü ve gücünü ayarlamak
için kullanılabilir.

Motor Sürücü Shield'ın kullanımı oldukça yaygındır.

ARDUINO DERS 51
ARDUİNO POT VE BUTON İLE PWM DC MOTOR HIZ KONTROLÜ NASIL YAPILIR VE KODLANIR?

Arduino ile potansiyometre ve buton kullanarak PWM (Pulse Width Modulation) yöntemiyle DC motor hız
kontrolü yapabilirsiniz. Aşağıda adım adım yapmanız gerekenleri ve örnek bir kodu bulabilirsiniz.

Malzemeler

 Arduino Uno
 Breadboard
 DC motor
 L293D motor sürücü
 Potansiyometre
 Buton
 Jumper kabloları

72
Bağlantılar

1. L293D motor sürücüsü için güç kaynağı (+) ve (-) bağlantılarını breadboard üzerindeki 5V ve GND
pinlerine bağlayın.
2. L293D motor sürücüsünün IN1, IN2, IN3 ve IN4 pinlerini Arduino Uno'nun 8, 9, 10 ve 11 numaralı dijital
pinlerine bağlayın.
3. L293D motor sürücüsünün EN1 ve EN2 pinlerini Arduino Uno'nun 5V pinine bağlayın.
4. Potansiyometrenin VCC pinini 5V pinine, GND pinini GND pinine ve sinyal pinini Arduino Uno'nun A0
pinine bağlayın.
5. Butonun bir bacağını 5V pinine, diğer bacağını 10K direncin bir ucuna ve 10K direncin diğer ucunu GND
pinine bağlayın. Butonun diğer bacağını da Arduino Uno'nun 2 numaralı dijital pinine bağlayın.
6. DC motorun bir ucu L293D motor sürücüsündeki OUT1 veya OUT2 pinlerine, diğer ucu ise OUT3 veya
OUT4 pinlerine bağlayın.

Kod

 // DC motorun hızını kontrol etmek için PWM sinyali üreten pin


 int motorSpeedPin = 9;

 // Potansiyometrenin sinyal pininden okunan değer


 int potValue = 0;

 // Butonun durumunu saklamak için değişken


 int buttonState = 0;

 // Butonun önceki durumunu saklamak için değişken


 int lastButtonState = 0;

 // Motorun hızı
 int motorSpeed = 0;

 void setup() {
 // PWM sinyali üreten pinin çıkış olarak ayarlanması
 pinMode(motorSpeedPin, OUTPUT);

 // Butonun giriş olarak ayarlanması


 pinMode(2, INPUT);

73
 // Potansiyometreden okunan değerlerin 0-255 aralığında olması için analog pin modunun açılması
 analogReference(DEFAULT);

 // Seri haberleşmenin başlatılması


 Serial.begin(9600);
 }

 void loop() {
 // Potansiyometreden okunan değeri 0-1023 aralığından 0-255 ar a lığına dönüştürmek için 4'e
bölünmesi
 potValue = analogRead(A0) / 4;

 // Potansiyometre değeri seri portta gösteriliyor


 Serial.print("Potansiyometre: ");
 Serial.print(potValue);
 Serial.print(" ");

 // Butonun durumu okunuyor


 buttonState = digitalRead(2);

 // Buton basılıysa motor hızı arttırılıyor


 if (buttonState == HIGH && lastButtonState == LOW) {
 motorSpeed += 10;
 if (motorSpeed > 255) {
 motorSpeed = 255;
 }
 }
 / Buton serbest bırakıldıysa motor hızı azaltılıyor
 if (buttonState == LOW && lastButtonState == HIGH) {
 motorSpeed -= 10;
 if (motorSpeed < 0) {
 motorSpeed = 0;
 }
 }

 // Motor hızı seri portta gösteriliyor


 Serial.print("Motor Hızı: ");
 Serial.println(motorSpeed);

74
 // PWM sinyali kullanılarak motor hızı ayarlanıyor
 analogWrite(motorSpeedPin, motorSpeed);
 // PWM sinyali kullanılarak motor hızı ayarlanıyor
 analogWrite(motorSpeedPin, motorSpeed);

 // Buton durumu sonraki döngüde kullanmak için saklanıyor


 lastButtonState = buttonState;

 // Kısa bir bekleme süresi


 delay(50);
 }

## Açıklama

Kod, setup() ve loop() fonksiyonlarından oluşur.

### setup() Fonksiyonu

- `motorSpeedPin` değişkenine 9 atanır, bu pin PWM sinyali üretir.

- `potValue` değişkeni sıfırlanır, potansiyometreden okunan değer burada saklanacak.

- `buttonState` değişkeni sıfırlanır, butonun durumunu saklayacak.

- `lastButtonState` değişkeni sıfırlanır, butonun önceki durumunu saklayacak.

- `motorSpeed` değişkeni sıfırlanır, motorun hızı burada saklanacak.

- `pinMode()` fonksiyonu kullanılarak `motorSpeedPin` pininin çıkış olarak ayarlanması yapılır.

- `pinMode()` fonksiyonu kullanılarak 2 numaralı dijital pinin giriş olarak ayarlanması yapılır.

- `analogReference()` fonksiyonu kullanılarak potansiyometreden okunan değerlerin 0-255 aralığına


dönüştürülmesi yapılır.

- `Serial.begin()` fonksiyonu kullanılarak seri haberleşme başlatılır.

### loop() Fonksiyonu

- `analogRead()` fonksiyonu kullanılarak potansiyometreden okunan değer `potValue` değişkenine atanır.

75
- `Serial.print()` fonksiyonu kullanılarak potansiyometre değeri seri portta gösterilir.

- `digitalRead()` fonksiyonu kullanılarak butonun durumu `buttonState` değişkenine atanır.

- if koşulu kullanılarak, buton basılıysa motor hızı arttırılır. Eğer motor hızı 255'ten büyük olursa, motor hızı 255
olarak ayarlanır.

- if koşulu kullanılarak, buton serbest bırakıldıysa motor hızı azaltılır. Eğer motor hızı 0'dan küçük olursa, motor
hızı 0 olarak ayarlanır.

- Serial.print() fonksiyonu kullanılarak motor hızı seri portta gösterilir.

- analogWrite() fonksiyonu kullanılarak PWM sinyali üretilerek motor hızı ayarlanır.

- delay() fonksiyonu kullanılarak kısa bir bekleme süresi eklenir.

- Butonun son durumu, bir sonraki döngü için saklanır.

Kodun çalışması için potansiyometrenin bir ucu GND'ye, diğer ucu 5V'a ve orta pimi ise A0 pinine bağlanmalıdır.
Buton ise 2 numaralı dijital pine bağlanmalıdır.

Bu şekilde bir Arduino PWM DC motor hız kontrolü yapabilirsiniz. Ancak, her zaman olduğu gibi, bağlantıları
doğru yapmak ve motor voltajına dikkat etmek çok önemlidir. Ayrıca, motorun gerçek hızını ölçmek için bir
tachometre kullanmanız da faydalı olabilir.

Ayrıca, kodu geliştirebilirsiniz. Örneğin, motor hızını arttırmak ve azaltmak için farklı değerler kullanabilirsiniz
veya motorun hızını seri portta değil de LCD ekran veya OLED ekran gibi bir ekranda gösterebilirsiniz.

Aşağıda tamamlanmış kodu bulabilirsiniz:

 // PWM DC motor hız kontrolü için potansiyometre ve buton kullanımı


 // www.arduinocile.com

 const int motorSpeedPin = 9; // PWM çıkışı için pin


 int potValue = 0; // potansiyometre değeri
 int buttonState = 0; // buton durumu
 int lastButtonState = 0; // butonun önceki durumu
 int motorSpeed = 0; // motor hızı

 void setup() {
 pinMode(motorSpeedPin, OUTPUT); // PWM çıkışı olarak ayarla
 potValue = 0; // potansiyometre değeri sıfırla
 buttonState = 0; // buton durumunu sıfırla
 lastButtonState = 0; // butonun önceki durumunu sıfırla
 motorSpeed = 0; // motor hızını sıfırla
 pinMode(2, INPUT); // buton girişi olarak ayarla
 analogReference(DEFAULT); // potansiyometre için referans voltaj ayarla
 Serial.begin(9600); // seri haberleşme başlat
 }

76
 void loop() {
 // potansiyometre değeri okunuyor ve 0-1023 aralığından 0-255 aralığına dönüştürülüyor
 potValue = analogRead(A0) / 4;
 // potansiyometre değeri seri portta gösteriliyor
 Serial.print("Potansiyometre: ");
 Serial.print(potValue);
 Serial.print(" ");
 // butonun durumu okunuyor
 buttonState = digitalRead(2);
 // buton basılıysa motor hızı arttırılıyor
 if (buttonState == HIGH && lastButtonState == LOW) {
 motorSpeed += 20;
 if (motorSpeed > 255) {
 motorSpeed = 255;
 }
 }
 // buton serbest bırakıldıysa motor hızı azaltılıyor
 if (buttonState == LOW && lastButtonState == HIGH) {
 motorSpeed -= 20;
 if (motorSpeed < 0) {
 motorSpeed = 0;
 }
 }
 // motor hızı seri portta gösteriliyor
 Serial.print("Motor Hızı: ");
 Serial.println(motorSpeed);
 // PWM sinyali kullanılarak motor hızı ayarlanıyor
 analogWrite(motorSpeedPin, motorSpeed);

 // buton durumu sonraki döngüde kullanmak için saklanıyor


 lastButtonState = buttonState;
 // kısa bir bekleme süresi
 delay(100);

Bu kodda, butonla arttırma ve azaltma işlemi için 20 değeri kullanılmıştır. Ancak, motor hızı arttırılıp azaltılırken
kullanılan değeri potansiyometre değerine göre ayarlamak daha uygun olabilir. Böylece, daha hassas bir kontrol
sağlanabilir. Aşağıdaki kodda, potansiyometre değerine göre arttırma ve azaltma işleminde kullanılan değer,
potValue/10 olarak belirlenmiştir:

 // PWM DC motor hız kontrolü için potansiyometre ve buton kullanımı


 // www.arduinocile.com

 const int motorSpeedPin = 9; // PWM çıkışı için pin


 int potValue = 0; // potansiyometre değeri

77
 int buttonState = 0; // buton durumu
 int lastButtonState = 0; // butonun önceki durumu
 int motorSpeed = 0; // motor hızı

 void setup() {
 pinMode(motorSpeedPin, OUTPUT); // PWM çıkışı olarak ayarla
 potValue = 0; // potansiyometre değeri sıfırla
 buttonState = 0; // buton durumunu sıfırla
 lastButtonState = 0; // butonun önceki durumunu sıfırla
 motorSpeed = 0; // motor hızını sıfırla
 pinMode(2, INPUT); // buton girişi olarak ayarla
 analogReference(DEFAULT); // potansiyometre için referans voltaj ayarla
 Serial.begin(9600); // seri haberleşme başlat
 }
 void loop() {
 // potansiyometre değeri okunuyor ve 0-1023 aralığından 0-255 aralığına dönüştürülüyor
 potValue = analogRead(A0) / 4;
 // potansiyometre değeri seri portta gösteriliyor
 Serial.print("Potansiyometre: ");
 Serial.print(potValue);
 Serial.print(" ");
 // butonun durumu okunuyor
 buttonState = digitalRead(2);
 // potansiyometre değerine göre motor hızı arttırılıyor
 if (buttonState == HIGH && lastButtonState == LOW) {
 motorSpeed += potValue / 10;
 if (motorSpeed > 255) {
 motorSpeed = 255;
 }
 }
 // potansiyometre değerine göre motor hızı azaltılıyor
 if (buttonState == LOW && lastButtonState == HIGH) {
 motorSpeed -= potValue / 10;
 if (motorSpeed < 0) {
 motorSpeed = 0;
 }
 }
 // motor hızı seri portta gösteriliyor
 Serial.print("Motor Hızı: ");
 Serial.println(motorSpeed);
 // PWM sinyali kullanılarak motor hızı ayarlanıyor
 analogWrite(motorSpeedPin, motorSpeed);
 // buton durumu sonraki döngüde kullanmak için saklanıyor
 lastButtonState = buttonState;
 // kısa bir bekleme süresi
 delay(100);

78
}

Bu kodda, potansiyometre değeri okunarak arttırma ve azaltma işlemi gerçekleştirilirken, aynı zamanda seri
port aracılığıyla potansiyometre ve motor hızı değerleri de gösterilmektedir. Motor hızı, analogWrite()
fonksiyonu kullanılarak PWM sinyali olarak çıkışa verilir.

Bu örnek kodu Arduino kartınıza yükleyerek PWM DC motorunuzun hızını potansiyometre ve buton kullanarak
kontrol edebilirsiniz. Ancak, devre bağlantılarınızı doğru bir şekilde yapmanız ve uygun bir güç kaynağı
kullanmanız önemlidir. Ayrıca, motorunuzun güç tüketimine uygun bir PWM sinyali oluşturulması için, motorun
teknik özelliklerini dikkate almanız gerekir.

ARDUINO DERS 51
SERVO MOTOR NEDİR, N ASIL ÇALIŞIR?

Servo motorlar, hassas hareket kontrolü gerektiren uygulamalarda kullanılan elektrik motorlarıdır. Genellikle
robotik, CNC makineleri, endüstriyel otomasyon, RC model uçaklar ve arabalar gibi uygulamalarda kullanılırlar.

Servo motorlar, genellikle üç parçadan oluşur: motor, geri bildirim cihazı ve kontrol devresi. Motor, elektrik
enerjisini mekanik harekete dönüştürür. Geri bildirim cihazı, motorun hareketini ölçer ve kontrol devresine geri
bildirim sağlar. Kontrol devresi, geri bildirim bilgisine dayanarak motorun hareketini kontrol eder.

Servo motorlar, genellikle PWM (Pulse Width Modulation) sinyalleriyle kontrol edilir. PWM sinyalleri, belirli bir
zaman aralığında açık ve kapalı durumda olan bir dizi darbe içerir. Darbelerin açık kalma süresi (genişlik)
değiştirilerek motorun hareketi kontrol edilir.

Servo motorlar, sınırlı bir hareket aralığına sahiptirler. Bu hareket aralığı, motorun ürettiği tork ile doğrudan
ilişkilidir. Genellikle, bir servo motorun hareket aralığı 0 ila 180 derece arasındadır.

Servo motorlar, hassas kontrol gerektiren uygulamalarda kullanılan güçlü, hassas ve güvenilir motorlardır.

ARDUINO DERS 52
ARDUİNO PWM İLE SG90 SER VO MOTOR KONTROLÜ VE SERVO KÜTÜPHANESİ KO DU

Arduino ile SG90 servo motor kontrolü yapmak için PWM (Pulse Width Modulation) sinyali kullanılır. PWM
sinyali, Arduino tarafından üretilen bir kare dalga sinyalidir ve bu sinyal dalga formunun yüksek ve alçak
durumları arasındaki süre değiştirilerek motorun pozisyonu kontrol edilir.

SG90 servo motor, genellikle üç pimli bir konektöre sahiptir: güç (+5V ve GND) ve sinyal. Servo motorun güç
pini, Arduino'nun +5V veya 3.3V çıkışına bağlanırken, GND pini Arduino'nun GND'sine bağlanır. Servo motorun
sinyal pini ise Arduino'nun bir PWM çıkışına bağlanır.

Aşağıdaki kod, servo motorun hareket ettirilmesi için basit bir örnek sunar:

 #include <Servo.h>
 Servo myservo; // Servo nesnesi oluştur
 void setup() {

79
 myservo.attach(9); // Servo motorun sinyal pini 9 numaralı PWM çıkışına bağlanır
 }
 void loop() {
 myservo.write(0); // Motoru 0 dereceye döndürür
 delay(1000); // 1 saniye bekle
 myservo.write(90); // Motoru 90 dereceye döndürür
 delay(1000); // 1 saniye bekle
 myservo.write(180);// Motoru 180 dereceye döndürür
 delay(1000); // 1 saniye bekle
 }

Arduino'da servo motor kontrolü için "Servo" kütüphanesi kullanılır. Bu kütüphane Arduino IDE tarafından
sağlanır ve servo motorların kontrolü için gerekli olan fonksiyonları içerir.

Kütüphaneyi kullanmak için, Arduino IDE'yi açın ve "Sketch" menüsünden Açılan alt menüde "Servo" seçeneğini
bulun ve tıklayın. Kütüphane indirilip yüklendikten sonra, "Sketch" menüsünden "Import Library" seçeneğini
seçerek kütüphaneyi projenize dahil edebilirsiniz.

Kütüphaneyi kullanarak servo motorları kontrol etmek için öncelikle "Servo" nesnesi oluşturmanız gerekir.

Bu nesneyi oluşturmak için aşağıdaki kodu kullanabilirsiniz:

 #include <Servo.h>
 Servo myservo; // Servo nesnesi oluşturuluyor
 void setup() {
 myservo.attach(9); // Servo motorun bağlı olduğu pini belirtin
 }
 void loop() {
 myservo.write(90); // Servo motorun açısı 90 dereceye ayarlanıyor
 delay(1000); // 1 saniye bekleyin
 myservo.write(0); // Servo motorun açısı 0 dereceye ayarlanıyor
 delay(1000); // 1 saniye bekleyin

Yukarıdaki örnekte, "Servo.h" kütüphanesi dahil edilir ve "myservo" adlı bir Servo nesnesi oluşturulur. "setup()"
fonksiyonunda, servo motorun bağlı olduğu pin belirtilir. Ardından, "loop()" fonksiyonunda servo motorun açısı
90 dereceye ayarlanır, 1 saniye beklenir, açısı 0 dereceye ayarlanır ve yine 1 saniye beklenir.

Servo motorun açısını belirlemek için "write()" fonksiyonu kullanılır. Bu fonksiyon, servo motorun belirtilen
açıya gitmesini sağlar. Servo motorların genellikle 0 ile 180 derece arasında dönüş açısı vardır.

Not: Servo motorların kontrol edildiği pini, Arduino kartındaki uygun bir dijital pinden seçmelisiniz.

80
ARDUINO DERS 53
STEP MOTOR NEDİR, NASIL ÇALIŞIR, ARDUİNO İLE 28BYJ-48 STEP MOTOR KONTROLÜ VE
ULN2003 MOTOR SÜRÜCÜ

Step Motorlar:

Step motorlar, belirli adımlarla dönen bir mil üzerine monte edilmiş manyetik bobinler kullanır. Arduino ile step
motorları kontrol etmek için bir step motor sürücüsü kullanmanız gerekir. Step motor sürücüsü, motorun
hareketini kontrol etmek için dijital sinyaller kullanarak manyetik alanları değiştirir. Step motorlar tam konum
kontrolü yapmak için idealdir, ancak yüksek hızlarda çalışmak zor olabilir.

28BYJ-48 step motoru, adım adım bir motor sürücüsü olan ULN2003 ile kontrol edilebilir ve Arduino gibi bir
mikrodenetleyici tarafından yönetilebilir. Bu işlem için aşağıdaki adımları izleyebilirsiniz:

Malzemeler:

 Arduino
 28BYJ-48 adım motor
 ULN2003 motor sürücü
 Erkek-Dişi Jumper Kabloları

Adımlar:

1. 28BYJ-48 motoru ULN2003 sürücüsüne bağlayın. Motorun her bir bobini ULN2003 sürücüsündeki 4
farklı pim ile bağlanır.
 IN1 pimi, 28BYJ-48 motorunun 1. bobinini sürer.
 IN2 pimi, 28BYJ-48 motorunun 2. bobinini sürer.
 IN3 pimi, 28BYJ-48 motorunun 3. bobinini sürer.
 IN4 pimi, 28BYJ-48 motorunun 4. bobinini sürer.

81
2. ULN2003 sürücüsünün GND pimini Arduino'nun GND pimine bağlayın.

3. ULN2003 sürücüsünün VCC pimini Arduino'nun 5V pimine bağlayın.

4. ULN2003 sürücüsündeki IN1, IN2, IN3 ve IN4 pinlerini Arduino'daki boş dijital çıkış pinlerine bağlayın.
Bu örnekte IN1 pini Arduino'nun 8. dijital çıkış pimine bağlanmıştır.

5. Arduino ile bir program oluşturun. Aşağıdaki kod, 28BYJ-48 motoru saat yönünde döndürür.

 // Arduino kodu
 int in1 = 8;
 int in2 = 9;
 int in3 = 10;
 int in4 = 11;

 void setup() {
 pinMode(in1, OUTPUT);
 pinMode(in2, OUTPUT);
 pinMode(in3, OUTPUT);
 pinMode(in4, OUTPUT);
 }
 void loop() {
 // Adım 1
 digitalWrite(in1, HIGH);
 digitalWrite(in2, LOW);
 digitalWrite(in3, LOW);
 digitalWrite(in4, LOW);
 delay(10);

 // Adım 2
 digitalWrite(in1, HIGH);
 digitalWrite(in2, HIGH);
 digitalWrite(in3, LOW);
 digitalWrite(in4, LOW);
 delay(10);

 // Adım 3
 digitalWrite(in1, LOW);

82
 digitalWrite(in2, HIGH);
 digitalWrite(in3, LOW);
 digitalWrite(in4, LOW);
 delay(10);

 // Adım 4
 digitalWrite(in1, LOW);
 digitalWrite(in2, HIGH);
 digitalWrite(in3, HIGH);
 digitalWrite(in4, LOW);
 delay(10);

 // Adım 5
 digitalWrite(in1, LOW);
 digitalWrite(in2, LOW);
 digitalWrite(in3, HIGH);
 digitalWrite(in4, LOW);
 delay(10);

 // Adım 6
 digitalWrite(in1, LOW);
 digitalWrite(in2, LOW);
 digitalWrite(in3, HIGH);

ARDUINO DERS 57
ARDUİNO İLE STEP MOT OR PROJELERİ STEP MO TOR HIZ YÖN KONTROLÜ DEVRESİ

Step motor hız ve yön kontrolü yapmak için birkaç yöntem mevcuttur. Bunlardan biri, L298N motor sürücüsü
kullanarak Arduino ile bağlantı kurmaktır. İşlem için gereken malzemeler şunlardır:

 Arduino UNO veya benzeri bir kart


 L298N motor sürücü
 Step motor
 Jumper kabloları

İlk olarak, L298N motor sürücüsüne güç sağlamak için bir güç kaynağına ihtiyacınız olacak. Bu sürücü, 12V-36V
DC güç kaynağı kullanabilir. Ardından, sürücüyü Arduino kartınıza bağlamak için aşağıdaki bağlantıları yapın:

83
 L298N VCC --> Arduino 5V
 L298N GND --> Arduino GND
 L298N ENA --> Arduino D9
 L298N IN1 --> Arduino D8
 L298N IN2 --> Arduino D7
 L298N IN3 --> Arduino D6
 L298N IN4 --> Arduino D5
 Step motorun iki kutupları, L298N sürücüsünün OUT1 ve OUT2 pimlerine bağlanır.

 Ardından, aşağıdaki kodu kullanarak motorun hız ve yönünü kontrol edebilirsiniz:


 int enA = 9;
 int in1 = 8;
 int in2 = 7;
 int in3 = 6;
 int in4 = 5;

 void setup() {
 pinMode(enA, OUTPUT);
 pinMode(in1, OUTPUT);
 pinMode(in2, OUTPUT);
 pinMode(in3, OUTPUT);
 pinMode(in4, OUTPUT);
 }

 void loop() {
 // ileri hareket
 digitalWrite(in1, HIGH);
 digitalWrite(in2, LOW);
 digitalWrite(in3, LOW);
 digitalWrite(in4, HIGH);
 analogWrite(enA, 100); // hız ayarı (0-255 arası bir değer kullanın)
 delay(1000);

 // geri hareket
 digitalWrite(in1, LOW);
 digitalWrite(in2, HIGH);
 digitalWrite(in3, HIGH);
 digitalWrite(in4, LOW);
 analogWrite(enA, 200); // hız ayarı
 delay(1000);
 }

84
Bu kod, ileri ve geri hareketi dönüşümlü olarak yapar ve her seferinde farklı hızlarda çalışır. Motorunuzu yavaş
veya hızlı hızlarda hareket ettirmek için analogWrite() fonksiyonunu kullanabilirsiniz. Ayrıca, motorun yönünü
değiştirmek için IN1-4 pimlerinin HIGH ve LOW değerlerini değiştirerek kontrol edebilirsiniz.

Not: Bu sadece basit bir örnek kod ve isteğe bağlı olarak daha fazla özellik ekleyebilirsiniz.

ARDUINO DERS 54
RFID KART VE ÖZELLİKLERİ | ARDUİNO İLE RFID KART KULLANIMI
RFID, Radyo Frekansı Tanımlama (Radio Frequency Identification) olarak da bilinir. Bu teknoloji, nesnelerin veya
kişilerin kimliklerini benzersiz bir şekilde tanımlamak için kablosuz bir iletişim teknolojisidir. RFID, bir RFID
okuyucu cihazı tarafından taranan bir RFID etiketi veya kartı kullanır.

RFID kartı, üzerinde bir RFID çip ve anten bulunan bir plastik karttır. Bu kartlar, birçok farklı sektörde
kullanılmaktadır. Bazı özellikleri şunlardır:

 Benzersiz kimlik: RFID kartlar, her biri benzersiz olan bir seri numarasına sahip çipler içerir. Bu sayede,
her bir kartı benzersiz bir şekilde tanımlamak mümkündür.
 Kablosuz iletişim: RFID kartları, kablosuz olarak okuyucu cihaza bilgi aktarır. RFID okuyucu, kartın
yakınında bulunduğunda karttaki çipten bilgi alabilir.
 Hızlı ve güvenli: RFID kartlar, hızlı bir şekilde okunabilir ve güvenli bir iletişim kurulabilir. Kartın
üzerindeki veriler şifrelenebilir ve sadece yetkili kişiler tarafından erişilebilir hale getirilebilir.
 Çok yönlü: RFID kartlar, birçok farklı sektörde kullanılabilir. Örneğin, bina giriş kontrolü, lojistik,
perakende, hastaneler, bankalar, vs. gibi birçok yerde kullanılabilir.

RFID kartların dezavantajları da bulunmaktadır. Örneğin, güç kaynağı olmaması nedeniyle, okuyucunun ve
kartın yakınında bulunmaları gereklidir. Ayrıca, bazı güvenlik açıklarına neden olabilirler. Örneğin, birinin RFID
kartının bilgisayar korsanları tarafından ele geçirilmesi durumunda kötü amaçlı kullanım yapılabilir.

Arduino ile RFID kartlı bir proje yapmak oldukça kolaydır. İhtiyacınız olan araçlar ve malzemeler şunlardır:

 Arduino kartı
 RFID okuyucu modülü
 RFID kartları
 Breadboard
 Jumper kabloları

Aşağıdaki adımlar, RFID kartlı bir Arduino projesi yapmanız için gereken adımları göstermektedir:

1. RFID okuyucu modülünü Arduino'ya bağlayın. RFID modülünün VCC pimini Arduino'nun 5V pimine,
GND pimini ise Arduino'nun GND pimine bağlayın. SDA pimini Arduino'nun D10 pimine, SCK pimini ise
D13 pimine bağlayın. Ayrıca, RFID modülünde yer alan RX ve TX pinlerini de Arduino'nun RX ve TX
pinlerine bağlayın.
2. RFID kartlarını okuyucu modülüne tutun. RFID kartlarını modülün anteninin yakınında tutun ve kartın
seri numarasının okunduğunu onaylayan bir LED ışığı yanacaktır.

85
3. Arduino IDE yazılımını açın ve RFID okuyucu modülü ile iletişim kurabilmek için MFRC522
kütüphanesini yükleyin. Kütüphaneyi yükledikten sonra, RFID kartının seri numarasını okuyacak olan
kodu yazın.
4. Arduino kodunuzu yazın. RFID kartın seri numarasını okumak için aşağıdaki kodları kullanabilirsiniz:
 #include <SPI.h>
 #include <MFRC522.h>

 #define SS_PIN 10
 #define RST_PIN 9

 MFRC522 mfrc522(SS_PIN, RST_PIN);

 void setup() {
 Serial.begin(9600);
 SPI.begin();
 mfrc522.PCD_Init();
 Serial.println("Kart okuma modulu baslatildi");
 }

 void loop() {
 if ( ! mfrc522.PICC_IsNewCardPresent()) {
 return;
 }
 if ( ! mfrc522.PICC_ReadCardSerial()) {
 return;
 }
 Serial.print("Kart seri numarasi:");
 for (byte i = 0; i < mfrc522.uid.size; i++) {
 Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? "0" : "");
 Serial.print(mfrc522.uid.uidByte[i], HEX);
 }
 Serial.println();
 }
5. Kodu Arduino kartına yükleyin. Arduino IDE'de, kodu yazdıktan sonra, Arduino kartını bilgisayarınıza
bağlayın ve "Upload" düğmesine tıklayarak kodu Arduino kartına yükleyin.
6. RFID kartı okuyun. Kartınızı RFID okuyucu modülüne tutun ve seri numarasını Arduino IDE'nin "Serial
Monitor" özelliği ile okuyun. Seri numarası, kartı okuyucu modülüne tutarken LED ışığı yanarak
belirecektir.

Bu adımlarla, Arduino ve RFID kartları kullanarak bir proje yapabilirsiniz. Projenizi geliştirmek isterseniz, RFID
kartlarının okun ma sıklığını kontrol etmek için farklı fonksiyonlar ekleyebilir veya farklı işlevler ekleyebilirsiniz.
Örneğin, okunan kartların seri numaralarını bir veritabanına kaydedebilir veya kartların okunmasına bağlı olarak
belirli bir eylemi gerçekleştirebilirsiniz.

86
Ayrıca, projenize LCD ekran veya hoparlör gibi diğer bileşenleri de ekleyebilirsiniz. Örneğin, bir LCD ekran
kullanarak okunan kartların seri numaralarını gösterebilir veya bir hoparlör kullanarak belirli bir kart
okunduğunda bir ses çalabilirsiniz.

Bu projeyi yaparken, RFID teknolojisi hakkında daha fazla bilgi edinmeniz gerekebilir. Ayrıca, Arduino kodlama
konusunda da biraz deneyimli olmanız gerekebilir. Ancak, RFID kartlı bir Arduino projesi yapmak oldukça
eğlenceli ve öğretici bir deneyim olabilir.

ARDUINO DERS 55
ARDUİNO UNO İLE MFRC 522 RFID KART PROJESİ

MFRC522 RFID kart okuyucu ve Arduino Uno ile birçok proje yapılabilir. Örneğin, bir oda kilit sistemi
yapabilirsiniz, böylece sadece doğru RFID kartı olanlar kapıyı açabilirler. Aşağıda, Arduino Uno ve MFRC522 RFID
kart okuyucu kullanarak bir örnek proje yapmanıza yardımcı olacak adımlar yer almaktadır:

Adım 1: Gerekli Malzemeleri Hazırlayın

 Arduino Uno
 MFRC522 RFID kart okuyucu
 RFID kartları
 Breadboard
 Jumper kabloları

Adım 2: Kütüphaneleri Yükleyin

Arduino IDE'yi açın ve şu kütüphaneleri yükleyin:

MFRC522 (RFID kart okuyucu için)

SPI (Arduino ile kart okuyucu arasındaki iletişim için)

Adım 3: Devre Şemasını Hazırlayın

Arduino Uno ve RFID kart okuyucuyu breadboard üzerinde bağlayın. Aşağıdaki devre şeması size yol
gösterebilir:

Adım 4: Kodu Yazın

Aşağıdaki kodu Arduino IDE'de açın ve Arduino Uno'ya yükleyin:

C++

 #include <SPI.h>
 #include <MFRC522.h>
 #define SS_PIN 10
 #define RST_PIN 9

 MFRC522 mfrc522(SS_PIN, RST_PIN); // MFRC522 sınıfını kullanarak bir nesne oluşturun.

87
 void setup() {
 Serial.begin(9600); // Seri iletişim hızını ayarlayın.
 SPI.begin(); // SPI iletişimini başlatın.
 mfrc522.PCD_Init(); // MFRC522 kart okuyucuyu başlatın.
 }

 void loop() {
 // RFID kartı algılanıp okunduğunda
 if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
 Serial.print("Kart UID: ");
 for (byte i = 0; i < mfrc522.uid.size; i++) {
 Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? "0" : "");
 Serial.print(mfrc522.uid.uidByte[i], HEX);
 }
 Serial.println();
 }
 delay(1000);
 }

Adım 5: Projeyi Test Edin

Arduino Uno'ya yüklediğiniz kodun seri portunu açın (9600 baud hızında) ve RFID kartını okuyucuya yerleştirin.
Kartın UID'si seri monitöre yazdırılmalıdır.

Bu örnek proje ile başlayabilirsiniz. Ancak, daha ileri gitmek isterseniz, örneğin doğru kart okutulduğunda LED
yanması gibi farklı işlemler ekleyebilirsiniz.

ARDUINO DERS 56
RÖLE NEDİR, RÖLE NE İŞE YARAR, N ASIL ÇALIŞIR? | ARDU İNO RÖLE KULLANIMI

Röle, elektrik sinyallerini algılayarak bir devreyi açma veya kapama işlemini gerçekleştiren elektromekanik bir
anahtardır. Röleler, elektrik devreleri içindeki birçok farklı işlem için kullanılabilir ve çeşitli özelliklerdeki röleler
farklı amaçlar için tasarlanmıştır.

Bir rölenin ana işlevi, bir devreye bağlı olan anahtarlama elemanlarını açmak veya kapamak için bir kontrol
sinyali almak ve işleme koymaktır. Röle, bir elektromanyetik bobin ve bu bobine bağlanır ve devreyi açar veya
kapar.

Örneğin, bir röle, bir düğme veya anahtarın basılmasıyla bir ışığı açıp kapayabilir. Bir mikrodenetleyicinin çıkışını
kontrol edebilir veya yüksek akım veya gerilimli devrelerde güç anahtarlaması yapabilir. Röleler, birçok
endüstriyel, evsel ve otomotiv uygulamalarında yaygın olarak kullanılır.

88
Rölelerin birçok farklı türü vardır ve her biri farklı özellikler ve işlevler sunar. Bazı röleler, normal açık veya
normal kapalı gibi sabit kontak konfigürasyonlarına sahiptirken, diğerleri daha karmaşık çalışma prensiplerine
sahip olabilir. Röleler, anahtarlamaya ihtiyaç duyan herhangi bir uygulama için uygun bir çözüm olabilir.

ARDUINO DERS 57
ARDUİNO 220V RÖLE KULLANIMI VE ALKIŞLA YANIP SÖNEN 220V LAMB A KONTROLÜ - DİKKAT
220V

Arduino ile 220V röle kullanarak alkışla yanıp sönen 220V lamba kontrolü yapmak oldukça kolaydır. Ancak,
220V elektrik akımı kullanacağınız için, güvenliğiniz için gerekli önlemleri almanız gerektiğini unutmayın.
Aşağıdaki adımlar, Arduino ile 220V röle kullanarak alkışla yanıp sönen 220V lamba kontrolü yapmanız için
gereken adımları göstermektedir:

Malzemeler:

 Arduino kartı
 220V röle modülü
 Alkış sensörü modülü
 220V lamba
 Breadboard
 Jumper kabloları

Adımlar:

Arduino kartınızı USB kablosuyla bilgisayarınıza bağlayın ve Arduino IDE yazılımını açın.

220V röle modülünü Arduino'ya bağlayın. Röle modülünün GND pimini Arduino'nun GND pimine, VCC pimini ise
Arduino'nun 5V pimine bağlayın. IN1 pimini Arduino'nun D8 pimine bağlayın.

Alkış sensörü modülünü Arduino'ya bağlayın. Alkış sensörü modülünün VCC pimini Arduino'nun 5V pimine, GND
pimini ise GND pimine bağlayın. AO pimini Arduino'nun A0 pimine bağlayın.

220V lambayı röle modülüne bağlayın. Lambanın bir ucu röle modülünün COM pimine, diğer ucu ise NO pimine
bağlanmalıdır.

Arduino IDE'de aşağıdaki kodları yazarak röleyi kontrol edecek ve alkış sensöründen gelen sinyalleri okuyacak
bir program yazın:

 int clapPin = A0;


 int relayPin = 8;
 void setup() {
 pinMode(clapPin, INPUT);
 pinMode(relayPin, OUTPUT); }
 void loop() {
 int value = analogRead(clapPin);
 if (value > 500) {
 digitalWrite(relayPin, HIGH);
 delay(1000);
 digitalWrite(relayPin, LOW); }

89
 delay(100); }

Kodu Arduino kartına yükleyin. Arduino IDE'de, kodu yazdıktan sonra, Arduino kartını bilgisayarınıza bağlayın ve
"Upload" düğmesine tıklayarak kodu Arduino kartına yükleyin.

Alkışla yanıp sönen lambanın keyfini çıkarın. Alkış sensörüne alkışladığınızda, lamba bir saniye boyunca yanıp
sönecektir.

Bu adımlarla, Arduino ve 220V röle kullanarak alkışla yanıp sönen 220V lamba kontrolü yapabilirsiniz. Ancak,
yine de elektrik akımı kullanacağınız için, güvenliğiniz için gerekli önlemleri almanız önemlidir.

ARDUINO DERS 58
ARDUİNO TOPRAK NEM S ENSÖRÜ (TOPRAK NEM Ö LÇER)

Arduino toprak nem sensörü yapmak oldukça kolaydır ve bitkilerinize uygun su vermeniz için oldukça yararlı bir
araçtır. İşte Arduino ve bir toprak nem sensörü kullanarak bir toprak nem ölçer yapmak için izleyebileceğiniz
adımlar:

Adım 1: Gerekli Malzemeleri Hazırlayın

 Arduino Uno
 Toprak nem sensörü
 Jumper kabloları
 LCD ekran (isteğe bağlı)

Adım 2: Devre Şemasını Hazırlayın

Arduino Uno ve toprak nem sensörünü bir breadboard üzerinde bağlayın. İsterseniz bir LCD ekran da
kullanabilirsiniz. Aşağıdaki devre şeması size yol gösterebilir:

 const int SOIL_SENSOR_PIN = A0; // Toprak nem sensörünün bağlandığı analog pin
 const int WATER_LEVEL_PIN = A1; // Su seviyesi sensörünün bağlandığı analog pin
 const int WATER_LEVEL_THRESHOLD = 800; // Su seviyesi sensörünün okuma eşiği
 const int LCD_RS = 12;
 const int LCD_EN = 11;
 const int LCD_D4 = 5;
 const int LCD_D5 = 4;
 const int LCD_D6 = 3;
 const int LCD_D7 = 2;
 const int LCD_COLUMNS = 16;
 const int LCD_ROWS = 2;

 #include <LiquidCrystal.h>

 LiquidCrystal lcd(LCD_RS, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7);

90
 void setup() {
 lcd.begin(LCD_COLUMNS, LCD_ROWS); // LCD ekranını başlatın
 }

 void loop() {
 int soilMoisture = analogRead(SOIL_SENSOR_PIN); // Toprak nem sensöründen okuma yapın
 int waterLevel = analogRead(WATER_LEVEL_PIN); // Su seviyesi sensöründen okuma yapın

 // Su seviyesi sensöründen okuma eşiğinin altında ise, su seviyesi düşük uyarısı verin
 if (waterLevel < WATER_LEVEL_THRESHOLD) {
 lcd.clear();
 lcd.print("Su Seviyesi Dusuk");
 } else {
 lcd.clear();
 lcd.print("Toprak Nem Orani:");
 lcd.setCursor(0, 1);
 lcd.print(soilMoisture);
 lcd.print(" / 1023");
 }

 delay(1000); // Okuma aralığını ayarlayın


 }

ALGORİTMA NEDİR?

91
Algoritma, belirli bir problemi çözmek veya belirli bir işlemi gerçekleştirmek için adım adım izlenmesi gereken
talimatların ve işlemlerin sıralı bir listesidir. Yani bir programın gerçekleştireceği işlemleri, veri yapılarını ve
kontrol yapısını belirleyen ve hangi sırayla çalışacağını tarif eden bir plan ya da yol haritasıdır. Algoritmalar
bilgisayar programlamada kullanıldığı kadar, matematik, mühendislik ve diğer alanlarda da kullanılır.
Algoritmalar, bir probleme karşı birden fazla çözüm olabileceği için, verimli ve en az maliyetli çözüme ulaşmak
için tasarlanabilirler.

Algoritmalar, programlama dillerinde yazılan kodların temel yapı taşıdır. Bir programcı, bir problemi çözmek için
önce algoritmayı tasarlar, ardından bu algoritmayı programlama dili kullanarak kodlar. Algoritmaların doğru ve
etkili bir şekilde tasarlanması, programların doğru ve hızlı bir şekilde çalışmasını sağlar.

Algoritmaların tasarımında, öncelikle problem tanımı yapılır ve problemi çözmek için gerekli olan veriler
belirlenir. Daha sonra, problemi çözmek için gereken adımlar belirlenir ve bu adımlar sıralı bir şekilde listelenir.
Bu adımlar, genellikle if-else ifadeleri, döngüler, koşul ifadeleri, veri yapıları ve fonksiyonlar gibi programlama
yapıları kullanılarak ifade edilir.

Algoritmaların tasarımında, verimlilik ve etkililik önemli faktörlerdir. Verimli bir algoritma, bir problemi çözmek
için gereksiz adımlar yerine sadece gerekli adımları içerir ve en kısa sürede sonuca ulaşır. Etkili bir algoritma ise,
hafızayı doğru bir şekilde kullanarak ve yeterince hızlı çalışarak sonuca ulaşır.

Sonuç olarak, algoritmalar, bir problemi çözmek için tasarlanmış adım adım talimatlar dizisidir. Algoritmalar
programlama dillerinde kullanılır ve programların doğru ve hızlı bir şekilde çalışmasını sağlar. Algoritmaların
tasarımı, verimlilik ve etkililik önemli faktörlerdir ve problemi en kısa sürede ve doğru şekilde çözmeyi amaçlar.

92
Algoritma şeması, bir algoritmanın adım adım taslağının, semboller ve çizimlerle ifade edildiği bir diyagramdır.
Bu diyagramlar, programcıların ve diğer kişilerin, bir algoritmanın mantığını ve çalışma şeklini daha kolay
anlamalarına yardımcı olur.

Algoritma şemalarında, çizgiler, şekiller ve semboller kullanılır. Şekiller, işlem, veri girişi, veri çıkışı ve karar gibi
algoritmanın farklı bölümlerini temsil eder. Çizgiler ise, bu bölümlerin birbirleriyle nasıl ilişkili olduğunu gösterir.

İşlem sembolü, bir algoritmanın belirli bir işlemi yapmak için kullanılan semboldür. Bu sembol genellikle
dikdörtgen şeklindedir. Veri giriş sembolü, kullanıcının bir veri değeri girdiği semboldür ve genellikle bir ok
sembolü ile gösterilir. Veri çıkış sembolü ise, algoritmanın sonucunun gösterildiği semboldür ve genellikle bir ok
sembolü ile gösterilir.

Karar sembolleri, bir algoritmanın belirli bir karara göre hareket etmesini sağlar. Genellikle elips şeklindedir ve
bir soru veya koşul ifadesi ile etiketlenmiştir. Karar sembolleri, evet-hayır veya doğru-yanlış gibi iki olası cevap
veren soruları içerir.

Algoritma şemaları, genellikle programcılar tarafından kullanılır, ancak diğer alanlarda da kullanılabilir. Örneğin,
iş süreçlerini tasarlarken, işletmeler ve mühendisler algoritma şemalarını kullanabilirler. Algoritma şemaları, bir
algoritmanın mantığını ve işleyişini anlamak için kolay ve etkili bir yoldur.

93

You might also like