hazirlayanlar grafİk tasarim · 2017. 12. 20. · arduino ile yazılım geliştirmek ve...
TRANSCRIPT
www.akademikport.com
"AkademikPort Hobi Elektronik Devre Projeleri" Eğitimi AkademikPort'un açık kaynaklı elektronik kitap eğitimlerinin ikinci kitapçığı olarak yayınlanmıştır. Bu kitapçıkta sizler için hazırlanan 11 hobi elektronik devre sayesinde devre elemanlarının iç yapısını görüp, devre içerisindeki görev ve çalışma mantığını kavrayarak projeler geliştirmeyi öğreneceksiniz.
Bilgiyi paylaşan bir toplum olmamız dileğiyle...
a her evre elemanına zarar verilmemiştir.
Emre ARSLAN AkademikPort Kurumsal İllişkiler Koordinatörü
HAZIRLAYANLAR Muhammed İcmal Kazez
Zeki Egemen Ertürk Emre Arslan
Hüseyin GünerGRAFİK TASARIM
Kitapçık Hakkında
www.akademikport.com
AkademikPort "Arduino Başlangıç Projeleri" Eğitimine Hoşgeldiniz!
Bu kitapçık SparkFun SIK Guide(retired) ve bir çok yerli-yabancı kaynaktan yararlanılarak oluşturulmuş ve açık kaynaklı olarak ilk lisans şartı olan Creative Commons CC BY SA 4.0 lisansı ile yayınlanmıştır. "AkademikPort Arduino Başlangıç Projeleri" Eğitimi AkademikPort'un açık kaynaklı elektronik kitap eğitimlerinin yedinci kitapçığı olarak yayınlanmıştır. Bu kitapçıkta sizler için hazırlanan 12 Arduino breadboard devresi sayesinde devre elemanları ve sensörlerle Arduino projeleri geliştirerek kısa süre içerisinde Arduino'yu kullanmayı ve programlamayı öğreneceksiniz.
Üretmekten korkmayan bir toplum olmamız dileğiyle...
Emre ARSLAN AkademikPort Kurumsal İllişkiler Koordinatörü
Arduino Başlangıç Projeleri is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.(Arduino Başlangıç Projelerielektronik kitabı yazar isimleri belirtilip, lisasns şartlarına uyularak paylaşılabilir fakat ticari bir faaliyette kullanılamaz. )To view a copy of this license visit: http://creativecommons.org/licenses/by-sa/4.0/www.akademikport.com
Türkçe Kitap HazırlayanlarEmre Arslan
Hakan Çolakoğlu
Orjinal Kitap Editörleri
SparkFun Education Department
Arduino nedir? 1
Arduino IDE 'yi İndirmek 3
Sürücüyü Yüklemek 4
Identify your Arduino 7
"Elektrikport Arduino Kod" indirme 8
Elektrik Devreleri 9
Devre Elemanları 11
13
15
17
24
28
32
36
40
44
48
52
2.Bölüm Temel Elektronik ve Arduino Projeleri
1. Bölüm Arduino'ya Başlamak
Arduino Uno
Breadboard
Devre #1 - İlk Devreniz: LED Yakma
Devre #3 - RGB LED
Devre #4 - Çoklu LED
Devre #5 - Buton Kullanımı
Devre #6 - Foto Direnç
Devre #7 - Sıcaklık Sensorü
Devre #8 - Servo Motor
Devre #9 - Buzzer
56Devre #10 - Motor Döndürme
60Devre #11 - Röle
64Devre #12 - Shift Register
68Notlar
72
Devre #2 - Potansiyometre
Arduino kolay bir şekilde çevresiyle etkileşime girebilen sistemler tasarlayabileceğiniz, hem acemi hem de ileri düzeydeki elektronik meraklılarına hitap eden, kolayca programlanabilen ve üzerine elektronik devre kurulabilen açık kaynaklı bir geliştirme platformudur.
arduino.cc
Arduino Çağı Başlıyor
Arduino nedir?
Bu elinizde tuttuğunuz dost canlsı mavi kartı masaüstü bilgisayarlarınızın ve laptoplarınızın çocuğu gibi taşınabilir küçük bir bilgisayar olarak düşünebilirsiniz.Arduino kütüphaneleri ile mikrodenetleyicileri kolaylıkla programlayabilirsiniz. Analog ve dijital girişleri sayesinde analog ve dijital verileri işleyebilir ve sensörlerden gelen verileri kullanarak dış dünyaya çıktılar (ses, ışık, hareket vs…) üretebilirsiniz.
Fiziksel Dünya için Bir Bilgisayar
// Arduino UNO SMD R3
Arduino Uno en yaygın kullanılan arduino kartıdır. 14 dijital giriş / çıkış'a (6 PWM çıkışı), 6 analog girişe, bir 16 MHz kristal osilatöre, bir USB bağlantısına, bir güç girişine, bir ICSP başlığına ve bir reset düğmesine sahiptir. Heyecana kapılmaya gerek yok eğitim içerisinde tekrar bu konulara değinilecektir.Şimdilik yüzeysel olarak bilinmesi yeterlidir.
Arduino kartları bir Atmel AVR mikrodenetleyici programlama ve diğer devrelere bağlantı için gerekli yan elemanlardan oluşur. Her kartta en azından bir 5 voltluk regüle entegresi ve bir 16MHz kristal osilator (bazılarında seramik rezonatör) bulunur. Mikrodenetleyiciye önceden bir bootloader programı yazılı olduğundan programlama için harici bir programlayıcıya ihtiyaç duyulmaz.
cb
a
d
e
f
g
h
c
b
a
f
e
d
h
gSayaçlı Böcek Yakalama
Oyuncaktan Email Habercisi
Otomatik Ayakkabı Bağcığı
Kamera Zamanlama Uygulaması
Otomatik Çiçek Sulama
Programlanabilir Trafik Işıkları
Quadcopter
Kahve Makinesi
Arduino ile yazılım geliştirmek ve çalıştırmak için öncelikle www.arduino.cc sitesinden bir Arduino Entegre Geliştirme Ortamı indirmeliyiz. Arduino IDE olarak bilinen bu yazılım arduino 'yu programlamak için adeta bir kelime işlemci görevi görecektir. İnternet tarayıcınızdan aşağıdaki adrese tıklayarak size uygun Arduino IDE 'yi indirebilirsiniz.
İnternet Erişimi
Arduino IDE'yi İndirme (Entegre Geliştirme Ortamı)
user
•••••••••
Mac OS X
Linux: 32 bit, 64 bit
N
W
S
E
NW
SW
SE
NE
arduino.cc/en/Main/Software
Bilgisayarınız için uygun işletim sistemine göre yükleme paketi seçmeyi unutmayınız.
Yükleme
Windows
Mac OS X
source
Linux: 32 bit, 64 bit
1 Kullandığınız işletim sistemine göre size uygun olan Arduino programını seçmek için artı(+) işaretine basmanız yeterlidir.
// Arduino Uno'yu Bilgisayara BağlamakArduino ve Bilgisayarı USB çıkışlarından USB Kablosu ile bağlıyoruz.
// Sürücü Yükleme
Bilgisayarınızın işletim sistemine göre ihtiyacınız olan sürücüyü indirip yüklüyoruz.
23
Linux: 32 bit / 64 bit Sürücü Yükleme Aşağıdaki adreste Linux sürücü yüklemesi ileilgili talimatları bulabilirsiniz.
http://www.arduino.cc/playground/Learning/Linux
Macintosh OS X Sürücü YüklemeAşağıdaki adreste MacOSX sürücü yüklemesi ile ilgili talimatları bulabilirsiniz.
http://arduino.cc/en/Guide/MacOSX
Windows Sürücü YüklemeAşağıdaki adreste Windows sürücü yüklemesi ileilgili talimatları bulabilirsiniz.
http://arduino.cc/en/Guide/Windows
1 2 3 5 6
7
8
9
4
Öncelikle bilgisayarımıza indirdiğimiz arduino geliştirme programını açalım. Programlamaya geçmeden önce biraz geliştirme ortamını kurcalayalım.
//Arduino IDE 'yi Açıyoruz:
// Bu klavuz için en önemli üç komut aşağıda görülmektedir:
GUI (Grafik Kullanıcı Arayüzü)
Verify(Derleme): Yazmış olduğunuz kodu derler. Söz dizimi hatalarınızı bulur.1
Upload(Yükleme): Kodu arduino kartına gönderir. 2
New(Yeni): Bu buton yeni kod penceresi açar.3
Open(Açmak): Bu buton var olan bir arduino dosyasını açmanızı sağlar.4
Save(Kaydetmek): Yazdığınız skecthçi kaydeder.5
Serial Monitor(Seri monitör): Seri bilgi görüntüleyen bir pencere açacaktır. Özellikle hata ayıklama için çok yararlıdır.6
Code Area(Kod Alanı): Sketch için kod oluşturacağınız alandır.8
Message Area(Mesaj Alanı): Kodunuzdaki hatayı gösteren alan .9
Sketch Name: Şu an da üzerinde çalıştığınız sketch in adını gösterir.7
Verify(Derleme)
Upload(Yükleme)
Open(Açmak)
File Edit Sketch Tools Help
Auto FormatArchive SketchFix Encoding & ReloadSerial Monitor
Arduino UnoArduino Duemilanove w/ ATmega328]Arduino Diecimila or Duemilanove w/ ATmega168Arduino Nano w/ ATmega328Arduino Nano w/ ATmega168Arduino Mega 2560 or Mega ADKArduino Mega (ATmega1280)Arduino Mini Arduino Mini w/ATmega168Arduino EthernetArduino FioArduino BT w/ ATmega328Arduino BT w/ATmega168LilyPad Arduino w/ ATmega328LilyPad Arduino w/ ATmega168Arduino Pro or Pro Mini (5V, 16 MHz) w/ATmega328Arduino Pro or Pro Mini (5V, 16 MHz) w/ATmega168Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ATmega328Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ATmega168Arduino NG or older w/ ATmega168Arduino NG or older w/ ATmega8
ProgrammerBurn Bootloader
BoardSerial Port
// Kartımızı Seçelim: Arduino Uno
Aygıtımız için uygun olan seri portu seçmek için Tools >Serial Port menüsüne tıklıyoruz. Genelde com3 veya üzeridir (COM1 ve COM2 genellikle donanım seri portu olarak kullanılmaktadır). Kullanacağınız arduino portunu bulmak için Arduino ile bilgisayar arasındaki bağlantıyı kesin ve menüye tekrar gelin ,bağlantıyı kestikten sonra menüde kaybolan port sizin Arduino portunuzdur. O portu seçip arduino programlamaya başlayabiliriz.
Aygıtımız için uygun olan seri portu seçmek için Tools >Serial Port menüsüne tıklıyoruz.Mac bilgisayarlarda Uno veya Mega 2560 için ( /dev/tty.usbmodem) ve ya eski kartlar için (/dev/tty.usbserial) seçiyoruz.
http://www.arduino.cc/playground/Learning/Linux
Tools Help
Auto FormatArchive SketchFix Encoding & ReloadSerial Monitor
com 1com 12
ProgrammerBurn Bootloader
BoardSerial Port
Tools Help
Auto FormatArchive SketchFix Encoding & ReloadSerial Monitor
/dev/tty.usbmodem262471 /dev/cu.usbmodem262471 /dev/tty.Bluetooth-Modem /dev/cu.Bluetooth-Modem /dev/tty.FireFly-7256-SPP /dev/cu.FireFly-7256-SPP /dev/tty.tiPhone-WirelessiAP-1 /dev/cu.tiPhone-WirelessiAP-1 /dev/tty.Bluetooth-PDA-Sync /dev/cu.Bluetooth-PDA-Sync
ProgrammerBurn Bootloader
BoardSerial Port
// S
eri a
ygıtı
Seç
mek
4W
WW
.ARD
UINO
.CC
RESET
A5ANALOG IN
WW
W.A
RDUI
NO.C
C
RESET
A5ANALOG IN
İndirmek için aşağıdaki bağlantıyı takip edin;
AkademikPort Arduino Kodu indirme ( Kitapçığımızdaki Devreleri Oluşturmak İçin)
kitap.akademikport.com
5
“Arduino Kod” dosyasını kopyalayıp arduino kurulumu içerisindeki "examples" klasörünün içerisine yapıştırıyoruz.
“Arduino Kod” dosyasını kopyalayıp examples klasörünün içerisine yapıştırıyoruz.
Adreste verdiğimiz sıkıştırılmış dosyayı indirip, içerisindeki “Arduino Kod” dosyasını dışarı çıkartıyoruz.
Arduino 'yu uygulama dosyasından buluyoruz. Arduino 'ya sağ tıklıyoruz(ctrl + click) . “Show Package Contents” 'i seçiyoruz.
http://www.arduino.cc/playground/Learning/Linux
ProgramsStart arduino examples
Contents
Resources
Java
examplesArduino
Move to Trash
Open
Show Package Contents
Adreste verdiğimiz sıkıştırılmış dosyayı indirip, içerisindeki “Arduino Kod” dosyasını dışarı çıkartıyoruz.
Nereye bakarsanız bakın devreler ile karşılaşacaksınız.Cebinizdeki telefon, aracınızın emisyon sistemini kontrol eden bilgisayar,oyun konsollarınız,elektrikli mutfak aletleriniz , bunların hepsi elektrik devreleriyle dolu. Bu kitapçıkta bazı basit devreleri deneyecek ve gömülü elektronik sistemlerinin temeline adım atacaksınız.
Dünya Bu Devreler Üzerinde Dönüyor
Elektrik Devreleri
Elektrik Devresi basitçe başlangıç ve bitiş noktası olan ve içerisinde bir çok devre elemanı buluduran döngüdür. Devreler her ölçüde ve şekilde yüzlerce ; direnç,diyot, bobin,sensör, motor ve diğer devre elemanlarını barındırabilir.
Devreler genelde analog devreler,dijital devreler ve karışık sinyal devreleri olmak üzere üç kategoriye ayrılır.Bu kitapçıkta her üç devre çeşidi de gösterilecektir.
Elektrik Devresi Nedir?
// Basit ve Karmaşık Devreler
Bu kitapçıkta ilk olarak basit devreleri keşfedeceksiniz. Ama bu sizin basit araçlarla büyüleyici şeyler yapamayacağınız anlamına gelmiyor elbette. Bu eğitimi tamamladıktan sonra devreler hakkında öğrendiğiniz bilgiler hayal gücünüze de bağlı olarak muhteşem projeler yapmanızı sağlayacak.
a b c d e f g h i123456789101112131415161718192021222324252627282930
a b c d e f g h i
123456789101112131415161718192021222324252627282930
*Gerçek Görünüm
(1N4148)Diyot
x1
x2
Buzzer
Devre Elemanları
Push Buton
x2x1x1
DC Motor
x25
Potansiyometre
(Light Emitting Diode)
x10 x1
LED (5mm) +-
x30
330Ω Direnç
*Gerçek Görünüm
x10
10KΩ Direnç
x25 *Gerçek Görünüm
(TMP36)
x1
Sıcaklık Sensörü
ÖN
ARKA
(P2N2222AG)
x2
Transistor
P2N2
222A
A18
ÖN
ARKA
x1
x1
Foto Direnç(LDR)
Atlama KablosuÇeşitli Renklerde
a b c d e f g h i123456789101112131415161718192021222324252627282930
a b c d e f g h i
123456789101112131415161718192021222324252627282930
AREFGND
13121110
98
65
7
43210
3.3V5V
RESET
GNDGNDVIN
DIGITAL (PW
M )
WWW.ARDUINO.CC
POW
ER
RESET
RESET-EN
RX TX L
A1 A2
A0
A3A4A5
MADE
IN ITA
LY
ANALO
G IN
TXRX
a b c d e f g h i123456789101112131415161718192021222324252627282930
a b c d e f g h i
123456789101112131415161718192021222324252627282930
Arduino Kartı UNO
Röle
x1
x1
x1
Entegre (IC)
x1
Breadboard(Standart Lehimsiz)
Servo Motor
x1
3
1
2
4 5
7
8
9
6
10
// Pin Diyagramı
Arduino Uno
9-12V DC Güç Girişi( Barrel Jack) - 9V veya 12V güç bağlanabilen güç girişidir .1
USB Bağlantı Konnektörü(USB Port) - Arduino 'ya program yüklemek ve bilgisayar ile haberleşmek için kullanılan bağlantı konnekterörüdür.2
LED(RX: Receiving) - Seri haberleşme için kullanılan RX pininin durumunu gösteren LED'dir. Veri alışverişi olduğunda bu led yanar.3
LED(TX: Transmitting) - Seri haberleşme için kullanılan TX pininin durumunu gösteren LED'dir. Veri alışverişi olduğunda bu led yanar. 4
LED (Pin 13: Troubleshooting) - 13 Nolu dijital pine bağlı olan LED'dir. Programları test etmek için kullanılabilir.5
Dijital Giriş-Çıkış Pinleri- Dijital giriş-çıkış için kullanılan pinler burada bulunuyor.Yanında işareti bulunan pinler aynı zamanda analog çıkış(PWM) almak içinde kullanılıyor.
6
LED (Güç LED'i)-Kartımızın güç gösterge LED 'idir. Devrelerinizi kurarken kısa devre yapıp yapmadığınız bu LED 'e bakarak anlayabilirsiniz. 7
Reset Butonu -Arduinoyu yeniden başlatır.Programlarımız setup() fonksiyonundan itibaren yeniden başlar.8
Anolog Giriş Pinleri ve Güç Bağlantıları -Anolog giriş ve gerilim bağlantıları bu bölümde bulunuyor.Ayrıca analog-dijital çeviricinin referans giriş pini ve seri iletişim pinleri de (RX ve TX) burada bulunuyor.
10
Kart Üzerinde Programlama(ICSP) Pinleri - Atmega microdenetleyiciyi harici bir programlayıcı ile programlama pinleri.9
Power Out
Reset
IOREF
RFU
Power Out
Ground
Ground
Power In
Analog
Analog
Analog
Analog
Analog
Analog
Ground
ARef
SDA
SCL
Digital
Digital
Digital
Digital
Digital
Digital
Digital
Digital
Digital
Digital
Digital
Digital
TX - Out
RX - In
10
6
= PWM/Analog çıkış uyumlu (i.e. )
Header pinleri devreleri kurmak için en önemli yerlerdir. Biraz zaman ayırıp arduino uno üzerindeki giriş çıkışlara göz gezdirelim.
a b c d e f g h i123456789101112131415161718192021222324252627282930
a b c d e f g h i
123456789101112131415161718192021222324252627282930
Bu çizgi breadboardumuzu ikiye bölüyor,Her bölüm kendi içinde bağımsızdır.
1
2
Güç:
Her + işareti dikey sütundan güç geçişi sağlar.
Toprak:
Her - işareti dikey sütunda her yerde toprak görevi görür.
Yatay Satırlar:
1 den 30 a kadar numaralı satırların herbiri kendi içerisinde (abcde ve ya fghij) güç iletimi sağlar.
Dikey Bağlantı (+ Güç ve - Toprak //Aşağıdaki diyagrama Bakınız)1
Yatay Bağlantı (a-e & f-j // Aşağıdaki diyagrama Bakınız)2
Bağlantılar Nasıldır?
Breadboardın İç Görünümü
f g h ia b c d e123456789101112131415161718192021222324252627282930
a b c d e f g h i
123456789101112131415161718192021222324252627282930
Breadboard
Breadboardın üzerinde
LED
Bağlantı Şekli
Breadboardın İçinde
Bağlandı
Devreler #1 - İlk Devreniz
5V Akım Arduino 5V da çalışır. Arduino'yu bilgisayara bağladığınızda aldığınız güç kurduğunuz devreleri çalıştıracaktır.Bilgisayarınızı Arduino'ya bağlayarak doğru gerilimi alabilirsiniz. 5V size zarar vermez bu yüzden devre içerisinde dokunmaktan korkmayın.
Nasıl Çalıştıracağız;
Parçaları Birleştir Kodu Yaz
Arduino' ya Yükle
Breadboard hakkında genel bilgiler verildi, şimdi arduino ile breadboardu yanyana yerleştirelim ve talimatlara dikkat edelim.
a b c d e f g h i123456789101112131415161718192021222324252627282930
a b c d e f g h i
123456789101112131415161718192021222324252627282930
Arduino ve Breadboardı yanyana yerleştir
USB Kablosunu Bağla
Elem
anla
r: LED
1X
Kablo
3X
330ΩDirenç
1X Bu bölümde, devreyi tamamlamak için gereken parçalar listelenir.
Circuit 2
LED 'ler (light-emitting diodes) bir çok elektronik devrede kullanılan güçlü ışık kaynaklarıdır. Çalışmalarımıza ilk olarak her elektronik meraklısının yaptığı gibi led yakarak başlayacağız . Bir çoğunuz için çok basit olabilir ama hem devre kurma hem de programlama olarak bize katacakları şeyler daha komplex projeleri yapmak için bizlere birer basamak olacaktır.
LED YAKMAK 1
Bu bölümde devrelerimizi kurmadan önce kuracağımız devre ile ilgili kısa açıklamalar
yer alır.Bu LED yakma devremizin şemasıdır.
Arduino
LED(Light Emitting Diode)
GND(ground-toprak) (-)
Direnç (330ohm)(Turuncu-Turuncu-Kahverengi)
Devrenin nasıl kurulacağını gösteren şemadır. Özellikle yeni başlayan arkadaşların bağlantıları kurmak için şemayı dikkatle incelemesini tavsiye ediyoruz.
Direnç gibi devre elemanlarının breadboard ile bağlantısını sağlamak için bacaklarını 90 derecelik açıyla büküyoruz.
Pin 13
Dev
re 1
: Led
Yak
mak
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
LED:
(-) i
le iş
aret
lenm
iş k
ısa
baca
k LE
D' in
neg
atif
ucud
ur.
330Ω
Dire
nç: R
enk
band
ı kırm
ızı-
turu
ncu
-tur
uncu
-kah
vere
ngi-a
ltın
şekl
inde
dir D
irenc
in b
acak
ların
ı de
vrey
e ba
ğlar
ız.
Atla
ma
Kabl
osu:
Tüm
atla
ma
kabl
olar
ıbe
nzer
man
tıkla
çal
ışır.
İki f
arkl
ı bağ
lant
ı ye
rini b
irbiri
ne b
ağla
r. De
vrel
erim
izde
fa
rklı
renk
te a
tlam
a ka
blos
u gö
rülm
esin
in
sebe
bi d
evre
şem
asın
ın g
örün
ümün
ü ko
layl
aştır
mak
tır. K
ablo
lar a
ynı k
ablo
lard
ır.
Düz
ken
ar
Kıs
a Ba
cak
Elem
anla
r:G
erçe
k G
örün
ümle
ri:
LED
(5m
m)
+-
+-
c2c3
Atla
ma
Kab
losu
Pin
13e2
330Ω
Dir
enç
a3G
ND
a3
Atla
ma
Kab
losu
GN
D
Atla
ma
Kab
losu
5V5V+
Ardu
ino
üzer
inde
ki “
5V”
pini
ni b
read
boar
d üz
erin
deki
“+”
işar
etli
satır
a ba
ğlıy
oruz
.
Ardu
ino
üzer
inde
ki “
Pin
13”
pini
ni b
read
boar
d üz
erin
deki
“e2
” sö
ketin
e ba
ğlıy
oruz
.
Ardu
ino
üzer
inde
ki “
GN
D” p
inin
i bre
adbo
ard
üzer
inde
ki “
-” iş
aret
li sa
tıra
bağl
ıyor
uz.
LED'
i c2(
uzun
bac
ak) c
3(kı
sa b
acak
) şek
linde
bre
adbo
ard'
un sö
ketle
rine
takı
yoru
z.
Dire
nçle
r yal
nızc
a Br
eadb
oard
üze
rinde
ki so
ketle
re y
erle
ştiri
lir."
-" iş
aret
li sa
tıra
ve LE
D' in
bac
ağın
a ba
ğlıy
oruz
.
Brea
dboa
rd: B
eyaz
şerit
bre
adbo
ard
soke
t bağ
lant
ıların
ı tem
sil e
der
Ardu
ino:
Mav
i şer
it Ar
duin
o he
ader
pi
nler
ini t
emsil
ede
r.
Bilgisayarımızdaki Arduino IDE yazılımını açıyoruz. Daha sonra aşağıdaki şemayı takip ederek "examples" klasörü içerisindeki "Arduino Kod" bölümünden "Devre 1" kodunu seçiyoruz.
İlk Kodumuzu Açalım:
File Edit Sketch Tools Help
1.Basics2.Digital3.Analog4.Communication5.Control6.Sensors7.Displays8.StringsArduinoISP
Arduino Kod
EEPROMEthernetFirmataLiquid CrystalSDServoSoftwareSerialSPIStepperWire
Page SetupPrint
NewOpen...SketchbookExamplesCloseSaveSave As...UploadUpload Using Progammer
Devre #1Devre #2Devre #3Devre #4Devre #5Devre #6Devre #7Devre #8Devre #9Devre #10Devre #11Devre #12
Circuit #1
// Devre #1
/*Led Yakmak (Blink=Göz Kırpma)LED ' i bir saniye yakıp bir saniye söndüren program*/
int LEDcikis = 13;void setup() {
// Dijital Pini çıkış olarak ayarlayacağız.
pinMode(LEDcikis, OUTPUT);}void loop() {digitalWrite(LEDcikis, HIGH);delay(1000);digitalWrite(LEDcikis, LOW);delay(1000);}
//LED'i yak// 1 saniye bekle// LED'i söndür //1 saniye bekle
Derleme
Yükleme
// Verilen kod ile derledikten ve yüklendikten sonra breadboard üzerindeki LED yanıp sönmeye başlayacaktır
Kodu derliyoruz. Yazılım kodu arduino üzerindeki entegrenin anlayabileceği dile çeviriyor.
USB Kablo aracılığıyla kodu Arduino üzerindeki entegreye gönderiyoruz. Daha sonra devre otomatik olarak çalışmaya başlayacaktır.
Circuit 21
Sorun Giderme:
LED YanmıyorLED sadece tek yönlü çalışır. Bu tür sorunlar genelde LED in yanlış bacağının bağlanmasından kaynaklanıyor. Endişeye gerek yok Led in bacaklarını çevirin ve yeniden bağlayın.Program YüklenmiyorYükleme ile ilgili sorunlar genelde seri port'dadır. tools>serial port> sekmesinden portunuzu değiştirip tekrar yüklemeye çalışın.
Hâlâ Çalışmıyor mu?Tamamlayamadığınız her devreniz hakkında yardım almak için [email protected] adresine mail yollayabilirsiniz.
Yanıp sönen bir LED göreceksiniz. Eğer çalışmıyorsa kodu kontrol edin ve tekrar derleyin sonra yükleyin ve devreyi tekrar kontrol edin veya aşağıdaki sorun giderme ipuçlarını bakın.
Arduinoki pinleri kullanmadan önce pini INPUT (giriş) yada OUTPUT (çıkış) olarak tanımlamanız gerekmektedir . Bunu yapmak için pinMode() yerleşik fonksiyonunu kullanacağız.
Bir pini OUTPUT (çıkış) olarak tanımladığınızda, o pinin HIGH (output 5 Volts-5 Volts çıkış), veya LOW (output 0 Volts-0 Volt çıkış) olarak davranmasını sağlayabilirsiniz .
digitalWrite(13, HIGH);
pinMode(13, OUTPUT);
Kod notları:
Gerçek Hayatta Uygulamaları:
Hemen hemen tüm modern televizyon ve monitörlerde ürünün çalıştığını ya da standby
durumunda olduğunu gösteren LED ler bulunur.
Arduino IDE 'yi Aç // File > Examples > Arduino Kod > Devre # 1
Ne göreceğiz?
Tüm devrelerde kodların ne olduğunu açıklayan bölümdür.
Verilen Kodu derlemeyi(verify) ve yüklemeyi(upload) unutmayın
Devrenizi tamamladıysanız , aşağıdaki gibi LED yanıp sönecektir
Kodun nasıl çalıştığını anlamak için aşağıdaki açıklamarı inceleyin.
Bu bölüm devre montajı sırasında yapılan en yaygın hataları içerir.
Bu alan kurduğunuz devrenin ve devre elemanlarının gerçek hayattaki kullanımlarını içerir.
Pin 13
Pin AØ
19X1X
330Ω
8X8X
Bu devrede potansiyometrenin ne işe yaradığını öğreneceğiz. Potansiyometre değişken bir direnç olarak bilinir. İki çıkış pini 5 Volta bağlandığında ortadaki pin potansiyometredeki kontrol düğmesinin konumuna göre 0V ile 5V arasında çıkış verir. Bu devrede, LED parlaklığını kontrol etmek için potansiyometreyi nasıl kullanacağınızı öğreneceksiniz.
Potansiyometre
Elem
anla
r:
6X
Devre #2 2
1X
330Ω
1X
Arduino Potansiyometre Arduino
+5 Volt
LED
direnç (330ohm)
(turuncu-turuncu-kahverengi)
GND(toprak-ground) (-)
Potansiyometre
1X
p.10p.24
KabloDirenç
LED
Dev
re 2
: Pot
ansi
yom
etre
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Elem
anla
r:G
erçe
k G
örün
üm:
Pota
nsiy
omet
re
e6A
tlam
a K
ablo
su
e8A
tlam
a K
ablo
su
GN
D
Atla
ma
Kab
losu
5VPi
n 13
j20
Atla
ma
Kab
losu
GN
D
Atla
ma
Kab
losu
5V5V+
+-
+-
h20
h21
LED
(5m
m)
330Ω
Dir
enç
i21
+
Atla
ma
Kab
losu
A0e7
+
a6 a7 a8
Eğer
Ard
uino
ya y
akın
dan
baka
rsan
ız b
azı p
inle
rin "D
igita
l" ba
zı p
inle
rin
ise "A
nalo
g" o
lduğ
unu
göre
ceks
iniz
. Pek
i am
a ne f
arkı
var
bu
pinl
erin
?
Ard
uino
üze
rinde
ki d
ijita
l pin
ler i
le d
ış dü
nyad
an si
nyal
alm
ak v
e dış
düny
aya s
inya
l ver
mek
çok
kola
ydır.
Hat
ta L
ED le
ri ço
k hı
zlı y
akıp
sö
ndür
erek
dim
serg
ilem
ek g
ibi n
umar
alar
ve s
eri i
letiş
im d
e "H
IGH
" ve
"LO
W" g
ibi k
alıp
lar i
le b
aşka
ciha
zlara
ver
i akt
arım
ında
kol
aylık
la
kulla
nıla
bilir
.
Am
a sa
dece
on
ya d
a of
f ola
rak
tanı
nmla
yam
ayac
ağım
ız b
irçok
şey
var
dır.
Sıca
klık
sevi
yele
ri, k
ontro
l düğ
mel
eri g
ibi b
irçok
şeyd
e pa
sif v
e ak
tif (H
IGH
ve
LO
W)
aras
ında
sür
ekli
deği
şebi
len
değe
rler
alab
ilirle
r. Bu
dur
umla
rda
Ard
uino
bir
giriş
vol
tajın
ı 0 (
0 vo
lt) il
e 10
23 (
5 vo
lt) a
rasın
da d
eğişe
bile
n sa
yıla
ra d
önüş
türe
bile
n al
tı an
alog
giri
ş sun
ar. A
nalo
g gi
rişle
r tüm
bu
gerç
ek
değe
rleri
ölçm
ekte
çok
iyid
irler
ve
bu ta
rz d
eğer
leri
Ard
uino
'ya a
ktar
man
ızı
sağl
arla
r.
Digi
tal V
Ana
log:
Diji
tal
0 vo
lt 0
5 vo
lt
1023
Ana
log
HIGH
on -
aktif
5 vo
lt
LOW
off -
pas
if
0 vo
lt
MP3 çalarlardaki ses kontrolü potansiyometre kullanımına bir örnektir.
Circuit 2 Arduino Kodu:2
Sorun Giderme:
Düzensiz Çalışma DurumuBüyük olasılıkla potansiyometrenin pinlerinin breadboarda tam oturmamasından kaynaklanabilir. Potansiyometreyi bastırarak bu sorunu çözebilirsiniz.
Çalışmama DurumuPotansiyometrenin 2. pinini analog pin yerine dijital pine bağlamadığınızdan emin olunuz.
Potansiyometrenin ayarını değiştirdikçe LED'nin hızlı ve yavaş bi şekilde yanıp söndüğünü göreceksiniz. Eğer çalışmıyorsa kodu kontrol edin ve tekrar derleyin sonra yükleyin ve devreyi tekrar kontrol edin veya aşağıdaki sorun giderme ipuçlarını bakın.
"Değişken" sizin isim verdiğiniz bir rakamdır. Değişkeni kullanmadan önce onu tanımlamalı veya bildirmelisiniz; burada sensorValue adında bir değişkeni "int" (integer-tamsayı) olarak bildiriyoruz. Bu değişken isimlerinin küçük-büyük harf duyarlı olduğunu unutmayınız.
int sensorValue;
Kod Notları:
Gerçek Hayatta Uygulamaları:
Arduino IDE 'yi Aç// File > Examples > Arduino Kod > Devre # 2
Ne göreceğiz?
Arduino her saniye binlerce satır kodu çalıştıracak kapasiteye sahip, çok hızlı bir yapıdır. Onu yavaşlatıp neler yaptığını gözlemlemek için bazen kodlar arasına ("delay")gecikmeler ekleriz. Delay() fonksiyonu milisaniye ile sayar; yani 1 s gecikme için parantez içine 1000ms yazılmalıdır.
delay(sensorValue);
Analog pindeki değeri okumak için analogRead() fonksiyonunu kullanırız. analogRead() kullanmak istediğiniz analog pindeki ("sensorPin") değeri okur ve bir rakama("sensorValue") dönüştürür, bu rakam 0 (0 Volt) ile 1023 (5 Volt) arasındadır.
sensorValue = analogRead(sensorPin);
Hâlâ Çalışmıyor mu?Tamamlayamadığınız her devreniz hakkında yardım almak için [email protected] adresine mail yollayabilirsiniz.
p.10
ICResistor
8X
LED
8X
Yanıp sönen bir LED’den daha eğlenceli şey nedir sizce? Tabi ki renkli LED'ler! RGB, yani red-blue-green LED'ler 3 adet renk barındıran ve her tür renk için kombin edilebilen bir diyot türüdür. Bu devrede Bir RGB LED kullanarak nasıl renk kombinasyonları oluşturabileceğinizi öğreneceksiniz. Her bir diyotun parlaklığına bağlı olarak neredeyse bütün renkleri elde etmeniz mümkün.
RGB LED
Elem
anla
r:Devre #3 3
p.28
Potentiometer TransistorP2N2222AG
1X
Pin 11 Pin 10 Pin 9
kırmızı
yeşil
mavi
Direnç(330ohm)(turuncu-turuncu-kahverengi)
GND(toprak-ground) (-)
6X
330Ω
3X
LED
kırmızı
commonyeşil
mavi
XX 11Direnç
Kablo
Dev
re 3
: RG
B LE
D
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
*U
zun
uç g
enel
de (g
nd)'d
ir. B
azen
ano
t, ka
tot d
eğiş
ebili
r di
kkat
edi
lmel
idir
.
Elem
anla
r:G
erçe
k G
örün
üm:
e7e1
15V
330Ω
Dir
enç
g4e4 e7
e11
5V33
0Ω D
iren
çg6
e6 e7e1
15V
330Ω
Dir
enç
g7e7
RGB
LED
(5m
m)
Atla
ma
Kab
losu
GN
D
Atla
ma
Kab
losu
5V5V+
Atla
ma
Kab
losu
Pin
9h4
Atla
ma
Kab
losu
Pin
10h6
Atla
ma
Kab
losu
Pin
11h7
e5A
tlam
a K
ablo
su
Şim
diye
kad
ar A
rdui
nonu
n an
olog
vol
tajla
rı (0
ve
5 vo
ltaj a
rasın
da k
i de
ğerle
ri) a
nalo
gRea
d() f
onks
iyon
u ku
llana
rak
okuy
abild
iğin
i gör
dük.
Pe
ki A
rdui
no'n
un a
nalo
g vo
ltaj ç
ıktıs
ı ver
mek
gib
i bir
imka
nı v
ar m
ı diy
e so
raca
k ol
ursa
k, ce
vabı
mız
hem
hay
ır he
m e
vet o
laca
ktır.
Ard
uino
ger
çek
bir a
nalo
g vo
ltaj ç
ıktıs
ına
sahi
p de
ğild
ir am
a A
rdui
no'n
un ço
k hı
zlı
olm
asın
dan
dola
yı P
WM
("Pu
lse-
Wid
th M
odul
atio
n") k
ulla
nara
k bu
çı
ktıy
ı uyd
urab
ilir*
Ard
uino
o k
adar
hız
lı ça
lışır
ki b
ir pi
ni sa
niye
de 1
000
kez a
çıp
kapa
tabi
lir.
PWM
HIG
H v
e LO
W o
lara
k ha
rcan
an za
man
ı kul
lanı
yor.
Eğer
HIG
H
konu
mun
da d
aha
fazl
a va
kit h
arca
nıyo
rsa
bu p
ine
bağl
ı ola
n LE
D p
arla
k ya
naca
ktır.
Fak
at L
OW
kon
umun
da d
aha
fazl
a va
kit h
arca
nmışs
a LE
D
daha
sönü
k ka
laca
ktır
çünk
ü pi
n gö
zün
göre
bile
ceği
nden
dah
a hı
zlı a
çıp
kapa
ma
yapa
cakt
ır. İş
te b
u A
rdun
inon
un “g
erçe
k” a
nalo
g çı
ktısı
için
ya
ptığ
ı bir
ilüzy
ondu
r.
anal
ogW
rite
() A
rkas
ında
ki Ş
ok E
dici
Ger
çek:
90%90
%
50%
50%
0.5
v
2.5
v
4.5
v
LOW
(0 v
olt)
HIG
H (5
vol
t)
LOW
(0 v
olt)
HIG
H (5
vol
t)
LOW
(0 v
olt)
HIG
H (5
vol
t)
10%
10%
a4a5
a6a7
Videogame konsolları gibi bir çok elektronikte RGB LED kullanılmaktadır. Bu LED'ler aynı bölgede farklı renkleri göstermek için kullanılıyor. Sıklıkla farklı renkler farklı çalışma şartlarını ifade eder
Circuit 2 Arduino Kodu:3
Sorun Giderme:
LED'in Işık Vermemesi veya Yanlış Renk VermesiLED'in dört pini birbirine çok yakın bulunmakta, kolaylıkla yerlerini karıştırabilirsiniz. Pinlerin nerede olması gerektiğini iki kez kontrol edin. Ayrıca uzun uç bazen GND olmayabilir, uzun ucu Arduino kartımızın 5v çıkışına bağlayıp tekrar deneyiniz.
Kırmızı Rengi GörmekRGB LED içersindeki kırmızı diyot diperlerinden daha parlak olabilir. Renklerinizi daha dengeli hale getirmek için daha yüksek bir direnç kullanın veya kodunuzda ayarlamalar yapın.analogWrite(RED_PIN, redIntensity);
to
analogWrite(RED_PIN, redIntensity/3);
LED'inizi çalışıyor olarak görmeniz lazım, fakat bu sefer LED'iniz sırayla farklı farklı renkler yayıyor olmalı. Eğer öyle değilse devrenizi doğru şekilde birleştirdiğinizden emin olun, kontrollerinizi yapın ve kartınıza yükleme yapın ve arıza tespiti kısmını kontrol edin.
Kod Notları:
Gerçek Hayatta Uygulamaları:
Arduino IDE 'yi Aç// File > Examples > Arduino Kod > Devre # 3
Ne göreceğiz?
Bir for() döngüsü bir aralıkta sayı yerleştirmek için kullanılır ve tekrarlayarak brackets{} içerisinde kodu çalıştırır. Değişken bir “x” 0 olarak başlıyor ve 767 sayısına kadar her adımda bir artarak ilerliyor ("x++")..
for (x = 0; x < 768; x++){}
Arduino çok hızlı çalışbilmektedir. Öyle ki her saniye binlerce kod satırını çalıştırabilecek kapasiteye sahiptir. Biz de cihazın ne yaptığını görebilmek için yavaşlatmak adına gecikmeler ekliyoruz. Delay() milisaniye olarka hesaplanıyor; 1 saniye 1000 milisaniye.
delay(sensorValue);
“If / else” ifadeleri programınızda seçim yapmak için kullanılır. Parantez () içerisindeki ifade değerlendirildiğinde, eğer ifadesiniz doğru ise ilk brackets{} içerisindeki ifade yürütülür. Şayet doğru değil ise ikince brackest {} içerisindeki ifade yürütülür.
if (x <= 255){}else{}
Elimizde yakıp söndürmek için bir LED var. Gelin şimdi SEKİZ LED'i anda bağlayarak çıtayı biraz yükseltelim. Böylece çeşitli renkler oluşturma konusunda Arduinomuzu da ufak bir teste tabi tutmuş olacağız. Bu devre kendi programınızı yazma pratikleri için güzel bir başlangıç adımı olacak. LED'leri kontrol aşamasında yazdığınız programı düzenli tutmanızı sağlayacak bir kaç ipucu öğrenceksiniz.
for() loops - Bu döngü birden fazla kez aynı kodu kullanmanızı sağlar.
arrays[ ] - Birden fazla değişkeni grup haline getirerek yönetilmelerini kolaylaştırır.
Çoklu LEDPin 2 Pin 3 Pin 4 Pin 5
GND
LEDLight Emitting Diode
LEDLight Emitting Diode
Direnç(330ohm)(turuncu-turuncu-kahverengi)
Direnç
(330ohm)(turuncu-turuncu-kahverengi)
Pin 6 Pin 7 Pin 8 Pin 9
GND(toprak-ground) (-)
p.32
Elem
anla
r: LED
8X
Kablo
10X
330ΩDirenç
8X
Devre #4 4Pin 2 Pin 3 Pin 4 Pin 5
Pin 6 Pin 7 Pin 8 Pin 9
Dev
re 4
: Çok
lu L
ED
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Elem
anla
r:G
erçe
k G
örün
üm:
Elem
anla
r:G
erçe
k G
örün
üm:
330Ω
Dir
enç
a18
GN
D
330Ω
Dir
enç
330Ω
Dir
enç
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Atla
ma
Kab
losu
5V
Atla
ma
Kab
losu
LED
(5m
m)
+-
+-
c2c3
e2Pi
n 2
330Ω
Dir
enç
a15
GN
D
330Ω
Dir
enç
a12
GN
D
330Ω
Dir
enç
a9G
ND
330Ω
Dir
enç
a6G
ND
330Ω
Dir
enç
a3G
ND
c23
c24
LED
(5m
m)
+-
+-
c23
c24
LED
(5m
m)
+-
+-
c20
c21
LED
(5m
m)
+-
+-
c17
c18
LED
(5m
m)
+-
+-
c14
c15
LED
(5m
m)
+-
+-
c11
c12
LED
(5m
m)
+-
+-
c8c9
LED
(5m
m)
+-
+-
c5c6
a3G
ND
a24
GN
D
a21
GN
D
Pin
3
Pin
3
e5
GN
D-
Pin
4e8
Pin
5e1
1
Pin
6e1
4
Pin
7e1
7
Pin
8e2
0
Pin
9e2
3 +
Circuit 24
Sorun Giderme:
Bazı LED'ler Işık VermeyebilirLED'inizi ters takmış olabilirsiniz, sıkça karşılaşılan bir sorundur. Çalışmayan LEDinizin doğru bağlandığından emin olun.
Sıralama DüzeniSekiz adet bağlantı ile çalıştığınız için karışıklıklar olması gayet doğal. İlk LED'i pin 2’ye yerleştirin ve diğer LED'leri devam edecek şekilde yerleştirin ve tekrar kontrol edin.Yeniden BaşlayınFarkında olmadan bağlantıyı yanlış yere kurabilirsiniz. Genelde her şeyi çıkarıp tekrar yerleştirmek, nerede hata yaptığınız aramaktan daha kolaydır.
Tek LED yerine bütün LED'lerin yanıp söndüğünü görmeniz gerek. Eğer sorun varsa devreyi doğru şekilde kurduğunuzdan emin olduktan sonra kodunuzu kontrol edin ve arıza tespit kısmını inceleyin.
Kod Notları:
Gerçek Hayatta Uygulamaları:
Kayan yazı ekranları genellikle önemli bilgiların kısa parçalarının yayınlanması şeklinde kulanılır. Bu ekranlar çok sayıda LED kullanılarak üretilir.
Arduino Kodu:
Arduino IDE 'yi Aç// File > Examples > Arduino Kod > Devre # 4
Ne göreceğiz?
“array” çok fazla değişkeni gruplar haline getirerek yönetilmesini kolaylaştıran en kullanışlı yöntemdir. Burada sekiz eleman içeren integer değerler için bir array oluşturuyoruz ve buna ledPins adını veriyoruz.
Array içerisindeki bir elemana bulundukları adres yardımı ile ulaşırsınız. İlk elemanın adresi 0, ikinci elemanın adresi 1, vs. Bir elemana ulaşmak için “ledPins[x]” komutunu kullanarak x yerine o elamanın adresini yazarsınız. Burada dijital pin 2' yi HIGH yapıyoruz.
int ledPins[] = {2,3,4,5,6,7,8,9};
Bilgisayarlarlar çalışma sırasında aynı işlemleri gerçekleştirir fakat bazen bir şeylerin rastgele olmaısnı istersiniz, örneğin bir zar atma işleminde. Random() fonksiyonu bunu yapmak için en iyi yoldur. Daha fazla bilgi için adresi ziyaret ediniz. http://arduino.cc/en/Reference/Random
index = random(8);
digitalWrite(ledPins[0], HIGH);
Wire
19X
IC
1X
330Ω
8X
LED
8X
Şu ana kadar çıktı (output) üzerine yoğunlaşmıştık. Bundan sonraki projelerimize girdiler (inputs) ile devam ediyoruz. Bu devrede çok yaygın olan bir girdiye bakacağız push botton(buton). Bir butonun Arduino üzerindeki çalışma şekli şöyledir; ne zaman ki butona bastınız, voltaj LOW seviyesine geçer. Arduino bunu okur ve buna göre davranır. Bu devrede, bir adet pull-up direnç görüyoruz. Bu direnç temiz bir voltaj oluşmasını ve butondan gelecek yanlış okumaların önüne geçilmesini sağlar.
Buton Kullanımı
Elem
anla
r:: Kablo
7X
Devre #5 5Pin 2
+5 Volt
Direnç
Pin 3
LED
GND(toprak-ground) (-)
Direnç(turuncu-turuncu-kahverengi)
(330ohm)
Push Button
2X
LED
1X
330ΩDirenç
1X
10KΩ
2X
Pin 13
Pin 2 Pin 3
p.10p.36
Direnç
Dev
re 5
: But
on K
ulla
nım
ı
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Elem
anla
r:G
erçe
k G
örün
üm:
LED
(5m
m)
+-
+-
h20
h21
Push
But
ond4
g4
d6g6
Push
But
ond9
g9
d11
g11
Atla
ma
Kab
losu
Pin
2h6
Atla
ma
Kab
losu
Pin
3h1
1
Atla
ma
Kab
losu
Pin
13j2
0
i4A
tlam
a K
ablo
su
i9A
tlam
a K
ablo
su
10K
Ω D
iren
ça1
5i6
+
10K
Ω D
iren
çi1
1+
330Ω
Dir
enç
j21
+
Ard
uino
’yu
kulla
nışlı
kıla
n şe
yler
den
biri
de, g
irdin
izde
ki b
ilgile
re d
ayan
an k
arm
aşık
ey
lem
leri
gerç
ekle
ştire
bilir
. Örn
eğin
hav
a fa
zla so
ğuk
oldu
ğund
a ısı
tıcıy
ı çal
ıştıra
bilir
, sıc
ak
oldu
ğund
a va
ntila
törü
aç
abili
r, bi
tkile
r ku
rum
aya
başla
dığı
nda
onla
rı su
laya
bilir
siniz
. Bu
eyle
mle
ri ye
rine
getir
ebilm
esi i
çin,
Ard
uino
“if”
ile
kurd
uğun
uz
karm
aşık
yap
ıları
man
tıklı
işlem
lerle
ger
çekl
eştir
ir.
Kar
maş
ık b
ir if(
) ifa
desi
oluş
turm
ak iç
in b
aşka
fonk
siyon
ları
kom
binl
eyeb
ilirs
iniz
.
Örneğin
:
if ((
mod
e ==
hea
t) &
& ((
tem
pera
ture
< th
resh
old)
|| (o
verr
ide
== tr
ue))
){ di
gita
lWri
te(H
EAT
ER, H
IGH
);} Eğ
er ıs
ıtma
mod
unda
ysan
ız v
e sıc
aklık
düş
ükse
bu
kod
ısıtıc
ıyı ç
alışt
ıraca
ktır.
Bu
tarz
işl
emle
rle A
rdui
noyu
akı
llı e
ylem
leri
gerç
ekle
ştire
bile
cek
şeki
lde
kodl
ayab
ilir
ve d
ış çe
vrey
i kon
trol a
ltına
alab
ilirs
iniz
.
Iron
Man
Olm
ak iç
in A
rdui
no:
==
Eşitl
ikA
==
B do
ğru
ise A
ve B
ayn
ıdır
.
!=Fa
rklıl
ıkA
!= B
doğ
ru is
e A
ve
B ay
nı d
eğild
ir.
&&
Ve
A &
& B
doğ
ru is
e A
ve
B 'n
in ik
isid
e do
ğrud
ur.
||V
eya
A ||
B d
oğru
ise
A v
eya
B do
ğrud
ur.
!D
eğil
!A d
oğru
ise
A y
anlış
tır. Y
anlış
ise
A d
oğru
dur.
Butonlar bir çok oyun konsolunda kontrolü sağlamak için kullanılır.
Circuit 2 Arduino Kodu:5
Sorun Giderme:
Işık yanmıyorButonuzum kare olduğu için yanlış yerleştirilmiş olabilir. 90 derece çevirin ve çalışıyor mu tekrar kontrol edin.
Işık sönmüyor
Sıklıkla yaptığımız bir hatadır. Işığı kapatırken LED bağlantınızı pin 13' den pin 9' a getirmeyi unutmayın.
Buttona bastığınızda LED'in yanıp söndüğünü görebilirsiniz. Eğer sorun varsa devreyi doğru şekilde kurduğunuzdan emin olduktan sonra kodunuzu kontrol edin ve arıza tespit kısmını inceleyin.
Kod Notları:
Gerçek Hayatta Uygulamaları:
Arduino IDE 'yi Aç// File > Examples > Arduino Kod > Devre # 5
Ne göreceğiz?
Dijital pinler çıktılar gibi girdi olarak da kullanılabilir. Fakat bu işlemi yapmadan önce, Arduinoya kullandığınız yolu söylemeniz gerek.
pinMode(button2Pin, INPUT);
Çünkü butonumuzu GND’ye bağlıyoruz ve butona bastığınızda LOW olarak okunuyor. Buttonun basılmış durumda olup olmadığını görmek için (“==”) operatörünü kullanıyoruz.
if (button1State == LOW)
Dijital bir girdiyi okumak için digitalRead() fonksinonunu kullanırız. Eğer pinde 5V varsa HIGH, 0V ise LOW olacaktır.
button1State = digitalRead(button1Pin);
Potansiyometreyi önceki projelerimizde direnci değiştirmek için kullanmıştık. Bu devrede sensöre ulaşan ışık miktarın göre direnci değişen foto dirençleri kullanacaksınız. Arduino direnci direkt olarak değerlendiremediği için foto direncimizi kullanmak için voltaj bölücü kullanacağız. Voltaj bölücü fazla ışık altında yüksek voltaj çıkışı, fazla ışık almadığı zamanda da düşük voltaj çıkışı verecek.
Foto Direnç
Elem
anla
r: Kablo
6X
Devre #6 6
LED
1X
330ΩDirenç
1X
Foto Direnç
1X
LED
GND(toprak-ground) (-)
FotoDirenç
+5 Volt
Direnç(turuncu-turuncu-kahverengi)
(330ohm)
resistor(Kahverengi-Siyah-Turuncu)
(10k ohm)
10KΩDirenç
1X
Pin 9
Pin AØ
p.40
Dev
re 6
: Fot
o D
ireç
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Elem
anla
r:G
erçe
k G
örün
üm:
Foto
Dir
enç
j1A
tlam
a Kab
losu
j6A
tlam
a Kab
losu
Atla
ma K
ablo
suGN
D
Atla
ma K
ablo
su5V5V
+
+-
+-
h20
h21
LED
(5m
m)
330Ω
Dire
nç (s
ensö
r)i2
1+
10KΩ
Dir
enç
i1i5
Atla
ma K
ablo
suA0
j5
+
f5f6
Atla
ma
Kab
losu
Pin
9 j2
0
Gör
düğü
nüz b
ütün
bu
sens
örle
rin (p
otan
siyom
etre
ler,
foto
dire
nçle
r vs.)
he
psi f
arkl
ı şek
iller
de g
örün
en d
irenç
lerd
ir. D
irenç
değ
eri a
lgıla
dıkl
arı
şeyi
n de
ğerin
e gö
re d
eğişi
r. (I
şık se
viye
si vs
.)
Ard
uino
ana
log
giriş
(inpu
t) pi
ni d
irenc
i değ
il vo
ltajı
ölçe
r. A
ma
biz
Ard
uino
muz
ile
birli
kte
“vol
taj b
ölüc
ü” o
lara
k ku
llanı
lan
dire
nçli
sens
örle
r kul
lana
cağı
z.
Bir v
olta
j böl
ücü
iki a
det d
irenç
ten
mey
dana
gel
ir. Ü
st d
irenc
i 5 v
olta
ve
alt d
irenc
i top
rağa
(GN
D) b
ağla
dığı
nızd
a, o
rta
kısım
iki d
irenç
değ
erin
e uy
gun
olan
bir
volt
çıkı
şı ve
rir. D
irenç
lerd
en b
irini
n de
ğeri
deği
ştiğ
inde
(A
lgıla
dıkl
arı b
irim
in d
eğer
i değ
iştiğ
inde
) dire
nç d
eğer
i de
deği
şece
ktir
ve
bu y
üzde
n çı
kış v
olta
jı da
bun
a ba
ğlı o
lara
k de
ğişe
cekt
ir!
Dir
enç Ö
lçüm
Sen
sörl
eri:
Pin
3
5 vo
lt
GN
D(t
opra
k-gr
ound
) (-)Pin
3
Sokak lambaları geceleri aydınlatmak için bu tür sensörler kullanır.
Circuit 2 Arduino Kodu:6
Sorun Giderme:
LED Işık VermiyorFoto Direnç ve LED in bağlantılarını tekrar kontrol edin.
Işığın Değişimine Tepki VermiyorFotodirenç üzerinde bağlantılar standart değildir, bu yüzden bağlantıları karıştırmış olmanız mümkün. Doğru yerleştirildiğinden emin olmak için iki kez kontrol edin.
Hala ÇalışmıyorAydınlatma olarak çok aydınlık veya karanlık bir odada olabilirsiniz. Işıkları duruma göre açın veya kapatın. Eğer yakınınızda flaş varsa bir de onu deneyin.
Fotodirencinizin algıladığı ışık miktarına göre LEDininiz daha parlak veya sönük yandığını görebilirsiniz. Eğer çalışmıyorsa devrenizin doğru kurulduğundan emin olun, konudunuzu yeniden yükleyin ve arıza tespit kısmını konrol edin.
Kod Notları:
Gerçek Hayatta Uygulamaları:
Arduino IDE 'yi Aç// File > Examples > Arduino Kod > Devre # 4
Ne göreceğiz?
analogRead() kullanarak okuduğumuz bir analog sinyal, 0-1023 arasında bir değer olacaktır. Fakat anologWrite() kullanarak bir PWM çalıştırmak istediğimizde, 0-255 arasında bir değer isteyecektir. Bu durumda map() fonksiyonunu kullanarak geniş alanları daha dar alanlar olacak şekilde sıkıştırabiliriz.
lightLevel = map(lightLevel, 0, 1023, 0, 255);
Kullandığımız map() fonksiyonu sınırı daraltır fakat biz bunu yanında constrain() komutu kullanarak sayıları bu sınır içerisinde tutacağız. Eğer sayı bu sınırı aşarsa daha büyük bir sayıya dönüşecek. Ama sınırın içerisindeyse aynı kalacak.
lightLevel = constrain(lightLevel, 0, 255);
Sıcaklık sensörü adından da anlaşıldığı gibi ortam sıcaklığını ölçmek için kullanılır. Bu sensörümüzde 3 adet pin bulunuyor. Pozitif, toprak(GND) ve sinyal pinleri. Bu devremizde, sıcaklık sensörünü Arduino ile nasıl entegre edileceğini öğreneceğiz ve Arduino IDE'deki serial monitörde sıcaklık değerini göreceğiz.
Sıcaklık Sensörü
Devre #7 7
p.44
Pin AØ
TMP36(precision
temperaturesensor)
GND(toprak-ground) (-)
5 Volt
+5vsignalgnd
Elem
anla
r: Kablo
5X
Sıc. Sensör
1
Transistör ve Sıcaklık Sensörü birbirlerie çok benzeyen devre elemanlarıdır. Karıştırılmamaya dikkat edilmelidir.
X
Ön
Arka
Dev
re 7
: Sıc
aklık
Sen
sörü
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Elem
anla
r:
Sıca
klık
Sen
sörü
f5f7
f6
Ger
çek
Gör
ünüm
:
j5A
tlam
a K
ablo
su
j7A
tlam
a K
ablo
su
Atla
ma
Kab
losu
GN
D
Atla
ma
Kab
losu
5V5V+
Atla
ma
Kab
losu
A0j6
+
Bu d
evre
Ard
uino
IDE’
nin
seri
mon
itörü
nü k
ulla
nıyo
r. Bu
nu a
çmak
için
ön
celik
le p
rogr
amı u
ploa
d ed
ip k
are
kutu
içer
isind
e bü
yüte
ç gib
i gör
ünen
bu
tona
bas
ıyor
uz.
Seri
al M
onitö
rü A
çıyo
ruz
1
2
3
Klima sistemlerinde sıcaklığı takip etmek ve buna göre ayarları yapılandırmak için sıcaklık sensörleri kullanılır.
Circuit 2 Arduino Kodu:7
Sorun Giderme:
Görünürde Çalışan Bir Şey YokProgramın çalıştığına dair bir gösterge yok mu? Sonuçları görmek için Arduino IDE seri monitörünü açmanız gerek. (Talimatlar önceki sayfada mevcut.)
Anlamsız EkranBu tür şeylerin meydana gelmesinin sebebi seri monitörün beklenenden farklı hızda data almasından kaynaklanıyor. Düzeltmek için ise pull-down kutucuğuna tıklayıp “baud” yazan yeri “9600 baud” olarak düzeltmeniz gereklidir.
Sıcaklık Değeri DeğişmiyorSensörünüzü parmağınızın arasına sıkıştırarak ısısını yükseltin veya buz torbası kullanarak soğutmayı deneyin.
Sıcaklık sensörünüzün algıladığı sıcaklık değerini Arduino IDE seri monitöründe okunabiliyor olarak görebiliyor olmanız gerek. Eğer çalışmıyorsa devrenizin doğru kurulduğundan emin olun, kodunuzu yeniden yükleyin ve sorun giderme kısmını konrol edin.
Kod Notları:
Gerçek Hayatta Uygulamaları:
Arduino IDE 'yi Aç// File > Examples > Arduino Kod > Devre # 7
Ne göreceğiz?
voltage: 0.73 deg C: 22.75 deg F: 72.96
voltage: 0.73 deg C: 22.75 deg F: 72.96
voltage: 0.73 deg C: 22.75 deg F: 72.96
voltage: 0.73 deg C: 22.75 deg F: 72.96
voltage: 0.73 deg C: 22.75 deg F: 72.96
Seri monitörü kullanmadan önce, başlatmak için Serial.begin() komutunu çağırmanız gerek. Bağlantı hızı veya “Baud Hızı*” 9600'dır. İki cihaz birbiriyle bağlantı kurduğunda, ikisi de aynı hıza ayarlanmış olmalıdır.
Serial.begin(9600);
Serial.print() her şeyi aynı satır üzerinde yazdırır. Serial.println() diğer satıra geçiş yapar. Bu iki komutu birlikte kullanarak okunması kolay metin ve data çıktıları oluşturabilirsiniz.
Serial.println(degreesF);
Serial.print() komutu epey zekidir. İçine attığınız hemen hemen her şeyin çıktısını verebilir, buna her türlü değişkenler de dahildir.Baud: Veri iletiminde modülatör çıkışında bir saniyede meydana gelen semboldeğişikliğidir.Daha fazla bilgi için > http://arduino.cc/en/Serial/Print
Serial.print(degreesC);
Servo motorlar gömülü elektronik uygulamalar için son derece idealdir çünkü dönen normal motorların aksine istenilen herhangi bir yönde dönebilir. Servoya ulaşan voltaj değişimine göre servoyu belirli bir pozisyona sokabilirsiniz. Örneğin 1.5 milisaniyelik bir değişim sevoyu 90 derece hareket ettirebilir. Bu devrede, servoyu kontrol edip yönlendirmek için PWM kullanmayı öğreneceğiz.
Servo Motor
Elem
anla
r: Kablo
8X
Devre #8 8
p.48
Servo
1X
Mini Servo
+5 volt(5V)
GND(toprak-ground) (-)
gnd(Siyah)
signal(beyaz)
+5v(Kırmızı)
Pin 9
Dev
re 8
: Ser
vo M
otor
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Elem
anla
r:G
erçe
k G
örün
üm:
Serv
o M
otor
e5e7
e6
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Atla
ma
Kab
losu
e6 e7e5
5V
Atla
ma
Kab
losu
Pin
9a7
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Atla
ma
Kab
losu
GN
D
b5
+
a6+
Ard
uino
sağl
adığ
ı kul
lanı
şlı d
âhili
kom
utla
rla; b
asit
giriş
(inpu
t) ve
çıkı
ş(ou
tput
) işl
emle
ri ya
pman
ızı,
man
tık k
ulla
nara
k ka
rar v
erm
eniz
i, m
atem
atik
pro
blem
leri
çözm
eniz
i sağ
lar.
Ard
uino
’nun
asıl
gücü
ise b
u pl
atfo
rmu
kulla
nan
deva
sa
topl
uluk
ların
yap
tıkla
rı ça
lışm
alar
ı pay
laşm
a iste
ğidi
r. A
rdui
no b
ir ço
k ku
llanı
şlı
kütü
phan
eye s
ahip
tir. B
u ör
nekt
e kul
land
ığım
ız se
rvo
kütü
phan
esi b
unla
rdan
biri
dir.
Stan
dart
kütü
phan
eler
ve k
ulla
nım
kıla
vuzla
rı iç
in si
teyi
ziya
ret e
debi
lirsin
iz.
http
: //a
rdui
no.cc
/en/
Refe
renc
e/Li
brar
ies
Her
kes k
endi
küt
üpha
nesin
i olu
ştura
bilir
, eğe
r yen
i bir
sens
ör v
eya ç
ıktı(
outp
ut)
ciha
zı k
ulla
naca
ksan
ız y
eni k
ütüp
hane
yaz
abili
rsin
iz, t
abik
i şan
sınız
a bağ
lı ol
arak
dah
a ön
ce b
unu
biris
i siz
in iç
in y
apm
ış ol
abili
r. Bi
rçok
Ard
uino
küt
üpha
nele
rine u
laşm
ak
için
Goo
gle v
eya A
rdui
no P
layg
roun
d’ı k
ulla
nabi
lirsin
iz.
http
://ar
duin
o.cc
/pla
ygro
und
Ard
uino
’nuz
u al
dığı
nızd
a yen
i bir
ciha
zla k
ulla
naca
ksan
ız, k
ütüp
hane
nizi
olu
şturu
n ve
bun
u bü
tün
düny
ayla
pay
laşın
! Küt
üpha
neyi
tasla
kta (
sket
ch) k
ulla
nmak
için
Sk
etch
> Im
port
Lib
rary
kısm
ında
n se
çini
z.
Küt
üpha
nele
r Kul
lana
rak
Ufk
unuz
u G
eniş
letin
File
Edit
Sket
chTo
ols
Hel
p
EEP
RO
MEt
her
net
Firm
ata
Liq
uid
Cry
stal
SD Serv
oSo
ftw
areS
eria
lSP
ISt
epp
erW
ire
Ver
ify
/ C
om
pile
Sho
w S
ketc
h F
old
erA
dd
File
...Im
po
rt L
ibra
ry
Circuit 2 Arduino Kodu:8
Sorun Giderme:
Servo Dönmüyor: Farklı renkli kabloları olmasına rağmen şaşırtıcı şekilde motorun ters bağlanmış olması mümkün olabiliyor. Muhtemelen sorununuz bundan kaynaklıdır.
Çalışmamakta Israr Ediyor: Muhtemelen (kırmızı ve kahverengi kablolar) 5 Volt ve toprak(gnd) bağlantısı yanlış yapılmıştır.
Oldu Bitti : Servonuz çalışıyor fakat kesik hareketler gerçekleştiriyorsa ve Arduino üzerinde yanıp sönen bir ışık var ise muhtemelen enerjiniz yetersizdir. Usb yerine bir adaptör kullanmak bu sorunu çözecektir.
Servo motorunuzun farklı hızlarda değişik konumlarda dönebildiğini görebilirsiniz. Şayet motorunuz hareket etmiyorsa bağlantılarınızı kontrol ettikten sonra kodunuzun doğru olduğundan emin olun ve upload edin. Hatanın kaynağını görmek için arıza tespit kısmına göz atın.
Kod Notları:
Gerçek Hayatta Uygulamaları:
Karşılaştığınız robot kollarda servo motorlar kullanılmaktadır.
Arduino IDE 'yi Aç// File > Examples > Arduino Kod > Devre # 8
Ne göreceğiz?
#include kütüphaneyi (veya başka bir dosya) taslağınıza (sketch) ekleyen özel bir önişlemcidir. Bu komutu kendiniz yazabilir veya hali hazırda yüklü olan bir kütüphaneyi "sketch / import library" menüsünden seçebilirsiniz.
#include <Servo.h>
Servo kütüphanesinde write() komutunu kullanarak servonun döneceği derece aralığını (0-180) belirleyebiliriz. Şunu unutmayın, servo hareket için zaman ihtiyaç duyar, ihtiyacınıza göre delay() komutu kullanarak kısa zaman aralıkları tanımlayabilirsiniz.
servo1.write(180);
Servo kütüphanesi servoyu kontrol etmenizi sağlayan yeni komut imkanı sunar. Arduino’yu servo kontrolüne hazırlarken öncelikle her servo için Servo”object” oluşturmanız gereklidir. (Biz “servo1” olarak adlandırdık.) Ardından servoyu bir dijital pine eşleştirmeniz “attach” gereklidir. (Biz pin 9'u kullanıyoruz.)
Servo servo1;
servo1.attach(9);
Bu devremizde dijital dünya ve analog dünya arasında köprü kuracağız. Bunun için bir buzzer (speaker) kullanacağız. Tek başına çok heyecan verici bir şey olmasa da, bir saniyede yüzlerce kez voltajı açıp kapadığınızda buzzer ses üretecektir. Birden fazla üretilmiş sesi bir araya getirdiğinizde, kendi müziğinizi elde edebilirsiniz! Bu devre ve taslak klasik bir ses üretecektir. Sizi hayal kırıklığına uğratmayacağız.
Buzzer
Elem
anla
r: Kablo
4X
Devre #9 9
p.52
Buzzer
1X
Buzzer
GND(toprak-ground) (-)
Pin 9
Buzzer kolayca breadboard deliklerine uymazsa, hafifçe döndürmeyi deneyin.
Dev
re 9
: Buz
zer
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Elem
anla
r:G
erçe
k G
örün
üm:
Buzz
er+
-j9
j7
Atla
ma
Kab
losu
Pin
9j9
i7
Atla
ma
Kab
losu
GN
D
Atla
ma
Kab
losu
Atla
ma
Kab
losu
5V5V+
Ard
uino
içer
sinde
her
türlü
şey
için
kul
lanı
labi
lece
k ko
cam
an b
ir se
rvet
ba
rındı
rıyor
. (Bk
nz: http
://ardu
ino.cc/en/Re
ference)
Bun
un y
anı s
ıra k
endi
fo
nksiy
onla
rınız
ı olu
şturm
ak d
a old
ukça
bas
it. Ö
rnek
ver
ecek
olu
rsak
“add
” iki
sa
yıyı
bir
topl
ayıp
size
sonu
cu v
erir.
Fonk
siyon
unuz
bir
değe
ri al
abili
r. (‘’
para
met
re”)
ve b
aşka
bir
değe
re
dönü
ştüre
bilir
. Eğe
r fon
ksiy
onun
uza b
ir pa
ram
etre
atam
ak is
ters
eniz
, fo
nksiy
onda
n so
nra g
elen
par
ante
z içe
risin
e bu
değe
ri ya
zabi
lirsin
iz. E
ğer
para
met
re v
erm
eyec
ekse
niz p
aran
tez i
çeris
ini b
oş b
ıraka
bilir
siniz
. Eğe
r fo
nksiy
onun
uzda
n bi
r değ
er çe
kece
ksen
iz d
eğer
tipi
ni fo
nksiy
on is
min
izin
önü
ne
yazı
n. D
eğer
i çek
mey
e haz
ırsan
ız re
turn
() k
omut
u ek
leyi
n. E
ğer d
eğer
dö
ndür
mey
ecek
seni
z fon
ksiy
on is
min
izin
önü
ne “v
oid”
ekle
yin.
( se
tup(
) ve
loop
() fo
nksiy
onla
rında
gör
müş
old
uğun
uz g
ibi )
Ken
di fo
nksiy
onun
uzu
yazd
ığın
ızda
kod
unuz
u dü
zenl
i ve k
ulla
nım
ı kol
ay b
ir ha
le g
etiri
n.
Ken
di F
onks
iyon
ları
Olu
ştur
ma
int a
dd(i
nt p
aram
eter
1, in
t par
amet
er2)
{in
t x;
x =
para
met
er1
+ pa
ram
eter
2;
retu
rn(x
);}
Modern megafonlarda güçlendirilmiş buzzerlar kullanılıyor. Gerçekten fazla gürültülü olmalarına rağmen insanların ilgisini çekmekte yeterince etkili.
Arduino Kodu:9
Tabi bir şey duymuyor olmanızda mümkün. Eğer çalışmamışsa bağlantılarınızı kontrol ettikten ve kodunuzu gözden geçirdikten sonra tekrar upload edin ve hata devam ederse sorun giderme kısmına göz atın.
Sorun Giderme:
Ses YokBreadboard üzerindeki boşlukları karıştırmış olmanız mümkün. Cihaz yerleşimini tekrar kontrol edin.
Müzik Çalarken DüşünemiyorumO halde düşünürken cihazınızı sökün, kullanacağınız zaman programı upload edip tekrar monte edin.
Twinkle Twinkle Little Stars Şarkısından SıkıldımNasıl yapacağınızı öğrendiğinize göre artık kendi şarkılarınızı upload edebilirsiniz.
Kod notları:
Gerçek Hayatta Uygulamaları:
Arduino IDE 'yi Aç// File > Examples > Arduino Kod > Devre # 9
Ne göreceğiz?
Şimdiye kadar sadece sayısal verilerle çalıştık ama Arduino aynı zamanda metinlerle de çalışabilir. Karakterlerin (tek karekterler, harfler, numaralar, semboller) kendilerine ait tipleri mevcuttur. Bu tipe “char” diyoruz. Bir karakter diziniz varsa çift tırnak içerisinde tanımlanabilir. “string” olarak tanımlarsanız tek tırnak içerisinde belirtilmelidir.
char notes[] = "cdfda ag cdfdg gf ";
char names[] = {'c','d','e','f','g','a','b','C'};
Arduino'nun kullanışlı komutlarından biri de tone() fonksiyonudur. Bu fonksiyon bir çıkış pinini belirli bir frekansda çalıştırabiliyor, böylece buzzer ve speakerlar için ideal hale geliyor. Eğer belirli bir süre tanımlayacak olursanız(milisaniye cinsinden) o süre zarfından ses oluşturacak ve ardından suracaktır. Eğer süre belirmememişseniz, sonsuza kadar ses üretebilir.(Tabiki noTone() komutu kullanarak bunu sonlandırabilirsiniz.)
tone(pin, frequency, duration);
Servo motorlarla oynadığınız zamanlardan öncesini hatırlayın. Şimdi biraz da motorun dönüşüyle uğraşacağız. Bunun için transistore ihtiyacımız var çünkü transistorler Arduino’nun yapabildiğinden daha büyük miktarlarda akım dönüştürebiliyor. Transistor kullandığınızda maximum seviyesine bakarak kullanımınız için yeterince uygun olup olmadığına karar verin. Bu devre için 40V ve 200 mA'lık transistor işimizi görür. Oyuncak moturumuz için yeter de artar!
Motor Döndürmek
Elem
anla
r: Kablo
6X
Devre #10 10
1X
DC Motor
1X
Diyot1N4148
p.56
TransistörP2N2222AG
1X
Transistör ve Sıcaklık Sensörü birbirlerie çok benzeyen devre elemanlarıdır. Karıştırılmamaya dikkat edilmelidir.
330ΩDirenç
1X
P2N2
222A
A18
P2N2
222A
A18
FRONT
BACK
GND(toprak-ground) (-)
basetransistör P2N2222AG
collector
mo
tor
Mul
timet
re
Diyot
emitter
+5 volt(5V)
Direnç(turuncu-turuncu-kahverengi)
(330ohm)
Pin 9
Dev
re 1
0: M
otor
Dön
dürm
ek
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Elem
anla
r:G
erçe
k G
örün
üm:
Tran
sist
or P
2N22
22A
Ga1
a3a2
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Pin
9j2
Atla
ma
Kab
losu
Atla
ma
Kab
losu
Atla
ma
Kab
losu
5V
Atla
ma
Kab
losu
GN
D
Dio
de 1
N41
48a3
GN
Db7
b11
e7e1
1
e7e1
1
DC
Mot
or
5V33
0Ω D
iren
ç g2
e2 e1 a7+
+
e3d1
1
Muh
tem
elen
bu
nokt
ada d
evre
niz i
çin
eğle
ncel
i bir
fikrin
iz v
eya b
ir so
runu
çö
zmey
e yön
elik
çözü
m ö
nerin
iz o
labi
lir. H
arik
a! O
hal
de b
iz d
e siz
e gen
el
prog
ram
lam
a kon
usun
da b
ir ka
ç püf
nok
tası
öner
elim
.
Yazd
ığın
ı bir
çok
tasla
k (s
ketc
h) aş
ağıd
akile
rin b
ir ka
çını
vey
a hep
sini i
çere
cek:
1. in
put d
enem
esi y
apın
.2.
Baz
ı hes
apla
mal
ar y
apın
ve k
arar
ver
in.
3. O
utpu
t alm
aya
çalış
ın.
4. T
ekra
r edi
n!(V
eya
etm
eyin
size
kal
mış
.)
Birç
ok in
put s
ensö
rü v
e out
put c
ihaz
ının
nas
ıl ça
lıştığ
ı hak
kınd
a epe
y bi
lgi
verd
ik. (
Bir k
aç ci
hazı
mız
ve s
ensö
rüm
üz d
aha v
ar ta
bi) A
rtık
öğr
endi
kler
iniz
i ke
ndi t
asla
ğını
zda ö
zgür
ce k
ulla
nabi
lirsin
iz. İ
şte b
u “A
çık
Kay
nak”
akım
ının
ar
dınd
a yat
an fi
krin
ta k
endi
sidir.
Far
klı t
asla
klar
dan(
sket
ch) p
arça
lar t
opla
mak
ve
bun
ları
birle
ştirip
yen
i şey
ler ü
retm
ek fa
zlasıy
la k
olay
, tek
yap
man
ız g
erek
en
iki a
det p
ence
re aç
mak
ve b
irind
en d
iğer
ine k
opya
layı
p ya
pıştı
rmak
. Bu
yüzd
en
“iyi p
rogr
amla
ma a
lışka
nlığ
ı” fik
rini a
şılıy
oruz
. Ayn
ı pin
num
aral
arın
ı ku
llanm
ak v
e tas
lağı
nızı
fonk
siyon
lara
ayırm
ak, k
odun
uzun
yen
iden
ku
llanı
labi
lirliğ
ini k
olay
laştı
rır. Ö
rneğ
in b
ir ko
dun
iki b
ölüm
ü iç
in ay
nı p
ini
kulla
nıyo
rsan
ız k
olay
lıkla
ikisi
nden
biri
nin
pini
ni d
eğişt
irebi
lirsin
iz.(Ş
unu
unut
may
ın k
i büy
ün p
inle
r ana
logW
rite(
) des
teği
ne sa
hip
deği
l, uy
umlu
ola
nlar
de
vre k
artın
ızda
işar
etli
bulu
nuyo
r.)
Eğer
yar
dım
a iht
iyaç
duy
arsa
nız b
unun
için
kul
lana
bile
ceği
niz i
nter
net
foru
mla
rı va
r. ar
duin
o.cc
/foru
m ad
resin
deki
Ard
uino
foru
mun
u de
neye
bilir
siniz
. Bun
un y
anı s
ıra fo
rum
.spar
kfun
.com
adre
sinde
n ve
fo
rum
.ardu
inot
urki
ye.co
m d
a siz
lere
yar
dım
cı o
laca
ktır.
İşi i
lerle
tmey
e haz
ır ol
duğu
nuzd
a dah
a ile
ri se
viye
kon
ular
için
ardu
ino.
cc/e
n/Tu
toria
l say
fasın
dan
A
rdui
no T
utor
ial s
ayfa
sına u
ğray
abili
rsin
iz. S
onun
da, h
aval
ı bir
şeyl
er
üret
tiğin
iz v
akit,
bun
u bü
tün
düny
ayla
pay
laşın
ki b
ütün
dün
ya d
ahili
ğini
zden
fa
ydal
anab
ilsin
. (V
e biz
im b
unda
n ha
berd
ar o
lmam
ızı s
ağal
ayın
ki b
unu
anas
ayfa
mız
da p
ayla
şabi
lelim
!)
Hep
sini
bir
ara
ya g
etir
irse
k:
P2N2222AA18
Arduino Kodu:10
Sorun Giderme:
Motor DönmüyorKendi transistörünüzü kullanıyorsanız, data sheeti iki kez kontrol ederek pinout’un P2N2222AG ile uyumlu olup olmadığını tespit edin.
Çalışmamaya Devam Ediyor Kendi motorunuzu kullanıyorsanız motorunuzu 5V ile çalıştırmayı deneyin ve daha fazla güç çekip çekmediğini kontrol edin.
Çalışmamakta IsrarcıBazen Arduino bilgisayarla bağlantısını koparabilir. USB girişinizi çıkarıp tekrar takın.
Eğer bileşenleri doğru yerleştirmişseniz DC motorunuzun çalışması gerek. Eğer çalışmıyorsa arıza tespit kısmını kontrol edin.
Kod Notları:
Gerçek Hayatta Uygulamaları:
Radio Kontrollü RC arabalar, DC motor kullanılar.
Arduino IDE 'yi Aç// File > Examples > Arduino Kod > Devre # 10
Ne göreceğiz?
Arduino seri portları data gönderimi için olduğu gibi data alımı için de kullanılabilir çünkü herhangi bir zaman da data aktarımı olabilir. Arduino siz bu bilgiyi kullanana kadar depolar ve korur.The Serial.available() komutu portunuza ulaşmış fakat taslağınızda (sketch) henüz kullanılmamış olan karakter numaralarını geri getirir. Sıfır, ulaşmış data yok anlamına gelir.
while (Serial.available() > 0)
Portunuzda bekleyen hali hazırda datanız mevcut ise, kullanacabileceğiz bir kaç yöntem var. Port içerisine sayıları girmeye başladığımızdan beri Serial.parselnt() komutu ile ayırma ve integer numaraları kendisini oluşturan karakterlere ayrıştırmak için kulllanıyoruz. Eğer portunuza “1” ”0” ”0”yazarsanız, bu fonksiyon bu numaraları 100 olarak çevirecektir.
speed = Serial.parseInt();
p.
1X 8X
Bu devrede, röle kontrolü için Devre#10' da öğrendiklerimizi kullanacağız. Röle basitçe söyleyecek olursak elektriksel olarak kontrol edilen mekanik bir anahtardır. Bu zararsız görünen plastik kutunun içerisinde elektromagnet bulunuyor. Ne zaman ki fazla enerji ile yüklenirse anahtarı açıyor. Bu devrede Arduino’nuza daha güçlü yetenekler kazandırmayı ve bir röleyi profesyonelce kullanmayı öğreneceksiniz.
Röle
Elem
anla
r:Devre #11
p.60
TransistörP2N2222AG
1X
Röle
1X 1X
Diyot1N4148
Kablo
14X
330ΩDirenç
2X
LED
2X
GND(toprak-ground) (-)
basetransistör P2N2222AG
collector
Diyotcoil
NC
NO
com
emitter
5 volt
5 volt
Direnç(turuncu-turuncu-kahverengi)
(330ohm)
Direnç(turuncu-turuncu-kahverengi)
(330ohm)
LED LED Röle kapalıyken, COM(common) pini NC (Normally Closed) pinine bağlanır.Röle açıkken, COM(common) pini NO (Normally Open) pinine bağlanır.
Pin 2 11
Dev
re 1
1: R
öle
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Emre A.
Röle
e9f9
e15
f15
Elem
anla
r:G
erçe
k G
örün
üm:
e2A
tlam
a K
ablo
su
h9A
tlam
a K
ablo
su+
f5f7
f6
Diy
ot 1N
4148
a3G
ND
b7b1
1
Tran
sist
ör P2
N222
2AG
a2a4
a3
e7e1
15V
330Ω
Dir
enç
g3e3 e7
e11
5V33
0Ω D
iren
çg2
e2
Elem
anla
r:G
erçe
k G
örün
üm:
LED
(5m
m)
+-
+-
c19
c20
LED
(5m
m)
+-
+-
c22
c23
i13
Atla
ma
Kab
losu
i13
e22
j5A
tlam
a K
ablo
suj7
j9
Atla
ma
Kab
losu
i15
e19
e15
e19
e15
e19
b14
e19
Atla
ma
Kab
losu
a7a9
Atla
ma
Kab
losu
e4e9
++ +
Atla
ma
Kab
losu
e15
e19
Atla
ma
Kab
losu
e15
e19
Atla
ma
Kab
losu
a23+
Atla
ma
Kab
losu
GN
D
Atla
ma
Kab
losu
5V5V+
Atla
ma
Kab
losu
Pin
2j3
Atla
ma
Kab
losu
a20
P2N2222AA18
Garaj kapılarını açmak için röle kullanılır. Eğer dikkatli dinlerseniz klik sesini duyabilirsiniz.
11
Sorun Giderme:
LED Işık VermiyorLEDi doğru taktığınızdan emin olun. Uzun olan uç pozitif uçtur.
Klik Sesi GelmiyorTransistör veya bobin çalışmıyorsa transistörün doğru şekilde takılı olduğundan emin olun.
Çalışmamakta Israrcı
Röle breadboard ile kullanılmak için değil lehimlenmek için dizayn edilmiş olabilir. Breadboard deliklerine tam oturması için gerektiği kadar ittirmeyi deneyin.
Röle bağlantı klik sesini duymuş olmanız gerek ve ardından 1 saniyelik aralıkta LED'leri aydınlıklarını kendi aralarında değiştirdiklerini görebilirsiniz. Eğer devreniz çalışmamışsa devre kurulumunuzu kontrol edin, kodlarınızı tekrar upload edin.
Kod Notları:
Gerçek Hayatta Uygulamaları:
Arduino Kodu:
Arduino IDE 'yi Aç// File > Examples > Arduino Kod > Devre # 11
Ne göreceğiz?
Transistör çalışmaya başladığında röle bobinine enerji sağlar. Böylece röle anahtarı(switch) kapanır. Bu kapanma ile rölenin COM pini NO(Normally Open) pinine bağlanmış olur. Bağlantı sağlandıktan sonra pinler çalışmaya başlayacaktır. (Biz çalıştığını görmeniz için LED kullandık ama başka bir şey de kullanılabilir tabi ki.)
digitalWrite(relayPin, HIGH);
Röle NC denen ilave bir bağlantıya sahiptir. Röle kapalı olduğunda NC pini COM pini ile bağlantı kurar. Rölenin açık veya kapalı olmasına bağlı olarak iki pinden birini kullanabilirsiniz. Aynı zamanda bu iki pini iki cihazın enerjisini değiştirmek için de kullanabilirsiniz.
digitalWrite(relayPin, LOW);
Shift Register
Elem
anla
r: Kablo
19X
Devre #12 12
p.64
Şimdi de entegre devrelere adım atıyoruz. Bu devremizde shift register hakkında her şeyi öğreneceksiniz. Shift register Arduinonuza ilaveten 8 output verir ve Arduino'nun sadece 3 pini kullanılır. Bu devrede 8 adet LED 'i kontrol etmek için shift register kullanacağız.
IC
1X
330ΩDirenç
8X
LED
8X
GND(toprak-ground) (-)
+5 volt
+5 volt
15 1016
1
2
3
4
5
6
78
11
12
14
13
data
clock
latch
Direnç(turuncu-turuncu-kahverengi)
(330ohm) LED'ler
4
Pin 3
Pin 4
Pin 2
Bacakları 90° bükün.
Breadboard üzerinde “e5” ve “f5” arasında çentiği
hizalayın.
1
2
3
4
5
6
7
8
QB
QC
QD
QE
QF
QG
QH
GND
VCC
QA
SER
OE
RCLK
SRCLK
SRCLR
QH’
16
15
14
13
12
11
10
9
Dev
re 1
4: S
hift
Regi
ster
ab
cd
ef
gh
i1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ab
cd
ef
gh
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Elem
anla
r:G
erçe
k G
örün
üm:
Elem
anla
r:G
erçe
k G
örün
üm:
LED
(5m
m)
+-
+-
c14
c15
LED
(5m
m)
+-
+-
c17
c18
LED
(5m
m)
+-
+-
c20
c21
LED
(5m
m)
+-
+-
c23
c24
LED
(5m
m)
+-
+-
h14
h15
LED
(5m
m)
+-
+-
h17
h18
LED
(5m
m)
+-
+-
h20
h21
LED
(5m
m)
+-
+-
h23
h24 a3a15
330Ω
Dir
enç
a3G
ND
c23
a18
330Ω
Dir
enç
a3G
ND
c23
a21
330Ω
Dir
enç
a3G
ND
c23
a24
330Ω
Dir
enç
a3G
ND
j15
c24
330Ω
Dir
enç
a3G
ND
j18
c24
330Ω
Dir
enç
a3G
ND
j21
c24
330Ω
Dir
enç
a3G
ND
j24
c24
330Ω
Dir
enç
ICe5 f5
e6 f6
e7 f7
e8 f8
e9 f9
e10
f10
e11
f11
e12
f12 a3G
ND
Atla
ma
Kab
losu
++
a3G
ND
Atla
ma
Kab
losu
++ a3
GN
DA
tlam
a K
ablo
suj5
+ a3G
ND
Atla
ma
Kab
losu
j6a1
4
Atla
ma
Kab
losu
a3G
ND
Atla
ma
Kab
losu
j8a1
4
Atla
ma
Kab
losu
Atla
ma
Kab
losu
a3G
ND
Atla
ma
Kab
losu
f14
a8 a3G
ND
Atla
ma
Kab
losu
f17
a9 a3G
ND
Atla
ma
Kab
losu
f20
a10 a3
GN
DA
tlam
a K
ablo
suf2
3a1
1 a3G
ND
Atla
ma
Kab
losu
a23
a7 a3G
ND
Atla
ma
Kab
losu
a20
a6 a3G
ND
Atla
ma
Kab
losu
a17
a5 a3G
ND
Atla
ma
Kab
losu
a14
j6
Atla
ma
Kab
losu
Atla
ma
Kab
losu
j7Pi
n 2
j9Pi
n 4
j10
Pin
3
a3G
ND
Atla
ma
Kab
losu
j11
a14+
j10
5V+
GN
D
Devre 4 mantığı ile, birden çok LED kullanarak kayan yazı ekranları yapabilirsiniz.
12
Sorun Giderme:
Devre 4’ te olduğu gibi LED 'in yandığını görmeniz gerek (Tek fark shift register kullandık.) Eğer LED ışık vermiyorsa bağlantılarınızı kontrol edin ve kodunuzu tekrar upload edin.
Kod Notları:
Gerçek Hayatta Uygulamaları:
Arduino Kodu:
Arduino IDE 'yi Aç// File > Examples > Arduino Kod > Devre # 2
Ne göreceğiz?
SPI(Serial Peripheral Interface) arayüzünü kullanmak için shift register
(ve birçok farklı parça) ile iletişim kuracaksınız. MSBFIRST parametresi
bireysel bitlere gönderilen komutları belirler, bu durumda MSBFIRST
gönderiyoruz.shiftOut(datapin, clockpin, MSBFIRST, data);
Bitler bilgisayar hafızasının en küçük yapı taşlarıdır, her bit 1 veya 0
depolayabilir. Daha büyük sayılar bitlerden oluşan dizilerle depolanır. Bazen
bu bitler üzerinde oynama yapmak isteriz. Örneğin 8 biti shift register'a
gönderiyoruz ve LED'i açıp kapatması için 1 veya 0 yapmasını istiyoruz.
Arduino bitWrite() gibi basit komutlarıyla bu işlemi gerçekleştirebiliyor.
bitWrite(data,desiredPin,desiredState);
LED PatladıBu bir çok kez başımıza geldi. Sebebi entegrenin ters takılmasından kaynaklanıyor. Eğer hemendüzeltirseniz hiçbir şeyi bozmadan durumu kurtarabilirsiniz.
Çalışmamaya Devam EdiyorSürekli aynı şeyi söylüyoruz ama muhtelemen kablolar yanlış takılmıştır.
Mühendisler, Teknik Elemanlar, Maker'lar, Hacker'lar, hobi elektronik seven herkes için açık kaynaklı bir çok yerli ve yabancı kaynaktan yararlanarak sizler "AkademikPort Arduino Başlangıç Projeleri" eğitimini hazırladık. Daha çok eğitim ve projelere ulaşmak için www.akademikport.com adresini ziyaret edebilirsiniz. Bir sonraki eğitimde görüşmek üzere.
Emre ARSLAN
Sitemizi ziyaret edebilirsiniz!
Ve Sonuna Geldik.
Kaynak
AkademikPort Kurumsal İllişkiler Koordinatörü
11
NOTLAR
Sparkfun SIK GUIDE
Adafruit.comArduino - Coşkun Taşdemir
Instructables.com
Mühendisler, Teknik Elemanlar, Maker'lar, Hacker'lar, hobi elektronik seven herkes için açık kaynaklı bir çok yerli ve yabancı kaynaktan yararlanarak sizler "AkademikPort Arduino Başlangıç Projeleri" eğitimini hazırladık. Daha çok eğitim ve projelere ulaşmak için www.akademikport.com adresini ziyaret edebilirsiniz. Bir sonraki eğitimde görüşmek üzere.
Emre ARSLAN
Sitemizi ziyaret edebilirsiniz!
Ve Sonuna Geldik.
Kaynak
AkademikPort Kurumsal İllişkiler Koordinatörü
11
NOTLAR
Sparkfun SIK GUIDE
Adafruit.comArduino - Coşkun Taşdemir
Instructables.com