Blok Kodlama Döngüler ve Değişkenler: Arduino for ve Dizi
Blok kodlama döngüler ve değişkenler: sürekli tekrarla ve loop(), say bloğu ve Arduino for döngüsü, dizi, sayaç. Yürüyen Led blokları ve C++ kodu yan yana.
Blok kodlamada döngüler ve değişkenler, bir programı "bir kez yap" olmaktan çıkarıp "sürekli ve akıllıca yap" hâline getiren iki yapı taşıdır. Döngü aynı blokları tekrar tekrar çalıştırır, değişken de bu tekrarlar sırasında bir sayıyı aklında tutar. BlueGrays'teki bloklarda bunlar "sürekli tekrarla", "i değişkeniyle say", "genel değişkenler (en başta)" ve "… değişkenine … ata" olarak görünür; karta yüklenen Arduino kodunda ise karşılıkları loop(), for döngüsü, int değişken ve atama satırıdır.
Bu bölümde dört ücretsiz projenin bloklarını gerçek C++ koduyla yan yana okuyacağız: altı LED'i sırayla yakan Yürüyen Led, hızını potansiyometreden alan Hız Ayarlı Yürüyen Led, ışığı bir uçtan öbürüne götürüp geri getiren Karaşimşek Led ve onun potansiyometreli hâli Hız Ayarlı Karaşimşek Led. Dördü de aynı devreyi kullanır: D2–D7 pinlerinde altı LED ve A0'da bir potansiyometre. Sonunda kendi sayaç örneğini yazacak, yeni başlayanların en sık düştüğü üç hatayı da (bir eksik ya da bir fazla saymak, dizinin dışına taşmak ve butonları kör eden uzun beklemeler) tek tek göreceksin.
"Sürekli tekrarla" bloğu ve loop(): kart neden hiç durmaz?
Bilgisayardaki bir program işini bitirince kapanır; Arduino'daki program ise kapanmaz. Kartta bir işletim sistemi yoktur, işlemcinin yapacak başka bir işi de yoktur. Bu yüzden her bloklu projenin iskeleti aynıdır: "kurulum (bir kez çalışır)" bloğunun içindekiler kart enerjilendiğinde ya da reset düğmesine basıldığında yalnız bir kez çalışır, "sürekli tekrarla" bloğunun içindekiler ise baştan sona durmadan tekrar eder. C++ tarafında bunlar setup() ve loop() fonksiyonlarıdır. loop()'un son satırı bittiğinde kart hiç beklemeden ilk satıra döner; içinde hiç bekleme olmayan kısa bir loop() saniyede on binlerce kez çalışabilir. Kartı durdurmanın tek yolu enerjisini kesmek ya da yeni bir program yüklemektir. Bu sonsuz tekrar bir kusur değil, tasarımın kendisidir: buton okuma, sensör izleme, LED yakıp söndürme gibi işlerin hepsi her turda yeniden yapılır ve kart böylece çevresindeki değişikliklere sürekli cevap verir.
| Blok | C++ karşılığı | Ne zaman çalışır? |
|---|---|---|
| genel değişkenler (en başta) | setup()'ın üstündeki satırlar | Program başlarken bir kez; değişkenler bellekte hep kalır |
| kurulum (bir kez çalışır) | void setup() { ... } | Enerji verildiğinde ya da resetten sonra bir kez |
| sürekli tekrarla | void loop() { ... } | setup() bittikten sonra, enerji kesilene kadar durmadan |
Blok kodlamada değişken: genel değişkenler ve tanımla bloğu
Değişken, içine sayı koyduğun ve adıyla çağırdığın küçük bir kutudur. Bloklarda değişkenler mor renkli "genel değişkenler (en başta)" bloğunun içinde tanımlanır. İçindeki "tanımla: tam sayı (int) potValue = 0" bloğu koda int potValue satırı olarak geçer: int türü, potValue adı, 0 da başlangıç değeridir. "En başta" ifadesi önemlidir: bu satırlar setup() ve loop()'un dışında, dosyanın en üstünde durur. Böyle tanımlanan global değişken programın her yerinden görülür ve loop() her yeniden başladığında değerini kaybetmez. Arduino Uno'da int 2 bayttır ve -32768 ile 32767 arasındaki tam sayıları tutar; analogRead()'in verdiği 0–1023 aralığı ve pin numaraları için fazlasıyla yeterlidir. Hız Ayarlı Yürüyen Led projesinin bloklarında potValue = 0 yazarken kodunda yalnız int potValue; yazdığını görebilirsin. İkisi aynı sonucu verir: C++'ta başlangıç değeri verilmeyen global değişkenler sıfırla başlar.
Değişkenin değerini sonradan değiştiren blok "… değişkenine … ata" bloğudur. "potValue değişkenine analog oku A0 ata" bloğu koda potValue = analogRead(A0); olarak çevrilir. Buradaki = işareti matematikteki eşitlik değil, "sağdaki değeri hesapla ve soldaki kutuya koy" demektir. İki değerin eşit olup olmadığını soran karşılaştırma ise C++'ta == ile yazılır; bunu serinin önceki bölümünde eğer bloğuyla görmüştük. Atama bloğu çalıştığında kutudaki eski değer silinir, yenisi yazılır. Değişkeni okuyan bloklar da artık o yeni değeri kullanır: "potValue ms bekle" bloğu, potValue'da o anda hangi sayı varsa o kadar milisaniye bekler.
Sayma döngüsü: "i değişkeniyle say" bloğu ve Arduino for döngüsü
Bir işi belli sayıda tekrar etmek için yeşil renkli "i değişkeniyle say: 0 ile 5 arası, adım 1" bloğu kullanılır. Bu blok i adlı bir sayaç oluşturur, ona önce 0 verir, içindeki blokları çalıştırır, sonra i'yi 1 artırıp yeniden çalıştırır ve i 5'i geçene kadar böyle devam eder. Arduino'daki karşılığı for (int i = 0; i < 6; i++) satırıdır. Parantezin içinde noktalı virgülle ayrılmış üç bölüm vardır: başlangıç (int i = 0), devam koşulu (i < 6) ve her turdan sonra yapılacak artış (i++, yani i'yi bir artır). Dikkat etmen gereken en önemli nokta şu: bloktaki bitiş değeri dahildir. "0 ile 5 arası" demek 0, 1, 2, 3, 4 ve 5 demektir; yani döngü 5 değil 6 kez döner ve altı LED'in her birine bir tur düşer. Kodda bu yüzden i <= 5 yerine aynı anlama gelen i < 6 yazar. Arduino kodlarında "sıfırdan başla, eleman sayısından küçükken devam et" kalıbı çok yaygındır, çünkü 6 rakamı doğrudan LED sayısını söyler.
| Blok ayarı | Eşdeğer C++ | i'nin aldığı değerler | Tur sayısı |
|---|---|---|---|
| 0 ile 5 arası, adım 1 | for (int i = 0; i < 6; i++) | 0, 1, 2, 3, 4, 5 | 6 |
| 0 ile 5 arası, adım 2 | for (int i = 0; i <= 5; i += 2) | 0, 2, 4 | 3 |
| 4 ile 1 arası, adım 1 | for (int i = 4; i > 0; i--) | 4, 3, 2, 1 | 4 |
| 1 ile 6 arası, adım 1 | for (int i = 1; i <= 6; i++) | 1, 2, 3, 4, 5, 6 | 6 (ama ledPins[6] diye bir eleman yok) |
Dizi bloğu: "dizi 2 3 4 5 6 7" ve ledPins[i]
Altı LED için altı ayrı değişken tanımlamak yerine hepsini tek bir listede tutabilirsin. Mor "dizi 2 3 4 5 6 7" bloğu "tanımla: tam sayı (int) ledPins = …" bloğuna takıldığında koda int ledPins[] = {2, 3, 4, 5, 6, 7}; satırı olarak geçer. Köşeli parantez bunun bir dizi olduğunu, süslü parantez de içindeki değerleri gösterir. Dizideki bir elemana sıra numarasıyla, yani indeksle ulaşılır ve C++'ta indeks 0'dan başlar: ilk eleman ledPins[0], son eleman ledPins[5]'tir. Bloklarda bunu "ledPins dizisinden öğe i" bloğu yapar ve koda ledPins[i] olarak çevrilir. Sayma döngüsü de 0'dan başladığı için ikisi birbirine tam oturur: i her turda bir sonraki indeksi, ledPins[i] de o indeksteki pin numarasını verir. Dizinin bir başka güzelliği şu: LED'lerin sırasını değiştirmek istersen döngüye hiç dokunmadan yalnız listedeki sayıların yerini değiştirmen yeterli. Dizileri daha ayrıntılı öğrenmek istersen Arduino'da dizi kullanımı yazısına bakabilirsin.
| i (indeks) | ledPins[i] | Yanan LED |
|---|---|---|
| 0 | 2 | 1. LED (D2) |
| 1 | 3 | 2. LED (D3) |
| 2 | 4 | 3. LED (D4) |
| 3 | 5 | 4. LED (D5) |
| 4 | 6 | 5. LED (D6) |
| 5 | 7 | 6. LED (D7) |
Yürüyen Led: bloklar ve C++ satır satır

1int ledPins[] = {2, 3, 4, 5, 6, 7}; // LED pinleri, yanma sırasıyla / LED pins in lighting order
2
3void setup() {
4 // Tüm LED pinlerini çıkış yap / Set all LED pins as outputs
5 for(int i = 0; i < 6; i++) {
6 pinMode(ledPins[i], OUTPUT);
7 }
8}
9
10void loop() {
11 // Her LED'i sırayla 150 ms yak / Light each LED in turn for 150 ms
12 for(int i = 0; i < 6; i++) {
13 digitalWrite(ledPins[i], HIGH);
14 delay(150);
15 digitalWrite(ledPins[i], LOW);
16 }
17}| Blok | C++ satırı | Ne yapar? |
|---|---|---|
| tanımla: tam sayı (int) ledPins = dizi 2 3 4 5 6 7 | int ledPins[] = {2, 3, 4, 5, 6, 7}; | Altı pin numarasını yanma sırasıyla saklar |
| kurulum (bir kez çalışır) | void setup() { | İçindekiler açılışta bir kez çalışır |
| i değişkeniyle say: 0 ile 5 arası, adım 1 | for(int i = 0; i < 6; i++) { | i'yi 0'dan 5'e kadar sayar: 6 tur |
| ledPins dizisinden öğe i numaralı pini ÇIKIŞ olarak ayarla | pinMode(ledPins[i], OUTPUT); | Sıradaki pini çıkış yapar |
| sürekli tekrarla | void loop() { | İçindekiler durmadan tekrar eder |
| ledPins dizisinden öğe i numaralı pine YÜKSEK yaz | digitalWrite(ledPins[i], HIGH); | Sıradaki LED'i yakar |
| 150 ms bekle | delay(150); | LED 150 ms yanık kalır |
| ledPins dizisinden öğe i numaralı pine DÜŞÜK yaz | digitalWrite(ledPins[i], LOW); | LED'i söndürür, döngü bir sonraki LED'e geçer |
Programın akışını bir zaman çizelgesi gibi düşün. Kart açılınca kurulumdaki döngü altı pini 0'dan 5'e kadar sırayla çıkış yapar ve bu iş bir daha tekrarlanmaz. Ardından sürekli tekrarla başlar: içerideki sayma döngüsü D2'deki LED'i yakar, 150 ms bekler, söndürür, sonra aynı işi D3, D4, D5, D6 ve D7 için yapar. Bir tur 6 × 150 = 900 ms sürer. Son LED sönünce loop() biter, kart hemen başa döner ve ışık yeniden D2'den başlar; turlar arasında boşluk olmadığı için ışık durmadan akıyormuş gibi görünür. Hızı değiştirmek için tek bir sayıyı, 150'yi değiştirmen yeter: 50 yazarsan ışık üç kat hızlanır, 500 yazarsan yavaşça yürür. Bu sabit hızı bir düğmeyle ayarlanabilir yapmak bizi sıradaki projeye götürüyor.
Hız Ayarlı Yürüyen Led: potansiyometre değeri bekleme süresi olur

1int ledPins[] = {2, 3, 4, 5, 6, 7}; // LED pinleri, yanma sırasıyla / LED pins in lighting order
2int potValue; // Pot değeri = bekleme (ms) / Pot value = delay (ms)
3
4void setup() {
5 // Tüm LED pinlerini çıkış yap / Set all LED pins as outputs
6 for(int i = 0; i < 6; i++) {
7 pinMode(ledPins[i], OUTPUT);
8 }
9}
10
11void loop() {
12 for(int i = 0; i < 6; i++) {
13 potValue = analogRead(A0); // Hızı oku (0-1023) / Read the speed (0-1023)
14 digitalWrite(ledPins[i], HIGH);
15 delay(potValue); // Pot değeri kadar ms bekle / Wait as many ms as the pot value
16 digitalWrite(ledPins[i], LOW);
17 }
18}Yürüyen Led'den tek farkı iki yeni bloktur. Genel değişkenlere "tanımla: tam sayı (int) potValue = 0" eklenmiştir ve sayma döngüsünün başında "potValue değişkenine analog oku A0 ata" bloğu vardır. analogRead(A0) potansiyometrenin orta bacağındaki gerilimi 0 ile 1023 arasında bir sayıya çevirir; bu sayı doğrudan "potValue ms bekle" bloğuna, yani delay(potValue) satırına verilir. Böylece potansiyometreyi bir uca çevirdiğinde her LED yaklaşık 1 saniye (1023 ms) yanar ve bir tur 6 saniyeyi bulur; öbür uca çevirdiğinde bekleme 0'a iner ve LED'ler o kadar hızlı yanıp söner ki hepsi aynı anda soluk yanıyor gibi görünür. Okumanın döngünün içinde, her LED'den önce yapılması bilinçli bir seçimdir: düğmeyi çevirdiğin anda bir sonraki LED yeni hızla yanar, turun bitmesini beklemezsin. Potansiyometrenin nasıl çalıştığını potansiyometre nedir yazısında ayrıntılı bulabilirsin.
Karaşimşek: ileri ve geri sayan iki döngü

Karaşimşek efektinde ışık bir uçtan öbür uca gidip geri döner. Karaşimşek Led projesinin bloklarında sürekli tekrarla içinde alt alta iki sayma döngüsü vardır. İlki tanıdık "i değişkeniyle say: 0 ile 5 arası, adım 1" bloğudur ve ışığı D2'den D7'ye götürür. İkincisi "i değişkeniyle say: 4 ile 1 arası, adım 1" bloğudur: başlangıç bitişten büyük olduğu için blok geriye doğru sayar ve i sırayla 4, 3, 2, 1 olur. Kodda bu for(int i = 4; i > 0; i--) satırıdır; i-- i'yi bir azaltır. Neden 5'ten 0'a değil de 4'ten 1'e? Çünkü ledPins[5] (D7) ileri turun sonunda, ledPins[0] (D2) ise bir sonraki ileri turun başında zaten yanıyor. Uçları geri dönüşte atlamak, uçtaki LED'lerin iki kez üst üste yanmasını engeller ve sekme akıcı görünür. Bir gidiş-dönüş 6 + 4 = 10 adım, her adım 100 ms, toplam 1 saniyedir. Hız Ayarlı Karaşimşek Led projesi aynı iki döngüyü kullanır; yalnız iki döngünün de başına "potValue değişkenine analog oku A0 ata" bloğunu ekler ve 100 ms yerine "potValue ms bekle" kullanır. Daha fazla desen fikri için Arduino karaşimşek ve yürüyen LED yazısına göz atabilirsin.
Kendi sayaç örneğin: tur sayacı ve seri port
Şimdi öğrendiklerini birleştiren küçük bir örnek yazalım: Yürüyen Led her turu bitirdiğinde bir sayaç artsın, kart da hem i'nin aldığı değerleri hem tur sayısını bilgisayara yazsın. Bunu görsellerdeki bloklarla şöyle kurarsın: genel değişkenlere, ledPins dizisinin altına "tanımla: tam sayı (int) rounds = 0" eklenir. Kuruluma "seri portu 9600 baud ile başlat" bloğu girer. Sayma döngüsünün içinde, LED'i yakmadan önce "seri porta yaz" bloklarıyla "i = " metni, i ve " pin = " metni "aynı satırda kal" seçeneğiyle, ardından "ledPins dizisinden öğe i" "alt satıra geç" seçeneğiyle yazdırılır. Sayma döngüsü bittikten sonra, hâlâ sürekli tekrarla içindeyken, "rounds değişkenine … ata" bloğuna rounds + 1 toplaması verilir ve tur sayısı "seri porta yaz … alt satıra geç" ile ekrana gelir.
1int ledPins[] = {2, 3, 4, 5, 6, 7}; // LED pinleri / LED pins
2int rounds = 0; // tamamlanan tur sayısı / number of finished rounds
3
4void setup() {
5 Serial.begin(9600); // seri port 9600 baud / serial port at 9600 baud
6 for (int i = 0; i < 6; i++) {
7 pinMode(ledPins[i], OUTPUT);
8 }
9}
10
11void loop() {
12 for (int i = 0; i < 6; i++) {
13 Serial.print("i = "); // aynı satırda kal / stay on the same line
14 Serial.print(i);
15 Serial.print(" pin = ");
16 Serial.println(ledPins[i]); // alt satıra geç / new line
17 digitalWrite(ledPins[i], HIGH);
18 delay(300);
19 digitalWrite(ledPins[i], LOW);
20 }
21 rounds = rounds + 1; // sayacı bir artır / add one to the counter
22 Serial.print("Tur / Round: ");
23 Serial.println(rounds);
24}Kodu yükledikten sonra Arduino IDE'de seri monitörü aç ve hızı 9600 baud yap. Her turda altı satır göreceksin: "i = 0 pin = 2"den "i = 5 pin = 7"ye kadar, ardından 1, 2, 3 diye artan bir "Tur / Round" satırı. Bu çıktı, sayma bloğundaki bitiş değerinin dahil olduğunun en net kanıtıdır: 0 ile 5 arası tam altı değer üretir. rounds değişkeninin genel değişkenlerde tanımlandığına da dikkat et; loop() her başladığında sıfırlanmaz, değerini turdan tura taşır. Bir tur 6 × 300 = 1,8 saniye sürdüğü için int'in sınırı olan 32767'ye yaklaşık 16 saatte ulaşılır; daha uzun sayacaksan değişkeni unsigned long yapabilirsin. Seri monitörün ayrıntıları Arduino seri monitör yazısında.
Devre: 6 LED, 220 Ω direnç ve potansiyometre
| Parça | Bağlantı (Arduino Uno) | Kodda |
|---|---|---|
| 1. LED | D2 → 220 Ω → LED anot (uzun bacak), katot → GND | ledPins[0] |
| 2. LED | D3 → 220 Ω → anot, katot → GND | ledPins[1] |
| 3. LED | D4 → 220 Ω → anot, katot → GND | ledPins[2] |
| 4. LED | D5 → 220 Ω → anot, katot → GND | ledPins[3] |
| 5. LED | D6 → 220 Ω → anot, katot → GND | ledPins[4] |
| 6. LED | D7 → 220 Ω → anot, katot → GND | ledPins[5] |
| Potansiyometre (10 kΩ) | Bir uç 5V, orta bacak A0, diğer uç GND | analogRead(A0), yalnız hız ayarlı projelerde |
220 Ω direnç, 5 V'tan beslenen kırmızı bir LED'den yaklaşık (5 − 2) / 220 ≈ 14 mA akım geçirir; bu hem LED hem Arduino pini için güvenli bir değerdir. Farklı renkte LED kullanıyorsan direnci LED direnci hesaplayıcı ile kontrol edebilirsin. Bütün katotları breadboard'un GND hattında topla ve bu hattı Arduino'nun GND pinine bağla. Potansiyometrenin uç bacaklarını ters bağlarsan bir şey bozulmaz, yalnız çevirme yönü tersine döner. Yürüyen Led ve Karaşimşek Led potansiyometreyi kullanmaz; bağlı kalması da sorun çıkarmaz, böylece dört projeyi aynı devrede sırayla deneyebilirsin.
Döngü ve değişkenlerde sık yapılan hatalar
| Hata | Belirti | Çözüm |
|---|---|---|
| Bir fazla saymak: "0 ile 6 arası" | Döngü 7 kez döner, son turda olmayan ledPins[6] okunur | Bitiş değeri dahildir: 6 LED için 0 ile 5 arası (kodda i < 6) |
| İndeksi 1'den başlatmak | D2'deki ilk LED hiç yanmaz, son turda dizinin dışına çıkılır | Dizi indeksi 0'dan başlar; sayma bloğunu 0'dan başlat |
| Dizinin dışına taşmak | İlgisiz bir pin tetiklenir ya da program tuhaf davranır; C++ dizinin sınırını kontrol etmez | İndeks her zaman 0 ile eleman sayısı − 1 arasında kalmalı |
| Sayacı loop() içinde tanımlamak | Sayaç her turda 0'a döner, ekranda hep 1 yazar | Sayacı "genel değişkenler (en başta)" bloğunda tanımla |
| Kurulumdaki döngüyü kısa tutmak (0 ile 4 arası) | Son LED çok soluk yanar ya da hiç yanmaz, çünkü pini çıkış yapılmamıştır | Kurulumdaki ve sürekli tekrarla içindeki sayma aralığı aynı olmalı |
| Atama ile karşılaştırmayı karıştırmak | if (potValue = 0) hep yanlış çıkar ve değeri sıfırlar | Atama =, karşılaştırma == |
BlueGrays uygulamasında döngü ve değişken bloklarını incelemek
Bu yazıdaki dört proje ve aşağıdakiler BlueGrays uygulamasında hem bloklarıyla hem koduyla tamamen ücretsiz. Bir projenin kod bölümünde Bloklarla göster anahtarını açınca kodun yerine aynı programın blokları gelir; görsele dokunursan tam ekran açılır ve uzun sayma döngülerini rahatça büyütüp inceleyebilirsin. Blokları anla sekmesi programı adım adım anlatır; her adımda yalnız o adımın bloklarını ve ne yaptığını gösterir. Bloklarıyla bakmaya değer başka ücretsiz projeler: delayTime değişkeni ve iki sayma döngüsüyle çalışan Polis Çakar, sürekli tekrarla içinde dört durumu sırayla geçen Trafik Lambası, okuduğu değeri bir değişkende tutup seri porta yazan Ldr İle Işık Şiddeti Okuma ve LED'in durumunu bir değişkende hatırlayan Buton İle Led Yakma (On Off). Kod rehberindeki her Arduino örneği de bloklarla gösteriliyor, Günün soruları ise her gün A1'den C2'ye seviyelerde 5 soruyla öğrendiklerini pekiştirmene yardım ediyor. Bütün bloklu projelerin listesi blok kodlama sayfasında. Bloklar karta doğrudan yüklenmez; karta her zaman projenin gerçek kodu yüklenir, yani bloklarla anladığın programı Arduino IDE'ye kopyalayıp kartına gönderirsin.
Döngüleri ve değişkenleri öğrendiğine göre sıradaki adım, bu sayıları gerçek dünyadan almak: serinin 5. bölümünde bloklarla sensör okumayı, seri portu ve Pico'da MicroPython'a geçişi anlatıyoruz. O zamana kadar BlueGrays uygulamasında Yürüyen Led, Karaşimşek ve hız ayarlı hâllerine devre şeması ve koduyla bakabilir, Bloklarla göster ile blok hâline, Blokları anla ile adım adım açıklamasına geçerek her sayma döngüsünün kodda hangi satıra karşılık geldiğini kendin takip edebilirsin.
Sıkça sorulan sorular
Blok kodlamada döngü nedir?
Döngü, içindeki blokları tekrar tekrar çalıştıran bloktur. BlueGrays'te iki türü öne çıkar: "sürekli tekrarla" programın ana döngüsüdür ve kart enerjili kaldıkça durmaz, "i değişkeniyle say" ise belli sayıda tekrar eder. Arduino kodunda bunların karşılığı loop() fonksiyonu ve for döngüsüdür.
Arduino for döngüsü nasıl yazılır?
for döngüsünün parantezinde noktalı virgülle ayrılmış üç bölüm bulunur: int i = 0 sayacı başlatır, "i 6'dan küçükken devam et" koşulu döngünün ne zamana kadar süreceğini belirler, i++ de her turdan sonra sayacı bir artırır. Bu döngü i'yi 0'dan 5'e kadar sayar ve süslü parantez içindeki kodu 6 kez çalıştırır. Bloklarda aynı işi "i değişkeniyle say: 0 ile 5 arası, adım 1" bloğu yapar.
"0 ile 5 arası" sayma bloğu kaç kez çalışır?
6 kez. BlueGrays'in sayma bloğunda bitiş değeri dahildir, yani i sırayla 0, 1, 2, 3, 4 ve 5 olur. Kodda bu, i 6'dan küçük olduğu sürece dönen bir for döngüsü olarak görünür ve 6 elemanlı bir dizinin bütün indekslerini tam olarak dolaşır.
Blok kodlamada değişken nasıl tanımlanır?
"genel değişkenler (en başta)" bloğunun içine "tanımla: tam sayı (int) … = …" bloğu konur, değişkene bir ad ve başlangıç değeri verilir. Bu, kodun en üstünde int potValue = 0; gibi bir global değişken satırı oluşturur. Değer sonradan "… değişkenine … ata" bloğuyla değiştirilir.
Arduino'da loop() durdurulabilir mi?
loop() kendiliğinden durmaz; son satırı bitince hemen baştan başlar. Kartı tamamen durdurmak için enerjisini kesmen ya da başka bir program yüklemen gerekir. Bir işin yalnız bir kez yapılmasını istiyorsan onu setup()'a, yani "kurulum (bir kez çalışır)" bloğuna koy ya da bir değişkenle daha önce yapılıp yapılmadığını kontrol et.
Arduino'da dizi indeksi neden 0'dan başlar?
C ve C++ dillerinde indeks, elemanın dizinin başından kaç adım uzakta olduğunu gösterir; ilk eleman en baştadır, bu yüzden indeksi 0'dır. 6 elemanlı ledPins dizisinin indeksleri bu nedenle 0 ile 5 arasındadır. ledPins[6] yazmak dizinin dışına çıkmak demektir ve C++ bunu senin için kontrol etmez.
Bu yazıdan sonra yapabileceğin projeler
Tüm projeleri gör
Yürüyen Led
Sıra sıra yanıp sönen, koşar gibi ilerleyen ışıklar. Arduino altı LED'i tek tek yakar; her biri kısa bir an parlayıp söner ve ışık baştan sona yürür, sonra yeniden başlar. Birden çok ışığı tek bir düz

Karaşimşek Led
Karaşimşek ışığı adıyla bilinen efekt: ışık altı LED'in üzerinde bir uçtan öbür uca kayar, sonra geri döner. Arduino her LED'i saniyenin onda biri kadar yakıp sıradakine geçer; uca varınca yön değişti

Hız Ayarlı Yürüyen Led
Altı LED sırayla yanıp söner ve ışık sanki bir uçtan öbür uca koşar. Potansiyometrenin düğmesini çevirdikçe bu koşunun hızı anında değişir: bir yöne çevirince ışık uçar, öbür yöne çevirince her LED bi

Hız Ayarlı Karaşimşek Led
Altı LED üzerinde bir ışık bir uçtan öbür uca koşar, döner ve yeniden koşar. Potansiyometrenin düğmesini çevirerek bu koşunun hızını anında ayarlarsın: düğme bir yandayken ışık neredeyse uçar, öbür ya

Polis Çakar
Polis arabasının çakarı gibi: kırmızı LED üç kez hızlıca yanıp söner, ardından mavi LED üç kez çakar ve bu sıra hiç durmadan sürer. Arduino'ya iki LED ve iki direnç bağlaman yeter. Birkaç dakikada kur

Trafik Lambası
Her gün yolda gördüğün trafik ışığının minik bir kopyası. Kırmızı iki saniye yanar, sarı kısa bir an parlar, yeşil iki saniye yanar, ardından yine sarı üzerinden kırmızıya dönülür ve döngü hiç durmaz.

Ldr İle Işık Şiddeti Okuma
Odanın ne kadar aydınlık olduğunu sayıyla görmek ister misin? Işığa duyarlı küçük bir parça olan LDR ortam ışığını ölçer ve Arduino bu değeri yarım saniyede bir bilgisayar ekranına yazar. Elinle üstün

Buton İle Led Yakma (On Off)
Bir butona bir kez basınca ışık yanar, bir daha basınca söner; tıpkı odandaki lamba düğmesi gibi. Arduino her basışı fark edip LED'in durumunu tersine çevirir, düğme içindeki minik titreşimler ışığı k
Diğer yazılar
BlueGrays uygulaması
Bu devreyi telefonunda adım adım kur
Devre şeması, kod ve parça listesi tek ekranda. 200'den fazla Arduino, ESP32 ve Pico projesi seni bekliyor.
Telefonunla tara
Kamerayı koda tut; telefonunun uygulama mağazası açılır.
ya da mağazada aç

