Académique Documents
Professionnel Documents
Culture Documents
facebook.com/flashasbi
hasbi.sevinc@gmail.com
hasbisevinc.com
NSZ
Hibir kitabn nszn okumam. Fakat okuyanlar iin kitab tantan ksa bir yaz
yazmak istedim. Trkiye ne yazk ki teknolojiyi geriden izleyen bir toplum
konumundadr. Bu durumdan kurtulmamz iin herkesin bildiini paylamas
gerektiini dnmekteyim. Bu yzden bu kitab yazmaya karar verdim. Kitapta
anlattklarm anlatan web siteleri internette mevcut. Ben bu kitapta temel dzeyde
lazm olacak tm bilgileri bir yerde toplamak istedim.
Umarm kitabm sizler iin yararl olur
NDEKLER
Neden Arduino? ......................................................................................................................... 1
Temel Elektronik......................................................................................................................... 1
Voltaj Blc .............................................................................................................................. 2
Temel Yazlm Bilgileri................................................................................................................. 3
Arduinonun Kurulumu ve Arduino Program ............................................................................ 5
Arduino ile Yanp Snen Led Yapm........................................................................................... 7
Arduino ile Kara imek Devre ................................................................................................... 9
Arduino ile Buton Kullanm ..................................................................................................... 10
Arduino ile SeriPort zerinden Bilgisayara Veri Yollama ......................................................... 12
Arduino ile Bluetooth Haberlemesi ........................................................................................ 14
Arduino ile Analog Veri Okuma ................................................................................................ 16
Arduino ile Siyah Beyaz Kontrol ............................................................................................. 17
Arduino ile LCD Kullanm ......................................................................................................... 19
Dahili EEPROMa Yazma ve Okuma .......................................................................................... 20
Arduino ile Servo Kullanm ...................................................................................................... 21
Arduino ile DC Motor Srme .................................................................................................... 22
Arduino ile Uzaklk Sensr ...................................................................................................... 27
Arduino ile vme lm .......................................................................................................... 29
ARDUNO UYGULAMALARI ....................................................................................................... 30
Trafik Lambalar .................................................................................................................... 30
Arduino ile Voltmetre Robot Yapm .................................................................................... 31
LM35 ile Scaklk lm....................................................................................................... 32
Arduino ile arpmayan Robot Yapm .................................................................................. 33
Arduino ile Basit izgi zleyen Robot Yapm ........................................................................ 36
Arduino ile Bluetooth Kontroll Robot Yapm ..................................................................... 38
Neden Arduino?
Arduino Atmel marka ilemcilerin kullanld hazr bir devre kartdr. Ak kaynak kodludur ve
isteyen kii kendi Arduinosunu yapabilir. Arduino projelerde kullanm kolayl salar ve
projelerin daha hzl ve stabil olarak yaplmasn salar. Arduino yap ve zelliklerine gre
eitli trlerden olumaktadr. Biz projemizde Arduino Uno modelini kullanacaz.
Arduino zerinde USB balants, g balants ve giri k pinleri bulunmaktadr. USB
balants karta program yollama, bilgisayar ile kart arasndaki bilgi aktarmna ve kart
beslemek iin kullanlr. G balants da ayn ekilde harici beslemeler iin kullanlr. 9
Voltluk besleme nerilir. USBden beslemek bu besleme trne gre daha risklidir. nk
bilgisayarn USB k yeterli akm vermeyebilir Arduino iin (motor ile ilgili uygulamalarda
zellikle). Arduino ile programlamaya balamadan nce baz temel elektronik bilgilerimizi
gzden geirelim.
Temel Elektronik
Breadboard
Resimde grld gibi breadboardmzn iki kenarnda aaya doru
uzanan delikler vardr. Bu delikler besleme kanalmzdr. Aaya doru inen
izgilere karlk gelen delikler ksa devre durumundadr. Yani sol stteki
krmzdan balanan bir kablo ayn izgi zerinden balanacak kablolar ile
birleiktir. Ay ekilde orta ksmdaki yatay izgilere karlk gelen delikler de
birbirleri ile balantldr. Fark ettiyseniz yatay izgilerin ortasndan bir yark
gemektedir. Bu yarn amac entegrelerimizi kolaylkla takabilmemizi
salamasdr.
Diren
Hemen hemen herkesin bildii bilgilerimizi de gzden geirelim. V=I*R formln
inceleyelim; bu formle gre sabit bir voltaj altnda direncimizi arttrrsak Akmmz
azalmaktadr. Bu zellik ile fazla akm ekmemesini istediimiz elemanlarn nne diren
koymalyz.
Voltaj Blc
Giri voltajnn istenilen voltaja drlmesini salayan devredir. ekildeki gibi kurulur. k
voltaj R1 ve R2 direnlerine baldr. Vout = Vgiri*R2/(R1+R2) eklinde yazlr. rnein
R1=10k R2= 10k ohm olarak seilir ve giri voltajmz da 5 volt olursa, k voltajmz =
5*10K/(10K+10K) = 2.5 Volt olarak bulunur.
Diyotlar
Kullanm alanlarna gre eitli diyotlar bulunmaktadr. Led, fotosel, zener diyotlar bunlara
rnek olarak verilebilir. Lise bilgilerimizden de bildiimiz gibi diyotlar tek ynde geirgendir.
ekildeki resimde akm geirme yn belirtilmitir. Fakat ne yazk ki gerek dnyada diyotlar
kat zerindeki gibi ideal davranmazlar. Diyot akm geirme ynnde kullanlsa bile bir voltaj
farkna neden olmaktadr. Bu voltaj fark diyotun yapsna gre deimekle beraber genellikle
0,6 0,7 Volt arasnda olmaktadr.
Zener Diyotlar
Genellikle devreye dier diyotlardan farkl olarak ters balanrlar. Ters (tkama) ynnde
oluturduklar gerilim fark sayesinde kol zerindeki gerilim sabitlenmektedir. Devre zerinde
kullanm ekildeki gibi gsterilmitir. Voltaj fark diyotun yapsna gre deimektedir.
Genellikle 5.1 Voltluk diyotlar kullanacaz. Bu diyotlar ile devre zerindeki fazla gerilimi ve
olas dalgalanmalar engellemeyi umuyoruz.
Tranzistr
Giriine uygulanan sinyali kuvvetlendiren devre elemandr. Ayn zamanda anahtarlama
eleman olarak da kullanlmaktadr.
Denk ise
!=
Eit deilse
<
Byktr
>
Kktr
<=
>=
Kk veya eitse
Koul1 &&Koul 2
Ve
Koul1 ||Koul 2
Veya
Koullarmza else kullanm zorunlu deildir. Sadece if kullanm yaplabilir, bylece koul
doru deilse extradan bir kod almaz. Birden fazla koulumuz var ise elseif ile yeni koullar
ekleyebiliriz.
f( a == 1 ){
// a = 1 durumunda buras alr
}
elseif (a == 2 ) {
// a = 2 durumunda buras alr
}
elseif (a == 3 ) {
// a = 3 durumunda buras alr
}
For dngs: Yazdmz kodlarn belli bir sre tekrar etmesini isteyebiliriz. Bunun iin
dngler kullanmalyz.
For(int i =0; i < 10; i ++){
// buras 10 kere okunacak
// program buraya her uradnda i deeri bir arttrlacak
// i deeri 10a ulaana kadar dng devam edecek
}
While dngs: For gibi while kodlar da dng amacyla kullanlr.
b = 20;
while( b > 10){
// b deikeninin 10dan byk olduu durumlarda dng devam eder
b = b 1 ; // her dngde bnin deerini bir azalttk
// dikkat edilmelidir ki eer bnin deerini deitirmeseydik
// dng koulu hep doru olacandan program burada takl kalacakt
}
Program compile: Bu buton ile yazdmz program kontrol edebiliriz. Eer kodda hata
varsa alttaki siyah blmde turuncu yaz eklinde yaptmz hata ve satr yazacaktr.
Hatrlatma: Bulunduumuz satrn says sol atta yazmaktadr.
Program Compile & Upload: Bu buton ile nce yazdmz kod derlenir. Eer kodda hata
yoksa yazlan kod Arduinonun anlayaca dile evrilir ve otomatik olarak Arduinoya atlr.
lem srasnda ilerleyen ubuktan ilem durumunu grebilirsiniz. Ayrca Tam program atlma
srecinde Arduino zerinde bulunan Tx ve Rx LEDleri hzl bir ekilde yanp snecektir.
Program bir kere Arduinoya atmanz yeterli olacaktr.
Serial Monitor: Yeni pencere aan bu buton ile Arduinodan yolladmz verileri
grebiliriz. lerleyen konularmzda bu butonu ska kullanacaz.
imdiden Arduino almalarnzda baar dilerim
Haydi Balayalm.
Arduinoyu test etmek ve ilk programmz yazmak iin bu projeyi yapabiliriz. 1 Saniye
aralklar ile LEDimiz yanp snecektir.
int LED = 10; // burada arduinonun 10. Ayana ledimizi baladmz
sylyoruz
void setup(){
pinMode(LED, OUTPUT); // LED pini yani Arduinonun 10. Aya k
yapld
}
void loop(){
digitalWrite(LED,HIGH); // LEDin bal olduu pinden 5 volt gerilim
saland
delay(1000); // 1000 ms yani 1 saniye program duruyor
digitalWrite(LED,LOW); // LED sndrlyor
delay(1000); // bir saniye bekliyoruz
}
Kara imek uygulamasnn alma mantnn kavranmas iin yukarda verilen kodlarn
aklayc olduunu dnmekteyim. Fakat bu kodlar balang dzeyindedir ve gereksiz
olarak her led tek tek kontrol edilmitir. Bir sonraki aama olarak yukardaki uygulamay
yapan fakat daha profesyonel olan bir program yazalm.
const int ledPini [] = {9,10,11,12,13};
void setup () {
for(int i=0; i<5;i++)
{
pinMode(ledPini [i], OUTPUT); // LED pinlerini k olarak tanmladk
}
}
void loop() {
for(int i=0; i<5; i){
digitalWrite(ledPini[i],HIGH);
delay(50);
digitalWrite(ledPini[i],LOW);
}
for(int j=4;j>-1; j--)
{
digitalWrite(ledPini[j],HIGH);
delay(50);
digitalWrite(ledPini[j], LOW);
}
}
Pull-Down Diren
Butona basldnda 5 Volt arduinonun input
ayana ular. Fakat butondan elimizi
kaldrdmzda arduinoun pininde 5 volt gerilimi
kalmaktadr. Bu durumdan kurtulmak iin
genellikle 10K ohm deerinde bir diren arduinoun
input ayandan topraa balanr.
Pull-up Diren
Butona baslmad durumlarda arduinonun input
aya 5 volttadr. Butona basldnda akm
arduinonun input aya yerine topraa
ulamaktadr. Pull-Down diren sisteminin tam tersi
eklinde almaktadr. Direncin konulma nedeni
butona basldnda 5 Voltun dorudan topraa (ua) ulamasn engellemektir. Genellikle 10K
deerinde diren kullanlmaktadr.
10
Ark olaylarn engellemek iin digitalWrite kodlarndan sonra az bir bekleme verilebilir,
delay(100) eklinde.
Buton kontrol etmeyi rendiimize gre bir adm daha ileriye gidelim ve saya yapalm.
Fakat bunun iin ncelikle bilgisayar ile arduinomuzu nasl haberletireceimize bakalm.
11
Btn ilem bu kadar kolay. Bundan sonras tamamen size kalm. Bu balant ile yazdnz
program kolaylkla test etme debug etme imkan salamaktasnz.
imdi daha nce rendiimiz buton kontrolyle haberlememizi birletirelim ve butona her
basldnda artan bir saya yapalm.
const int buttonPin = 2;
// Butonun pin numaras
int sayici = 0; //sayacimiz
int buttonState = 0; // Butonun durumu
void setup() {
pinMode(buttonPin, INPUT);
Serial.begin(9600);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
sayici ++; // sayici = sayici + 1;
Serial.print("Sayicimizin degeri= "); // Ekrana mesajmz
yazdryoruz.
Serial.println(sayici); // saya deerimizi ekrana yazdrp yeni satra
geiyoruz.
while(buttonState == HIGH){ // Butondan elini ekene kadar program
burada kalr
// Bylece butona her basldnda sadece bir kere deer arttrlr
buttonState = digitalRead(buttonPin);
}
12
}
}
Hep arduino mu veri yollayacak, biraz da kardan veri bekleyelim. Bu kod ile bilgisayardan
gelen veriler arduinoda ilenmektedir. Unutmayn ki tm veriler karakter olarak tek tek
gelmektedir.
int incomingByte = 0;
// gelen veriler
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) { // bilgisayardan veri gelmesini bekliyoruz
incomingByte = Serial.read(); // gelen veriyi oku
Serial.print("gelen veri: ");
Serial.println(incomingByte, DEC); // gelen veriyi bilgisayara geri
yolla
}
}
13
14
Yukardaki kod yardm ile arduino hem bluetootha hemde bilgisayara farkl mesajlar
yollamaktadr. Mesajlar grmek iin Tera Term ve arduinonun kendi Serial Monitorn
aabilirsiniz.
15
16
17
rnek olarak ilk bata bir tane sensrn balantlarn yapalm ve tek sensr ile bir proje
gerekletirelim. lerleyen projelerimizde 3 tane sensr birletirip izgi izleyen basit bir
robot yapacaz.
Resimdeki balantlar breadboardmza kuralm. Dikkat edin ki balantlar yanl
balamayn. Sensrn karo-baklava dilimi eklinde breadboarda konmas kablolamay
kolaylatrr.
Resimdeki gibi kurulumu gerekletirdiimize gre kod yazmaya balayalm.
int referansDegeri = 800; // siyah beyaz iin eik deeri
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorDegeri = analogRead(A1); // Arduinonun A1 ayana balanan
kablodaki gerilim llyor
Serial.print(sensorDegeri); //Okuduumuz deer ekrana yazdrlyor
if (sensorDegeri > referansDegeri){
Serial.println(" Siyah");
}
else{
Serial.println(" Beyaz");
}
delay(1); // Dzgn alabilmesi iin ksa bir bekleme veriyoruz.
}
18
Devremizi dikkatli bir ekilde kurduysak artk programlamaya geebiliriz. Btn karakterler
daha nceden bizim iin tanmlanm. Bu karakterlere ulamak iin ncelikle ktphanemizi
programmza dahil edeceiz. Daha sonra balang ayarlarmz yapacaz ve LCDmizi
kullanmaya balayacaz.
Haydi ekranmza bir eyler yazalm.
#include <LiquidCrystal.h> // ktphanemizi ekledik
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // kablo balantlarmz programa
tanttk
void setup() {
lcd.begin(16, 2); // LCDmizin satr ve stun saysn girdik
lcd.print("Hasbi Sevinc"); // Ekrana bir eyler yazdk
}
void loop() {
lcd.setCursor(0, 1); // imlecimizi 2. Satra indirdik
lcd.print(millis()/1000); // programn balangcndan beri geen sre
}
19
20
21
H Kprs:
H kprs motorumuzun ileri ve geri ynde srlmesini
salayan yapdr. 4 adet tranzistrden olumaktadr.
22
23
VSS (LOGIC SUPPLY VOLTAGE 9. Ayak): Adndan da anlald gibi bu pinin 5 volta
balanmas gerekmektedir. Devrenin kararszln azaltmak iin bu pin ile toprak arasna
100nFlk kondansatr balanabilir.
GND (8. Ayak) : Bu pini topraa balamamz gerekmektedir. Ayrca entegrenin tepesindeki
metal de toprak olmaktadr. Bunu belirtmemin nedeni yanllkla ksa devre yapmamanz
iindir.
VS (4. Ayak): Entegremizin motorlara gidecek enerjiyi salad asl besleme ayadr. Buraya
verdiimiz motor kontrolmz dorultusunda motorlara verilecektir. Motorumuzun
zellikleri gze alnarak uygulamalarmzda buraya 12 Volt balayacaz.
24
Sra geldi Arduino programn yazmaya. Aadaki kodda oluturuum fonksiyonlar dier
uygulamalarmzda da kullanacaz. ncelikle INPUT ayaklar iin deikenlerimizi
tanmlyoruz.
25
dur(); // durduk
delay(1000);
ileri(100,150) // hafif saa doru gidiyoruz
delay(1000);
dur(); // durduk
delay(1000);
geri(100,100); // geri gidiyoruz
delay(1000);
dur(); // durduk
delay(1000);
}
Umarm kodlar yararl olmutur. imdi bir de yazlmda yazdmz kodlarla yani Arduino
ayaklaryla motor srcmzn ayaklar arasndaki balantlar bir tabloda gsterelim.
Arduino
Motor Src
INPUT 1
INPUT 2
13
INPUT 3
12
INPUT 4
11
ENABLE A
10
ENABLE B
Motor
Motor Src
Motor1 +
OUTPUT 1
Motor1 -
OUTPUT 2
Motor2 +
OUTPUT 3
Motor2 -
OUTPUT 4
Motor Src
+12 Volt
VCC
Toprak (- u)
GND
+5 Volt
VS
26
27
Eer sensrn nnde engel yoksa sensrde bir miktar yavalama olacaktr. Bundan
kurtulmak iin MAX bekleme deerini girmemiz lazmdr. Bu deeri arttrp azaltarak kendi
sensrnze uygulayabilirsiniz. Deitirmeniz gereken kod:
digitalWrite(trigPin, HIGH, 2895); // 2895 saysn deitirebilirsiniz.
28
29
ARDUNO UYGULAMALARI
Trafik Lambalar
lk uygulamamz olarak basit bir proje ile balayalm. Bu
projede 3 adet(krmz,sar,yeil) LED kullanacaz. Daha
nce de bahsettiimiz gibi LEDin uzun aya arduinoya,
ksa aya ise topraa taklmaldr. 3 LEDi sras ile
Arduinonun 11, 12 ve 13. pinlerine takalm. Her LED ile
Arduino balantsnn arasna yaklak 220 ohm deerinde
direnler takalm.
Ama: Krmz k 5 saniye boyunca yanacak. Daha sonra
sar k yarm saniye ve sonra da yeil k 3 saniye boyunca
yanar. Fakat daha sonra sar k bir saniye yanar ve krmz
a geilir.
int kirmizi = 13;
int sari = 12;
int yesil = 11;
void setup()
{
pinMode(kirmizi, OUTPUT);
pinMode(sari, OUTPUT);
pinMode(yesil, OUTPUT);
}
void lambaDegistir(int lamba) // kirmizi = 1, sari = 2, yeil = 3
{
digitalWrite(kirmizi, LOW);
digitalWrite(sari, LOW);
digitalWrite(yesil, LOW);
switch(lamba){
case 1:
digitalWrite(kirmizi, HIGH);
break;
case 2:
digitalWrite(sari, HIGH);
break;
case 3:
digitalWrite(yesil, HIGH);
break;
}
}
void loop()
{
lambaDegistir(1);
delay(5000);
lambaDegistir(2);
delay(500);
lambaDegistir(3);
delay(3000);
lambaDegistir(2);
delay(1000);
}
30
lm iin gerilimi lmek istediiniz yere A0dan gelen kabloyu, devrenizin toprana da
GNDden gelen ucu balaynz.
DKKAT: Asla ve Asla 5 volt zerindeki deerleri lmeye almayn. Byle bir hatay
engellemek iin devrenize 5 Volt deerinde bir Zenner Diyotu ters balamanz yararl
olabilir.
31
Balantlar ekildeki gibi yapalm. Sensrn gbekli yeri arkaya baktnda, yani yazs bize
baktnda ilk Pin 5 Volt, ortadaki pin Arduinonun analog giriine ve 3. Pin ise topraa (GND)
balanmaldr.
Haydi, yazlma geelim Yapmamz gereken analog sinyali okumak ve matematiksel ilem ile
scakla evirmektir. evirdiimiz deeri bilgisayara yollayalm.
float sicaklik;
void setup()
{
Serial.begin(9600);
}
void loop()
{
sicaklik = analogRead(A0);
sicaklik = sicaklik * 0.48828125;
Serial.print("SICAKLIK = ");
Serial.print(sicaklik);
Serial.println(" C");
delay(500);
}
32
2 adet DC motor
1 adet sarho tekerlek: Veya yzeyle srtnmeyi azaltacak bir ubuk ( ben genellikle
LEDin kafasn kullanmaktaym)
Pil : 11.1 Voltluk lipo piller uygun olacaktr. 9 Voltluk pil motorlar iin yetersiz kald
oluyor Denemek lazm
33
34
pinMode(solgeri,OUTPUT);
pinMode(sagenable,OUTPUT);
pinMode(solenable,OUTPUT);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1,INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2,INPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin3,INPUT);
}
void loop(){
while( uzaklik(trigPin2, echoPin2 ) < 10 ){ // nne engel gelene kadar
dz git
ileri(100,100);
}
dur(); // engel geldikten sonra dur
delay(1000); // 1 saniye bekle
if( uzaklik(trigPin1, echoPin1) > 10 ){ // soluna bak
ileri(150,0); // engel yoksa sola dn
delay(500); // 90 derece dnene kadar geecek sre. Bu sreyi kendinize
gre ayarlayn
dur(); // dur
delay(1000);
}else if(uzaklik(trigPin3, echoPin3) > 10 ){ // sol dolu ise saa bak
ileri(0,150); // engel yoksa saa dn
delay(500); // 90 derece dnene kadar geecek sre. Bu sreyi
kendinize gre ayarlayn
dur(); // dur
delay(1000);
}else { // sa ve solda engel varsa geri gidip dnelim
geri(100,100);
delay(1000);
ileri(150,0);
delay(500);
dur();
delay(1000);
}
}
Yaptnz robot ve kodlarn uygun olarak almas iin kodlar zerinde baz deiiklikler
yapmak gerekebilir.
Bu robot ile labirent zen robot yaplabilir. Burada tek nemli olan robotun tam 90 derece
dnmesini salamaktr.
35
2 adet DC motor
1 adet sarho tekerlek: Veya yzeyle srtnmeyi azaltacak bir ubuk ( ben genellikle
LEDin kafasn kullanmaktaym)
Pil : 11.1 Voltluk lipo piller uygun olacaktr. 9 Voltluk pil motorlar iin yetersiz kald
oluyor Denemek lazm
36
break;
case 1:
esikdegeri = 820;
break;
case 2:
esikdegeri = 820;
break;
}
if (esikdegeri <deger)
return 1;
else
return 0;
}
void ileri(int hizsag, int hizsol){
analogWrite(sagenable, hizsag);
digitalWrite(sagileri,HIGH);
digitalWrite(saggeri,LOW);
analogWrite(solenable, hizsol);
digitalWrite(solileri, HIGH);
digitalWrite(solgeri,LOW);
}
void setup(){
pinMode(sagileri,OUTPUT);
pinMode(saggeri,OUTPUT);
pinMode(solileri,OUTPUT);
pinMode(solgeri,OUTPUT);
pinMode(sagenable,OUTPUT);
pinMode(solenable,OUTPUT);
}
void loop(){
if(dijitalize(analogRead(sensorpin[1]),1)){
ileri(100,100);
}
if(dijitalize(analogRead(sensorpin[0]),0)){
ileri(0,100);
while(!dijitalize(analogRead(sensorpin[0]),0));
}
if(dijitalize(analogRead(sensorpin[2]),2)){
ileri(100,0);
while(!dijitalize(analogRead(sensorpin[2]),2));
}
}
37
2 adet DC motor
1 adet sarho tekerlek: Veya yzeyle srtnmeyi azaltacak bir ubuk ( ben genellikle
LEDin kafasn kullanmaktaym)
Pil : 11.1 Voltluk lipo piller uygun olacaktr. 9 Voltluk pil motorlar iin yetersiz kald
oluyor Denemek lazm
Bluetooth modl
Eer her eyi doru yaptysak Bluetooth modlndeki k yanp snecektir. Laf fazla
uzatmadan programlamaya gemek istiyorum. Robotumuz harekete gemek iin
bilgisayardan komut bekleyecektir. Bu komutu TERA TERM program zerinden klavyemizle
vereceiz. Robotumuz w ile ileri, x ile geri gidecek; a ile sola, d ile saa dnecek ve s
tuu ile duracaktr.
Haydi balayalm
const int sagileri = 9;
const int saggeri = 8;
const int solileri = 12;
const int solgeri = 13;
const int solenable = 11;
const int sagenable = 10;
void ileri(int hizsag, int hizsol){
analogWrite(sagenable, hizsag);
digitalWrite(sagileri,HIGH);
digitalWrite(saggeri,LOW);
analogWrite(solenable, hizsol);
digitalWrite(solileri, HIGH);
digitalWrite(solgeri,LOW);
}
void geri(int hizsag, int hizsol){
38
analogWrite(sagenable, hizsag);
digitalWrite(sagileri,LOW);
digitalWrite(saggeri, HIGH);
analogWrite(solenable, hizsol);
digitalWrite(solileri, LOW);
digitalWrite(solgeri, HIGH);
}
void dur()
{
digitalWrite(sagileri, HIGH);
digitalWrite(saggeri, HIGH);
digitalWrite(solileri, HIGH);
digitalWrite(solgeri, HIGH);
}
void setup(){
Serial.begin(9600);
pinMode(sagileri,OUTPUT);
pinMode(saggeri,OUTPUT);
pinMode(solileri,OUTPUT);
pinMode(solgeri,OUTPUT);
pinMode(sagenable,OUTPUT);
pinMode(solenable,OUTPUT);
}
void loop(){
if (Serial.available() > 0) {
//Bluetoothtan veri bekliyoruz
char tus = (char)Serial.read();
if( tus == 'w' )
ileri(100,100);
if( tus == 's' )
dur();
if( tus == 'a' )
ileri(0,100);
if( tus == 'd' )
ileri(100,0);
if( tus == 'x' )
geri(100,100);
}
}
39