Renkler
- Güç
- İşlem
- Pinler
- Işıklar
- Breadboard
- Parçalar
- Kontrol
Bu cihaz 3D görüntüyü açamadı. Kartlardaki anlatım ve mini sınav çalışır.
Ekran kartı sahneyi durdurdu.
Bir deliğe dokun: bağlı delikler yeşil yanar
Parçalara dokunarak tanı
Panel ayarları
Panel genişliği
Yazı boyutu
Panel tarafı
LED Yakalım: 3D Arduino simülasyonu
Küçük ışıklar her yerde
Televizyonun kapalıyken yanan küçük ışığını, şarj aletindeki ışığı gördünüz mü? Bu küçük ışıklar genellikle birer LED'dir. Bugün biz de bir LED'i Arduino ile yakıp söndüreceğiz. Sizce bunun için neye ihtiyacımız var?
Birçok trafik ışığında, ekranlarda ve cihazların açık olduğunu gösteren küçük ışıklarda LED kullanılır. Bir LED'i yakmak kolay görünür ama onu doğru yönde takmak ve korumak gerekir. Bugün Arduino ile bir LED'i yakıp söndüren ilk devremizi kuralım ve ilk kodumuzu yazalım.
Bir cihazın açık olduğunu gösteren küçük ışık, cihazın bize verdiği bir çıkıştır: bize bir bilgi iletir. Bugün Arduino'ya ilk kez bir çıkış yaptıracağız ve bir LED'i belli aralıklarla yakıp söndüreceğiz. Bunun için hem doğru bir devre hem de doğru bir kod gerekir. Sizce devre doğru ama kod yanlışsa ne olur?
LED'ler trafik ışıklarında, ekranlarda ve cihaz durum ışıklarında karşımıza çıkar; aynı ışığı eski tip ampullerden daha az enerjiyle verirler. Bugün bir LED'i Arduino'nun 13 numaralı pininden yöneteceğiz. Bunun için üç şeyi birlikte düşüneceğiz: LED'in yönü, akımı sınırlayan direnç ve pindeki gerilimi zamanla değiştiren kod. Sizce hangisi eksik olursa LED yanmaz?
Bu derste
- LED'in uzun ve kısa bacağını ayırt edeceğiz.
- Breadboard'da LED, direnç ve kablolarla bir devre kuracağız.
- Kısa bir kodla LED'i yakıp söndüreceğiz.
Bu derste
- LED'in anot ve katot bacaklarını tanıyıp doğru yönde takacağız.
- Direncin devrede neden gerektiğini açıklayacağız.
- Kodda LED'i yakan ve söndüren satırları göstereceğiz.
Bu derste
- Elektriğin pin 13'ten GND'ye kadar izlediği kapalı yolu göstereceğiz.
- setup ve loop bölümlerinin görevini açıklayacağız.
- Bekleme süresini değiştirince ne olacağını önceden tahmin edeceğiz.
Bu derste
- 220 Ω dirençle LED'den geçen akımı yaklaşık olarak hesaplayacağız.
- HIGH ve LOW komutlarının pindeki gerilimi nasıl değiştirdiğini açıklayacağız.
- LED'in tek yönlü çalışmasını diyot özelliğiyle ilişkilendireceğiz.
Malzemelerimiz
Masamızda neler var? Bir Arduino UNO, bir breadboard, bir LED, bir direnç (220 ohm), iki kablo ve bir USB kablosu. Ekranda her parçayı bulalım ve adını söyleyelim.
Bu devre için gerekenler: 1 Arduino UNO, 1 breadboard, 1 LED, 1 adet 220 Ω direnç, 2 bağlantı kablosu (turuncu ve siyah) ve 1 USB kablosu. Ω işareti, direncin birimi olan ohm'u gösterir. Kablolardan biri elektriği götürecek, öteki geri getirecek.
Malzemeler: Arduino UNO, breadboard, 1 LED, 1 adet 220 Ω direnç, 2 kablo ve USB kablosu. Her parçanın bir görevi var: Arduino kodu çalıştırıp pine gerilim verir, LED elektriği ışığa çevirir, direnç akımı sınırlar, kablolar ve breadboard yolu tamamlar. Bir parça eksik olursa ne olur? Kurarken düşünelim.
Malzemeler: Arduino UNO, breadboard, 1 LED, 1 adet 220 Ω direnç (±%5), 2 atlama kablosu ve USB A-B kablosu. Devre basit bir seri devredir: kaynak (D13, 5 V), yük (LED), akım sınırlayıcı (direnç) ve dönüş yolu (GND). Kırmızı LED kullanıyorsak hesaplarda LED üzerindeki gerilimi yaklaşık 2 V alacağız; bu değer LED'den LED'e biraz değişir.
LED'i tanıyalım
LED, elektrik geçince ışık veren küçük bir lambadır. İki bacağı var: uzun bacak artı, kısa bacak eksi tarafıdır. Kısa bacak tarafında kenar düzdür. LED'i hangi yönde taktığımız önemli; nedenini birazdan deneyip göreceğiz.
LED (ışık yayan diyot), içinden elektrik geçince ışık verir. Uzun bacağına anot (artı), kısa bacağına katot (eksi) denir. Katot tarafında LED'in kenarı düzdür; bacaklar eşit kesilmişse bu kenara bakarız. Anot ile katodu karıştırırsak ne olacağını dersin sonunda deneyeceğiz.
LED, ışık yayan diyot demektir. Diyotlar, akımın yönüne duyarlı devre elemanlarıdır. LED'in uzun bacağı anot (artı), kısa bacağı katot (eksi) tarafıdır; katot tarafında gövdenin kenarı düzdür. Akım anottan girip katottan çıktığında LED ışık verir. Ters yönde ne olacağını birazdan tahmin edip deneyeceğiz.
LED (ışık yayan diyot) bir yarı iletken diyottur. Anot (uzun bacak) katoda göre yeterince pozitif olduğunda akım geçer ve LED ışık yayar. Bu sırada LED'in üzerinde yaklaşık 2 V'luk bir gerilim kalır; bu değer LED'in rengine ve akıma göre biraz değişir (kırmızı LED için tipik olarak 1,8-2,2 V). Katot, kısa bacak ve gövdedeki düz kenar tarafıdır.
Direnç neden gerekli?
Bu çizgili küçük parça bir direnç. Bir musluğu biraz kısmak gibi, elektriğin akışını azaltır. Direnç olmazsa LED'e fazla elektrik gider; LED de kart da zarar görebilir. Direnç LED'i söndürmez, onu korur. Renkli çizgiler değerini söyler.
Direnç, elektriğin geçişini zorlaştıran bir devre elemanıdır. Birimi ohm'dur (Ω). Bizim direncimiz 220 Ω; renk bantları kırmızı, kırmızı, kahverengi, altın. Direnç LED'i söndürmez, ondan geçen elektriği sınırlar. Böylece hem LED hem de Arduino'nun pini korunur.
LED'i doğrudan 5 V'a bağlarsak akımı sınırlayan bir şey kalmaz; LED aşırı ısınıp bozulabilir, Arduino'nun pini de zarar görebilir. Direnç, akımı güvenli bir değerde tutar. Direnç LED'i söndürmez, yalnız akımı sınırlar; LED yine yanar. 220 Ω'luk direncin renk bantları kırmızı (2), kırmızı (2), kahverengi (×10) ve altındır (%5 tolerans).
Ohm yasası: V = I × R. Pin 5 V verir; LED'in üzerinde yaklaşık 2 V kalır, geriye dirence yaklaşık 3 V düşer. Akım I = V / R = 3 V / 220 Ω ≈ 0,014 A, yani yaklaşık 14 mA. Bu değer hem LED hem de pin için güvenlidir. Direnç olmasaydı akımı sınırlayan bir parça kalmaz, LED ve pin zarar görebilirdi. Renk bantları: kırmızı (2), kırmızı (2), kahverengi (×10), altın (%5).
LED'i takalım
LED'i breadboard'a takalım. Uzun bacak 15. sütuna, kısa bacak 16. sütuna gidiyor. İki bacak farklı sütunlarda olmalı; aynı sütuna takarsak bacaklar şerit üzerinden birleşir ve elektrik LED'in içinden geçmez.
LED'i yan yana iki sütuna takalım: anot (uzun bacak) 15. sütuna, katot (kısa bacak) 16. sütuna. Böylece iki bacak ayrı şeritlere bağlanır. Aynı sütuna takılsaydı bacaklar şerit üzerinden birleşir, elektrik LED'e uğramadan geçip giderdi.
LED'in anodunu (uzun bacak) 15., katodunu (kısa bacak) 16. sütuna takalım. Her bacak ayrı bir beşli şeride girer; böylece 15. sütuna gelen elektrik, 16. sütuna geçmek için LED'in içinden geçmek zorunda kalır. Bacakları aynı sütuna takmak LED'i devreden çıkarır, çünkü akımın neredeyse tamamı dirençsiz metal şeritten geçer.
Anot (uzun bacak) 15., katot (kısa bacak) 16. sütuna takılır. İki bacak ayrı iletken şeritlerde olduğu için 15. sütundaki noktayla 16. sütundaki nokta arasındaki tek yol LED'in kendisidir; LED devreye seri bağlanmış olur. Bacaklar aynı şeride takılsaydı LED, direnci neredeyse sıfır olan şerit tarafından kısa devre edilir, üzerinden neredeyse hiç akım geçmezdi.
Direnci takalım
Şimdi direnci takalım. Bir ucu LED'in kısa bacağıyla aynı sütuna, yani 16. sütuna girer. Öteki ucu alttaki - rayına gider. Direncin yönü yoktur, iki ucu da aynıdır; istediğimiz gibi takabiliriz.
Direncin bir bacağını 16. sütuna, yani LED'in katoduyla aynı şeride takalım. Diğer bacağı alttaki - rayına (mavi çizgi) gidiyor. Böylece LED'den çıkan elektrik direnç üzerinden - rayına ulaşır. Direncin artısı eksisi yoktur; iki yönde de aynı çalışır.
Direncin bir ucu 16. sütuna (LED'in katoduyla aynı şerit), öteki ucu alttaki - rayına takılır. Direnci LED'in önüne değil arkasına koyduk; bu bir sorun mu? Hayır. Tek yollu (seri) bir devrede akım her yerde aynıdır, direnç yolun neresinde olursa olsun akımı sınırlar. Direncin yönü de yoktur.
Direnç, 16. sütundan alttaki - rayına bağlanır; yani LED'in katodu ile GND arasına girer. Seri devrede akım her noktada aynı olduğundan direncin LED'den önce ya da sonra olması akımı değiştirmez: I = (5 V - yaklaşık 2 V) / 220 Ω her iki durumda da geçerlidir. Direncin kutbu yoktur; LED'den farklı olarak iki yönde de aynı davranır.
Kabloları bağlayalım
Önce USB kablosunun takılı olmadığından emin olalım. Turuncu kablo pin 13'ten 15. sütuna, yani LED'in uzun bacağına gider. Siyah kablo GND'den alttaki - rayına gider. Böylece elektriğin gidip döneceği yol tamamlanır.
Kabloları takarken USB kablosu takılı olmamalı. Turuncu kablo Arduino'nun 13 numaralı pininden 15. sütuna (LED'in anoduna) gider. Siyah kablo GND pininden alttaki - rayına gider. Artık yol kesintisiz bir halka: pin 13, LED, direnç, - rayı ve GND. Buna kapalı devre denir.
Devreyi USB kablosu takılı değilken kuralım; yanlış bir bağlantı çalışırken kısa devre yapabilir. Turuncu kablo pin 13'ü 15. sütuna (anot), siyah kablo GND'yi alttaki - rayına bağlar. Şimdi akımın yolu kapalı bir devredir: pin 13, LED, direnç, - rayı, GND. Yolun herhangi bir yeri açık kalırsa LED yanmaz.
Bağlantılar USB takılı değilken yapılır; böylece yanlış bir kablo, kısa devre oluşturmadan düzeltilebilir. Turuncu kablo D13 çıkışını 15. sütuna (anot), siyah kablo GND'yi - rayına bağlar. Devrenin yolu: D13, LED, 220 Ω, GND. Tek bir yol olduğundan bu bir seri devredir; yolun bir yerinde kopukluk olursa devre açık olur ve akım sıfıra iner.
Kodu okuyalım
Şimdi karta ne yapacağını söyleyelim. Kodun iki bölümü var.
setupbir kez çalışır: 13. pini çıkış yapar, yani elektrik verebilir hâle getirir.loopdurmadan tekrar eder: LED'i yak, 1 saniye bekle, söndür, 1 saniye bekle.Kod iki bölümden oluşur.
setupkart açılınca bir kez çalışır;pinMode(13, OUTPUT)ile 13. pini çıkış yapar.loopise sonsuza kadar tekrar eder:digitalWrite(13, HIGH)LED'i yakar,delay(1000)1000 milisaniye (1 saniye) bekletir,LOWsöndürür.Kod yukarıdan aşağıya, satır satır çalışır.
setupbölümü kart açıldığında ya da sıfırlandığında yalnız bir kez çalışır ve 13. pini çıkış olarak ayarlar.loopbölümü bitince başa döner, yani bir döngüdür. İçindeki dört satır sırayla: yak, 1 saniye bekle, söndür, 1 saniye bekle. Her satırın Türkçe karşılığına da bakalım.setup(), kart enerjilendiğinde ya da sıfırlandığında bir kez çalışır;pinMode(13, OUTPUT)D13'ü çıkış yapar.loop()sürekli tekrar eder.digitalWrite(13, HIGH)pine 5 V,LOW0 V verir.delay(1000)programı 1000 ms durdurur; bu sürede kodun başka hiçbir satırı çalışmaz. Bir tur 2000 ms sürer, yani LED dakikada 30 kez yanıp söner.Arduino koduAltında Türkçesivoid setup() {Hazırlık bölümü başlıyor. Buradaki komutlar kart açılınca yalnız bir kez çalışır.pinMode(13, OUTPUT);13 numaralı pini çıkış yap: bu pin artık elektrik verebilir.}Hazırlık bölümü bitti.void loop() {Tekrar bölümü başlıyor. Buradaki komutlar sırayla çalışır, bitince en başa döner.digitalWrite(13, HIGH);13. pine elektrik ver (5 volt): LED yanar.delay(1000);1000 milisaniye, yani 1 saniye bekle.digitalWrite(13, LOW);13. pinin elektriğini kes (0 volt): LED söner.delay(1000);1 saniye daha bekle.}Tekrar bölümü bitti; en başa dön ve yeniden başla.
Çalıştıralım ve gözleyelim
Şimdi USB'yi takalım ve LED'i izleyelim: 1 saniye yanıyor, 1 saniye sönüyor. Kodda o an çalışan satır parlıyor. "Akımı göster" düğmesine basalım: noktalar elektriğin yolunu gösterir. "Bekleme" düğmelerinden 0,5 sn'yi seçip ne değiştiğine bakalım.
Kodu karta yükleyelim. LED 1 saniye yanıyor, 1 saniye sönüyor; kodda çalışan satır vurgulanıyor. LED yanarken hangi satırın vurgulandığına dikkat edelim. "Akımı göster" ile elektriğin pin 13'ten çıkıp GND'ye döndüğünü görelim. Sonra "Bekleme" düğmelerinden 0,5 sn ve 0,2 sn'yi deneyelim.
Kod çalışınca LED 1 saniye yanar, 1 saniye söner. Vurgulanan satıra bakalım: LED'in yandığı sürenin neredeyse tamamında kart
delay(1000)satırında bekliyor. Pin, yeni bir komut gelene kadar son durumunda kalır. "Akımı göster" ile akımın yolunu izleyelim; "Bekleme" düğmeleriyle süreyi 0,5 sn ve 0,2 sn yapıp yanıp sönme hızını karşılaştıralım.Kart kodu çalıştırırken vurgulanan satırı izleyelim: LED'in açık kaldığı yaklaşık 1000 ms boyunca program
delay(1000)satırındadır; D13 ise son yazılan HIGH değerini korur. "Akımı göster" düğmesi akımın D13'ten çıkıp LED ve direnç üzerinden GND'ye dönen kapalı yolunu gösterir. "Bekleme" düğmeleriyle 500 ms ve 200 ms deneyelim. Süre birkaç milisaniyeye inseydi göz yanıp sönmeyi ayırt edemez, LED sürekli yanıyor gibi görünürdü; PWM bu fikre dayanır.BeklemeArduino koduAltında Türkçesivoid setup() {Hazırlık bölümü başlıyor. Buradaki komutlar kart açılınca yalnız bir kez çalışır.pinMode(13, OUTPUT);13 numaralı pini çıkış yap: bu pin artık elektrik verebilir.}Hazırlık bölümü bitti.void loop() {Tekrar bölümü başlıyor. Buradaki komutlar sırayla çalışır, bitince en başa döner.digitalWrite(13, HIGH);13. pine elektrik ver (5 volt): LED yanar.delay(1000);1000 milisaniye, yani 1 saniye bekle.digitalWrite(13, LOW);13. pinin elektriğini kes (0 volt): LED söner.delay(1000);1 saniye daha bekle.}Tekrar bölümü bitti; en başa dön ve yeniden başla.
LED'i ters takarsak?
Önce tahmin edelim, sonra deneyelim. "LED'i ters çevir" düğmesine basınca uzun bacak 16. sütuna, kısa bacak 15. sütuna geçer. Kod aynı, kablolar aynı; yalnız LED'in yönü değişti.
Tahmin et, sonra gör. Kodu ve kabloları değiştirmeden yalnız LED'i ters çevireceğiz: anot 16. sütuna, katot 15. sütuna geçecek. Önce sınıfça tahminimizi söyleyelim, sonra "LED'i ters çevir" düğmesine basıp "Akımı göster" ile akımın yoluna bakalım.
Tek bir şeyi değiştirip sonucu gözleyelim: yalnız LED'in yönünü değiştireceğiz, kod ve kablolar aynı kalacak. Pin 13 yine HIGH olacak, yani gerilim yine verilecek. Önce tahminimizi gerekçesiyle söyleyelim. Sonra "LED'i ters çevir" düğmesine basalım ve "Akımı göster" ile akımın devrede dolaşıp dolaşmadığına bakalım.
Deney düzeni: bağımsız değişken LED'in yönü; kod, kablolar ve direnç sabit (kontrol değişkenleri); bağımlı değişken LED'in ışığı ve akım. Önce LED'in diyot özelliğini kullanarak bir tahmin yazalım: katot 15. sütuna, anot 16. sütuna geçince D13 HIGH olduğunda ne olur? Sonra "LED'i ters çevir" ve "Akımı göster" düğmeleriyle tahminimizi sınayalım.
Tahmin et: LED'i ters takarsak ne olur? Yanar mı, yanmaz mı, bozulur mu?
LED yanmaz. LED, yalnız bir yönden geçilen bir turnike gibidir: elektrik yalnız uzun bacaktan kısa bacağa doğru geçebilir. Ters takınca geçemez. LED bozulmaz; doğru çevirince yeniden yanar.
Tahmin et: Anot ile katodun yeri değişirse LED yanar mı? Neden?
LED yanmaz ama bozulmaz. LED, elektriği yalnız anottan katoda geçirir. Ters takılınca yol tıkanır ve devre açık devre gibi davranır. LED'i doğru yöne çevirince yeniden yanar.
Tahmin et: LED ters takılınca pin 13 yine HIGH olursa LED yanar mı? Akım devrede dolaşır mı?
LED yanmaz. Diyot olduğu için akımı yalnız anottan katoda geçirir; ters bağlanınca akım geçmez ve devre açık devre gibi olur. Pin yine 5 V verir ama akım oluşmaz. Bu devrede LED zarar görmez; doğru yöne çevirince yeniden yanar.
Tahmin et: LED ters yönde bağlanınca devreden akım geçer mi? LED ışık verir mi, zarar görür mü?
Akım neredeyse sıfır olur, LED yanmaz. Diyot ters yönde iletmez; devre açık devre gibi davranır ve pinin 5 V'u LED'in uçları arasında ters yönde kalır. Bu devrede LED zarar görmez. Tek yönlü iletim LED'in temel özelliğidir; doğru yöne çevirince akım yine yaklaşık 14 mA olur.
Özet
Bugün ilk devremizi kurduk. LED'in uzun bacağı artı, kısa bacağı eksidir; LED tek yönde çalışır. Direnç LED'i söndürmez, korur. Elektrik pin 13'ten çıkar, GND'ye döner. Kod LED'i yakar, bekler, söndürür, bekler ve bunu tekrarlar.
Özet: LED'in anodu (uzun bacak) pin tarafına, katodu (kısa bacak) GND tarafına bakar; ters takılırsa yanmaz ama bozulmaz. 220 Ω direnç akımı sınırlayarak LED'i ve pini korur. Kapalı devre: pin 13, LED, direnç, GND.
setupbir kez,loopsürekli çalışır;delay(1000)1 saniye bekletir.LED bir diyottur, akımı yalnız anottan katoda geçirir. Direnç akımı sınırlar ve seri devrede nerede durduğu önemli değildir. Akım ancak kapalı bir yol varsa oluşur: pin 13, LED, direnç, GND. Kod yukarıdan aşağı çalışır;
loopbir döngüdür vedelaysırasında kart bekler. Bekleme süresini değiştirmek yanıp sönme hızını değiştirir.HIGH, D13'e yaklaşık 5 V verir; LED'de yaklaşık 2 V kalır, 220 Ω'a yaklaşık 3 V düşer ve I = V / R ≈ 14 mA akar. LED ters yönde iletmez. Seri devrede akım her noktada aynıdır, direncin yeri fark etmez.
delayprogramı durdurur; bir turun süresi ikidelaydeğerinin toplamıdır. Bekleme milisaniyeler düzeyine inerse göz yanıp sönmeyi göremez: PWM'in temeli budur.Mini sınav
Mini sınav
Mini sınav
Mini sınav