Professional Documents
Culture Documents
nsz
iki blmden oluan bu kitapta birinci blm Arduino nedir,ne deildir ve programlama iin referans ksmndan oluurken ikinci ksm ise Arduino ile yaplm projelerden oluuyor.Kitabn amac Arduino'ya yeni balayanlar iin basit anlalr bir kaynak sunmak. Lisans
Bu belgeyi, Open Publication Licence lisansnn 1.0 ya da daha sonraki srmnn koullarna bal kalarak kopyalayabilir, databilir ve/veya deitirebilirsiniz. Bu Lisansn zgn kopyasn http://www.opencontent.org/openpub/ adresinde bulabilirsiniz.
Not: Burdaki notlarla ilgili grdgnz bir sorun ve nerileriniz iin nazrdogan@gmail.com mail atabilirsiniz.
iindekiler nedir?
1. Fiziksel Programlama nedir? 2. Arduino Nedir? 3. Neden Arduino? 4. Arduino eitleri ve Shield'leri 5. Arduino Kurulum
Programlama
Temel
1. Arduino Programlama dilinin Kod yaps 2. Minimum Arduino Sketch'i 3. ilk Arduino Program 4. Referanslar
Projeler
1. proje 2. proje 3. proje 4. proje 5. proje 6. proje 7. proje 8. proje 9. proje 10.proje
Nazr DOAN
www.gereksizcoder.wordpress.com V.0.1
Fiziksel Programlama
Fiziksel programlama yazlm ve donanm kullanarak analog d dnyayla veri alverii yapan fiziksel tasarlama iine verilen isimdir.Sensorler yardmyla d dnyayla iletiime geilir.Analog olan veriler dijitale aktarlr ve yazlm sayesinde ne yaplacagna karar verilir.
Arduino Nedir?
Arduino fiziksel dnyay alglayan ve kontrol edebilmek iin kullanabileciginiz basit bir bilgisayardr. Basit bir mikroilemci ve yazlm yazmak iin bir gelitirme ortamna sahip basit bir fiziksel hesaplama platformudur.
Arduino anahtarlar ,sensorleri,motorlar ve diger fiziksel klar kontrol etmek ve etkileimli nesneler gelitirmek iin kullanlabilir. Arduino projeleri tek bana gelitirebilir yada bilgisayar zerinde alan yazlmlara baglanabilir . (Flash,Processing vb..) Arduino ak kaynak bir gelitirme ortamna sahip olup Processing yazlmndan yola karak yazlmtr. Kendi board'unuzu yapabileceginiz gibi tamamen hazr alabilirsiniz.ve tamamen ak kaynak kodlu bir IDE'ye sahiptir
Neden Arduino ?
Fiziksel ortam iin birok mikrokontrolr ve mikrokontrolr platformu mevcuttur. rnegin Parallax Basic Stamp,Netmedia's BX-24,Phidgets,MIT's Handyboard vs.. birogu ayn fonksiyona sahiptir. Fakat hepsinin programlanmas olduka zordur.Arduino ise programlamay olduka kolay hale getirir.grenciler ve amatrler iin byk avantajlar saglar. Nedenler ise
apraz platform olmas-Arduino Linux,Windows ve MacOs ta alabilir.ogu mikrokontrolr sistemi Windows'la snrldr. Basit ve Ak Programlama Ortam-Arduino yazlm yeni balayanlar iin olduka kolay bir ortam sunar. Ak Kaynak olmas-Benim dncem en nemli sebeptir.Gereksiz bir ok yazlma para vermekten kurtarr ve devaml geliebilen bir ortam sunar.
gelelim.Uno,Arduino programlamaya yeni balayanlar iin biilmi kaftandr.Hem diger board'lara nazaran ucuz oluu her yerde bulunabilir olmas ve Arduino shield'lerin hemen hemen hepsiyle uyumlu olmas nedeniyle tercih sebebidir.
zet olarak Mikrokontroller alma Voltaj Giri Voltaji (tavsiye edilen) Giri Voltaj (limit) Dijital G/ ATMEGA 2560 5V 7-12V 6-20V 54(15 tanesi PWM destekliyor)
Analog Giriler DC akm her pin'de 3.3V pin iin DC akm Flash Hafza SRAM EEPROM Saat Hz
Arduino Mega'nn zelliklerinden bahsettikten sonra ise Mega neden nemli bir boarddur ondan bahsedelim. Arduino Mega hafza ve pin saysndan dolay daha byk projeler iin ideal bir boarddur .Uno'nun yetmedigi projeler iin kullanlabilir. Mega,Uno iin tasarlanm bir ok shield ile uyumludur.
Lilypad
Shield'ler
Shield'leri tantmadan nce shield nedir onun zerinde biraz durmak istiyorum.Shield'ler Arduino boardumuzun zerine kolayca taklp yapmak istediimiz projeyi dahada kolay yapmamz saglayan ek board'lardr. Arduino'nun resmi olarak birok shield'i bulunmaktadr.ama ak kaynak olmasndan dolay gelirtiriciler kendi
shield'lerini tasarlayp satmakta veya kullanmaktadr. Resmi Arduino Shield'lerinden Bazlar GSM shield
Ethernet Shield
Wireless SD Shield
Motor Shield
Xbee
Eger bu ekran grntlerindeki admlar izlerseniz .Arduino'yu sorunsuz olarak bilgisayarnza tantmsnzdr.
PROGRAMLAMA
Arduino kod yaps
Eger bir programlama diliyle uratysanz Arduino size olduka kolay gelecektir. Hi ugramadysanz ise korkmanza gerek yok.Arduino'yu en temel seviyeden
anlatacam.Bu sayede programlamaya ilinizi artrp yazdnz kodlar altrp gznzle grdgnz iin normal bir bilgisayar programlama dilinden daha kolay reneceksiniz. Eger C ailesinden bir dili ile ugratysanz Arduino dilini anlamanz daha kolay olacaktr.nk Arduino dili C dilinden esinlenmitir. Ve C++ ile ktphane yazabilir bunlar kullanabilirsiniz.
Minimum Kod
Fazla uzatmadan artk programlamaya balamak istiyorum.dedigim gibi Arduino olduka kolay en bata bunu aklmzda tutalm.Zaten felsefesi kolay olmak. :)
Arduino kodunun alabilmesi iin minimum iki tane methoda ihtiyacmz var bunlar methodlardr.
setup() ve loop()
Setup()
Bu fonksiyon sketch'in(her bir Arduino almasna verilen ad) baladn gsterir. Bu fonksiyonun iinde deikenler ve pinler tanmlanr.Ktphaneler kullanlmaya balanr. Bu fonksiyon Arduino altgnda veya resetlendiinde bir defa alr.
Loop()
Bu fonksiyon ise
birimlerinin kontroln bizim yazdgmz koda gre yapar. rnegin bir led'e ne kadar sre yanp ne kadar yanmayacagn burda yapabiliriz .yada bir LDR yardmyla gn iddetini lebiliriz.Loop() fonksiyonu Arduino almaya baladktan sonra devaml olarak alr.devaml olarak baa dner ve dngy devam ettirir.
lk Arduino Sketch'i
Buraya kadar Arduino nedir ne degildir diye bahsettim .Artk kodlamaya gemenin zaman geldi . lk kodumuzda bir Led'i yakp sndrecegiz. Devremizi ekildeki gibi kurduktan sonra tek yapmamz gereken yazdgmz kodu boarda yklemek.
board'unuzda led'in yanp sndgn grmelisiniz. Eer olmadysa bu ilemlere tekrardan gz atmanzda fayda var. :)
Gerekli Donanmlar Arduino Board Buton 10k ohm diren Devre Tahtas(Breadboard) Kablo
Yukardak gibi butonu ve direni bagladktan sonra yapmamz gereken sadece kodumuzu board'a yklemek. Kodu File=>Examples=>Basics=>DigitalSerialRead yolunu izleyerek aabilirsiniz
Daha sonra yapmanz gereken Seri Monitor'u ap dijital 1 ve 0 'lar grecegiz. Eger devre aksa 0 ,deilse 1 'i grecegiz. Seri Monitor nerede diyorsanz aadaki resimde
grebilirsiniz.
Gerekli Donanmlar
Arduino 10 Kohm Potansiyometre
ekildeki gibi baladktan sonra tek yapmanz gereken Board'da kodu yklemek. Kodu File=>Examples=>Basics=>AnalogSerialRead yolunu izleyerek aabilirsiniz.
Kodu ykledikten sonra Seri Monitor'u ap neler dndgne bakabilirsiniz. Eer potensiyometreyle oynarsanz deerlerin degitigini greceksiniz.Arduino'da bulunan ADC (analog to digital Converter) sayesinde 0-1023 arasnda saylara dntgn grebilirsiniz.
Buraya kadar basite analog ve digital kavramlarn anladnz varsayarak artk programlamaya balamak
istiyorum.
Boolean Sabitleri
Eer az ok dijital elektronikle uratysanz Boolean Matematiinden haberdar olmalsnz. Boolean sabitleri 1 ve 0 'dr .Arduino'da ise true ve false 'dir. Burda 0 false 1 ise true anlamna gelmektedir.
HIGH voltajn var oldugunu LOW ise olmadgn gsterir. digitalWrite( pin,HIGH) veya digitalWrite(pin,LOW) eklinde kullanabiliriz.
Veri Tipleri
void Void kelimesi sadece fonksiyon tanmlanrken kullanlr.
char
1 bayt'lk bir karakter deeri saklayan veri trdr. rnek char karakter='A'; Eer birden ok karakter iin char karakter=ABC; eklinde kullanllabilir. Char (Karakterler) say olarakta tutulabilir.ASCII tablosuna gz atmanz lazm. rnek char karakter='A'; char karakter=65; Eger ASCII tablosuna gz attysanz A nn saysal degerinin 65 oldugunu grebilirsiniz.
unsigned char Unsigned Char hafzada 1 baytlk yer tutar.byte ile ayndr. 0-255 arasndaki saylar encode eder. Byte Byte , 0-255 arasnda hafzada 8 bit unsigned say tutar. int
int veri tipi say tutmak iin kullanlan birincil veri tipidir. -32,768(-2^15)-32,767(2^15-1) aralnda deger alr.Hafzada 2 baytlk yer tutar. rnek int ledPin=13; unsigned int unsigned int ile int fark ise unsigned int negatif deger tutmaz.sadece pozitif deger alr. yer tutar. Word word ,0-65535 arasnda 16 bit unsigned say tutar.Unsigned int ile ayndr. Long Long,say tutmak iin geniletilmi veri tipidir. -2,147,1483,648-2,147,483,647 arasnda 32 bit'lik (4 bayts) say tutar. unsigned long Usigned long'ta long veri tipi gibi 32 bit (4 bayt) veri tutar. Fark ise sadece pozitif deerler almasdr. 0-4,294,967,295(2^32-1) aralndadr. 0 -65,535(2^16-1) arasndadr.int gibi hafzada 2 baytlk
short Short 16 bit'lik bir veri tipidir. -32,768(-2^15) -32,767(2^15-1) arasndadr. Float daha ok analog ve devam eden deerlerde daha byk znrlk elde etmek iin kullanlr.Deer aral -3,4028235E+38 ile 3,4028235E+38 arasndadr. 32 bit (4 bayt) say tutar. Float virgulden sonra 6-7 basamaa sahiptir. Double Float'la ayn ii grr. array(dizi) Dizi ,bir dizin numaras ile eriilen degikenlerin topluluudur. Bir Dizi(Array) oluturmak int Dizi=[6]; int Pinler [ ]={2,4,8,7,6}; char mesaj[6]=hello;
Float, decimal saylar iin kullanlan veri tipidir. Float veri tipi
Dizinin bir elemanna deer atamak mySensVals[0]=10; Dizinin bir elemanndan deer almak x=mySensVals[4]; Dizi ve For Dngs int i; for(i=0; i<5; i++) { Serial.println(myPins[i]); }
+ toplama operatr - karma operatr * arpma operatr / blme operatr % mod(artk blme)
Karlatrma Operatrleri == eittir operatr != eit degil operatr < kktr operatr > byktr operatr <= kk veya eittir >= byk veya eittir
||
// ... }
OR (veya ) operatr
if (x > 0 || y > 0) {
!
// ...}
if (!x) {
Bitwise Operatrleri & (bitwise and) | (bitwise or ) ^ (bitwise xor) ~ (bitwise not) << (bitwise left) >> (bitwise right) Birletirme Operatrleri
++ artrma -azaltma += ekleyerek atama -= eksilterek atama *= arparak atama /= blerek atama %= blp kalan atama &=
|=
DigitalWrite()
HIGH veya LOW degerini pin'e gnderen fonksiyondur.
Eer voltaj 5V veya 3.3V ayarlanma HIGH degeri iin bu degeri gnderir.LOW iin ise 0V gnderir.
digitalRead()
Pin'in degerini okur .HIGH veya LOW olabilir. deger = digitalRead(inPin);
Analog G/ analogReference()
Analog giri olarak kullanlan referans gerilimini yaplandrr.Seenekler ise unlardr DEFAULT:varsaylan analog 5V veya 3.3 Volt INTERNAL:1.1 volt Atmega168 veya ATMEGA328 de 2.56 Volttur. EXTERNAL: AREF pin uygulanan voltajdr.0-5V arasnda kullanlr.
analogRead()
Belirtilen analog pin deerini okur .Arduino 6 kanal (8 kanal Mini ve Nano,16 kanal Mega) ,10 bit ADC(Analog Digital Converter).Bu u anlama gelmektedir. 0 -1023 arasndaki tamsay deerlere 0 ile 5 volta aras giri gerilimleri ile eleir. 5Volt/1.024 birim veya birim bana 0,0049. Yani Arduio'nun okuduunuz Analog degeri bu say ile arparak Voltaji bulabilirsiniz. Bir analog giri okumak iin yaklak 100
AnalogWrite
Analog deeri belirtilen pin'e yazar.LED'lerin parlaklgn ayarlamak veya Motorlar farkl hzlarda srebilirsiniz.Kare dalga retir.PWM sinyal frekans yaklak olarak 490Hz'dir. ogu Arduino Board'unda bu fonksiyon 3,5,6,9,10 ve 11 numaral pinlerle alr.Sadece Mega board'ta 2 den 13 e kadardr. Szdizimi analogWrite(pin,value) Parametre pin: pin'in numaras value: 0(kapal)-255(ak) arasndaki degerler rnek
Zaman millis()
Arduino'da ykl mevcut olan program balamasndan sonra milisaniye deerinde say dndrr.Yaklak 50
micros()
Arduino'da ykl mevcut olan program balamasndan sonra mikrosaniye deerinde say dndrr.Yaklak 70 dakika sonra overflow olacaktr. rnek
delay()
Program belirtilen sre kadar durdurur. Birimi milisaniyedir. 1000 milisaniye 1 saniyedir. Szdizimi delay(ms) rnek
delayMicroseconds()
Program belirtilen sre kadar durdurur. Birimi mikrosaniyedir. 1000 mikrosaniye 1 milisaniyedir.Saniyenin milyonda bir'i kadardr. Szdizimi
delayMicroseconds(us) rnek
Matematik min()
iki saydan kk olan geri dndrr. rnek SensValue=min(Sens,100) // burda devaml kk olan degeri geri dndrecektir. Yani 100 e kadar Sens degerini alacak 100 den sonra ise hep 100 degerini dndrecektir.
Max()
iki saydan byk olan geri dndrr. rnek SensValue=max(sens,20) // burda ise devaml byk olan deeri dndrecektir.Yani 20 ye kadar hep 20 sonrasnda ise sens deerini dndrecektir.
Abs()
saynn mutlak deerini geri dndrr.
Constrain()
Sayy bir aralkta snrlar. rnek sensVal=constrain(sens,10,160); // deikenin deeri en kk 10 en yksek 160 olabilir.
Map()
Map fonksiyonu saynn araln baka bir arala tamaya yarar. y=map(x,1,50,50,1) // burda birinci dk degeri 1 iken 50 olmu ikinci degeri ise 50 iken 1 olmutur.
Pow()
Saynn kuvvetini hesaplamaya yarayan fonksiyondur. Szdizimi pow(taban,zeri)
sqrt()
Saynn karekkn hesaplayan fonksiyondur. Szdizimi Sqrt(x)
Trigonometri
sin() cos() tan() Rastgele(Random) Saylar randomSeed() random Bit'ler ve Bayt lowByte() highByte() bitRead() bitWrite() bitSet() bitClear() bit()
letiim Serial
Arduino board'nun bilgisayar veya dier cihazlarla iletiimi iin kullanlr.Btn Arduinp board'larnda en az bir tane Seri port bulunmaktadr.(Genellikle UART ve USART diye bilinirler).Seri port USB yardm ile dijital pinler zerindeki 0 (RX ) ve 1 (TX) kullanarak haberleir.
Fonksiyonlar available() Seri porttan okumak iin kullanlabilir bayt saysn alr. Szdizimi Serial.available() rnek begin Seri veri iletimi iin saniyedeki bit (baud) hzn ayarlar. 300,600,1200,2400,4800,9600 , 14400,19200,28800,38400,57600,115200 degerlerinden birini alr. Szdizimi Serial.begin(hz)
end() Seri iletiimi devre d brakr.pinleri genel giri ve k olarak kullanmaya izin verir. Yeniden iletiime gemek iin Serial.begin() kullanlr. Szdizimi
Serial.end() Find() Verilen uzunlukta veri bulunana kadar tampon verileri okur.Hedef dize,yanl zaman veya olmadg bulunursa ilevi true degerini dndrr. Szdizimi Serial.find(hedef) findUntil() Belirli bir uzunlukta veya sonlandrc bir dize bulunana kadar Serial.findUtil() tampon verilerini okur. Szdizimi Serial.findUtil(hedef,terminal) Flush() Giden Seri verinin tamamlanmasn bekler. Szdizimi Serial.flush() parseFloat() Seri verinin virgulden sonrasnda geri dndrr.Basamak (veya eksi iareti) olmayan karakterler atlanr. Szdizimi
Serial.parseFloat() parseInt() Seri veride bir sonraki geerli tam sayy arar. Sz dizimi Serial.parseInt() peek() print Seri port'tan ald verileri ASCII tablosundaki karlg eklinde yanstr. Bu komut birok ekilde olabilir. rnek Serial.print(78) 78 verir Serial.print(1.23456) 1.23 verir Serial.print ('N') N verir. Serial.print(Merhaba) Merhaba verir. rnek
println() print() 'den fark daha okunabilir veriyi gstermesidir.Veri bittiginde dier veriyi bir alt satrda gsterir. Szdizimi
Serial.println(deer) Serial.println(deer,format) Read() Gelen seri veriyi okur. Szdizimi Serial.read() readBytes readBytesUntil() setTimeout() write Seri port'a ikilik verileri yazar.Bu veri bayt bayt veya dizi olarak gnderilir. Szdizimi Serial.write(val) rnek
if ve if ...else
if ve else koullu ilem yapan deyimlerdir.if ve else tek bir karlatrma deyimi olup else kullanm istege baldr.Eer koul doru ise if den sonraki blm yrtlr. Else'den sonraki blm atlanr. rnek-1 if(degisken>50) { digitalWrite(ledPin,HIGH) }
for
Bu deyim, dier dng deyimleri gibi bir kmeyi bir ok kez tekrarlamak iin kullanlr. Koul snamas while da olduu gibi dngye girmeden yaplr. Bu dng deyimin iinde dierlerinden farkl olarak balang deeri ve dng sayacna sahip olmasdr.
rnek int PWMpin = 10; // led digital 10 'a balanr. void setup() { // no setup needed } void loop() {
switch case
Bu deyim bir deikenin ieriine bakarak, programn akn bir ok seenekten birine ynlendirir. case (durum) deyiminden sonra deikenin durumu belirlenir ve takip eden gelen satrlar (deyimler) ileme konur. Btn durumlarn aksi sz konu olduunda gerekletirilmesi istenen deyimler default deyiminden sonraki ksmda bildirilir. rnek switch (degisken) { case 1: //deiken 1 eit oldugunda yrt break; case 2: //deiken 2 eit oldugunda yrt
break; default: // Hibiri ile elemez ise yrt // default deyimi opsiyoneldir. }
while
Tekrarlama deyimidir. Bir kme ya da deyim while kullanlarak bir ok kez yinelenebilir. Yinelenmesi iin koul snamas dngye girilmeden yaplr. Koul olumlu olduu srece evrim yinelenir.
rnek degisken = 0; while(degisken < 200){ // 200 defa kodu yrtr. degisken++; }
do....while
Bu deyimin while deyiminden fark, koulun dng sonunda snanmasdr. Yani koul snanmadan dngye girilir ve dng kmesi en az bir kez yrtlr. Koul olumsuz ise dngden sonraki satra geilir. rnek do { delay(50); //sensor stabilizisyanu iin bekle x = readSensors(); // Sensoru oku } while (x < 100);
break
Bir Arduino programnda, bir ilem gerekletirilirken, ilemin sona erdirilmesi bu deyim ile yaplr. rnein, dng deyimleri iindekiler yrtlrken, evrimin, kouldan bamsz kesin olarak sonlanmas gerektiinde bu deyim kullanlr. rnek for (x = 0; x < 255; x ++)
continue
Bir dng ierisinde continue deyimi ile karlalrsa, ondan sonra gelen deyimler atlanr ve dng bir sonraki evrime girer. rnek for (x = 0; x < 255; x ++) { if (x > 40 && x < 120){ continue; } // create jump in values
return
Fonksiyon'u sonlandrmak veya deger dndrmek iin kullanlr. rnek int checkSensor(){ if (analogRead(0) > 400) { return 1; else{ return 0; }}
goto
Programn herhangi bir yerinden baka bir yerine atlamak iin goto deyimi kullanlr. rnek for(byte r = 0; r < 255; r++){ for(byte g = 255; g > -1; g--){ for(byte b = 0; b < 255; b++){
FRITZING
Fritzing ak kaynak kodlu gelitirilen devre tasarm programdr.Fritizng iinde bulunan Arduino board'laryla (diger board'larda mevcut) ve temel devre elemanlaryla devrenizi abuk prototip retmenizi saglar.Fritzing'i kullanmak iin ok fazla Bir ey bilmenize gerek yok devre elemanlarn srkle brak ile alma alannza alp kullanabilirsiniz.
Fritzing www.fritzing.org adresinden iletim sisteminize uygun olan versiyonunu indirebilirsiniz.Ayrca fritzing Windows ,Linux ve Mac OS X almaktadr.
PROCESSING
Processing, resim, animasyon ve etkileim yntemleri gelitirebileceiniz ak kaynak bir programlama dili ve ortamdr. okluortam malzemeleriyle (resim, video ve ses gibi) sorunsuz alabilir, ileyebilir. Grsel bir kt zerinden
hareket ederek bilgisayar programlamann prensipleri ve temellerini disiplin d kiilerinde ok rahat ve hzl bir ekilde renmesine olanak salar. O nedenle birok aratrmac, renci, tasarmc ve sanat tarafndan tercih edilen bir programlama dilidir. Kendi yaptklar profesyonel ilerinde prototip uygulama, sergi esi veya ilerinin niteliklerini artracak nitelikte kullanmaktadr. Processing bu kadar farkl amalarda farkl insanlarn tercih etme sebeplerini sralayacak olursak; Ak kaynak ve tm iletim sistemleri ile sorunsuz alabilmesi 2D ve 3D ile sorunsuz alabilme bu grntler zerinde kolay ve hzl etkileim yaratabilme (gelimi 2D ve 3D ktphaneleri) Uygulama iersinden basit ve kolay PDF ktlar alabilme (zengin PDF ktphaneleri) OpenGL entegrasyonu ile 3D motor kullanm Ses, video bata olmak zere 100den fazla ktphane ile birok oklu ortam esi ile sorunsuz alabilme Web ve masastde alabilir uygulamalar yaratabilme Andorid destei
Sadece processing iin zelletirilmi bir programlama ortam (PDE Processing Development Enviroment) Geni kaynak eriimi (Gncel ve eksiksiz dokmantasyon ve zel gereksinimler zerine yazlm oka sayda kitap)
Processing'den bahsetmemin nedeni Arduino ile Seri veri iletimi sayesinde Data Visualization kolayca yaplabilmesidir. Processing ile zaten zevkli olan Arduino programlama daha zevkli hale geliyor.Birok projeniz grsel anlamda daha gze hitap edecek hale geliyor ve insanlarn anlamas kolaylayor. Processing 'i https://processing.org/download/ adresinden indirebilirsiniz.Kiisel bir tavsiye olarak eger 64 bit windows kullanyorsanz Processingn
PROJELER
Proje-1
Aslnda ilk projelerimizi yapm olmakla birlikte burda ise sadece proje bazl anlatacam. LED yakp sndrdgmz iin ilk projemiz biraz daha yine led'lerle alakal olup biraz daha kullanl bir proje olacak
Trafik Lambas
Projemizin adndan anlalac zere trafik lambas yapacaz. Neye ihtiyan var 1. BreadBoard 2. 1'er adet krmz ,sar ve yeil led 3. Jumper kablo
Devremizi ekildeki gibi baladktan sonra tek yapmamz gereken kodu yklememiz.
Kod