Mechabau® Kodlama BloğuTM (U1) Pin Tanımları

Kodlama BloğuTM U1
Kodlama BloğuTM modülü (U1) bir Arduino Nano devre kartı içerir. Bazı görevleri gerçekleştirmek üzere programlanabilen mini bir bilgisayardır.
Kodlama BloğuTM, USB kablosu kullanılarak bilgisayara bağlanır ve bir açma/kapama anahtarına sahip değildir. Kapatmak için USB kablosunu bilgisayarınızdan çıkarmalısınız.
U1 Kodlama BloğuTM bağlantıları:
(+) – güç
(-) – güç
A0, A4, A5 – Analog girişler
D2, D3, D7, D8, D9 – Dijital girişler/çıkışlar
Kodlama BloğuTM’unu diğer projeleriniz için de kullanabilirsiniz.
USB kablosu, Kodlama BloğuTM (U1) ile programlamak ve iletişim kurmak için kullanılır.
Kodlama BloğuTM modülünü diğer uygulamalarda kullanmak için notlar:
Güç kaynağı: Kodlama BloğuTM, yalnızca bir USB kablosu ve sette bulunan 9V pil tutucu kullanılarak çalıştırılmalıdır. Kodlama BloğuTM asla diğer Blok Devreler® setlerinde kullanılan veya harici güç kaynakları ile birlikte kullanılmamalıdır.
Analog girişler: Bunlar, voltajı 10 bit doğrulukla (1024 seviye) ölçebilir. Ayrıca ek dijital girişler/çıkışlar olarak işlev görecek şekilde yapılandırılabilirler.
Dijital girişler/çıkışlar: Bu girişler yapılandırıldığında, voltajların yüksek olması için güç kaynağı voltajının %80’inin üzerinde veya altında olması için güç kaynağı voltajının %20’sinin altında olması gerekir. Çıkışlar olarak yapılandırıldığında, her biri 20 mA’ya kadar akım sağlayabilir veya alabilir; bu bir LED’i yakmak için yeterlidir, ancak bir motoru veya hoparlörü kontrol ederken bir arabirim transistörüne ihtiyaç duyulabilir. Bunlar (D3 ve D9), Darbe Genişlik Modülasyonu (PWM) kullanılarak analog çıkışları simüle edecek şekilde yapılandırılabilir.
Proje 1 Devre Şeması (Mavi Işık)

Proje 1 Açıklama (Mavi Işık)
Blok Devreler®, farklı devreler oluşturmak için birbirine bağlanan elektronik bloklardan oluşur. Bu blokların üzerinde farklı renk ve numaralar bulunur, böylece onları kolayca tanıyabilirsiniz.
Resimdeki parçaları kullanarak gösterilen devreyi kurunuz. Aşağıdaki kodu Kodlama BloğunuzaTM kurduğunuzda mavi LED (L2) yanar.
Proje 1 Kod (Mavi Işık)
#define LED 9 // LED'in bağlı olduğu pin void setup() { pinMode(LED, OUTPUT); // LED'i çıkış olarak bildirir } void loop() { digitalWrite(LED, HIGH); // LED'i açın }
Proje 2 (Harici Güç Ekleme)

Proje 2 Açıklama (Harici Güç Ekleme)
Proje 1 devresini kurun. Programı yükledikten sonra Kodlama BloğuTM’nuzu çalıştırmak için usb kablosuna ihtiyacınız yoktur. USB kablosunu yeniden bağlayın ve anahtarı açın. Şimdi 9V pilinizi kullanın ve devrede gösterildiği gibi bağlayın. 9V pil tutucusuna bir 9V pil takın, bunu Kodlama BloğuTM modülü (U1) üzerindeki konektöre takın ve anahtar bloğundaki (S1) anahtarını açın. Alternatif olarak devreye 9V pil yerine USB kablosu kullanarak güç verebilirsiniz.
Anahtar başlığını (S1) kaydırın ve mavi LED (L2) yanar.
Proje 2 Kod (Harici Güç Ekleme)
#define LED 9 // LED'in bağlı olduğu pin void setup() { pinMode(LED, OUTPUT); // LED'i çıkış olarak bildirir } void loop() { digitalWrite(LED, HIGH); // LED'i açın }
Proje 3 Devre Şeması (Yanıp Sönen Işık)

Proje 3 Açıklama (Yanıp Sönen Işık)
Bu proje, Kodlama BloğuTM modülünü (U1) programlama prosedürünü açıklar. Mikrodenetleyici kullanılan herhangi bir devrede programlama kablosu takılarak yeniden programlanabilir. Yeni bir program indirme işlemi başlattığınızda, mikrodenetleyicide çalışmakta olan herhangi bir program kesintiye uğrar. Yeni bir program indirme işlemi tamamlandığında, yeni program çalışmaya başlayacaktır.
Mikrodenetleyiciye yeni programlar indirmek ve bazı programların bilgisayar ekranına veya bilgisayar ekranından karta bilgi aktarmasına izin vermek için USB kablosu gereklidir. USB ayrıca devrelerinize güç sağlar, bu nedenle bir USB cihazına bağlıyken 9V pil konektörü yok sayılır. Kodlama BloğuTM programlanmıştır, USB kablosunu çıkartabilir ve devreyi 9V pil konektörü kullanarak çalıştırabilirsiniz.
Proje 3 Kod (Yanıp Sönen Işık)
void setup() { pinMode(2, OUTPUT); // 2 numaralı dijital pini elektrik vermek için çıkış olarak tanımlıyoruz. } void loop() { digitalWrite(2, HIGH); // HIGH komutu ile pin 2'den elektrik çıkışı sağlıyoruz. delay(1000); // kodumuzu 1000 milisaniye (1 saniye) tutuyoruz. digitalWrite(2, LOW); // Pin 2'den LOW komutu ile elektrik çıkışını durduruyoruz. delay(1000); // kodumuzu 1000 milisaniye (1 saniye) tutuyoruz. }
Proje 4 Devre Şeması (Tüm Işıklar Açık)

Proje 4 Açıklama (Tüm Işıklar Açık)
Devreyi kurun, programı karta yükleyin, anahtarı (S1) açın. Beyaz ve mavi LED’ler (L1 ve L2) yanacaktır.
Proje 4 Kod (Tüm Işıklar Açık)
#define LED 9 // LED'in bağlı olduğu pin void setup() { pinMode(LED, OUTPUT); // LED'i çıkış olarak bildirin } void loop() { digitalWrite(LED, HIGH); // LED'i açın }
Proje 5 Devre Şeması (Geçiş ve Yanıp Sönen Işıklar)

Proje 5 Açıklama (Geçiş ve Yanıp Sönen Işıklar)
Bu devreyi kurun. Programlama talimatını kullanarak “Geçiş ve Yanıp Sönen Işıklar”ı Kodlama Bloğuna TM yükleyin. Arduino, devredeki iki LED’i (beyaz ve mavi) kontrol eder ve yanıp sönmesini sağlayarak sırayla açıp kapatır.
Bu devrede kullanılacak sabit bir değer atamak için int komutunu (int tamsayının kısaltmasıdır) kullanır. Kullanılması gerekli değildir. Gecikme değerini düzenleyerek ve ardından bunu Kodlama BloğuTM’a yeniden yükleyerek yanıp sönme hızını değiştirebilirsiniz. Arduino Nano kartındaki mikro denetleyici, LED’leri, anahtarları veya diğer cihazları kullanarak yapılması zor işleri kontrol etmenizi sağlar.
Proje 5 Kod (Geçiş ve Yanıp Sönen Işıklar)
void setup() { pinMode(2, OUTPUT); // 2 numaralı dijital pini elektrik vermek için çıkış olarak tanımlıyoruz. pinMode(3, OUTPUT); // 3 numaralı dijital pini elektrik vermek için çıkış olarak tanımlıyoruz. } void loop() { //beyaz LED 1. kez yanıp söner digitalWrite(2, HIGH); // HIGH komutu ile pin 2'den elektrik çıkışı sağlıyoruz. delay(50); // kodumuzu 50 milisaniye tutuyoruz. digitalWrite(2, LOW); // Pin 2'den LOW komutu ile elektrik çıkışını durduruyoruz. delay(50); // kodumuzu 50 milisaniye tutuyoruz. //kırmızı LED 2. kez yanıp söner digitalWrite(2, HIGH); delay(50); digitalWrite(2, LOW); delay(50); //mavi LED 1. kez yanıp söner digitalWrite(3, HIGH); delay(50); digitalWrite(3, LOW); delay(50); //mavi LED 2. kez yanıp söner digitalWrite(3, HIGH); delay(50); digitalWrite(3, LOW); delay(50); }
Proje 6 Devre Şeması (Yanıp Sönen Işıklar ve Buzzer)

Proje 6 Açıklama (Yanıp Sönen Işıklar ve Buzzer)
Proje 5’i kurun ve buzzer modülünü (BZ1) gösterildiği gibi devreye ekleyin. Programlama talimatını kullanarak “Yanıp Sönen Işıklar ve Buzzer”ı Kodlama BloğuTM’na yükleyin. Arduino, devredeki LED’leri (beyaz ve mavi) ve Buzzer’ı kontrol eder. Yanıp sönerek/bip sesi çıkararak bunları açıp kapatır.
Gecikme değerini düzenleyerek ve ardından bunu Kodlama BloğuTM’na yeniden yükleyerek yanıp sönme hızını değiştirebilirsiniz. Arduino Nano kartındaki mikro denetleyici, LED’leri, anahtarları veya diğer cihazları kullanarak yapılması zor işleri kontrol etmenizi sağlar.
Proje 6 Kod (Yanıp Sönen Işıklar ve Buzzer)
void setup() { pinMode(2, OUTPUT); // 2 numaralı dijital pini elektrik vermek için çıkış olarak tanımlıyoruz. pinMode(3, OUTPUT); // Elektrik vermek için çıkış olarak 3 numaralı dijital pini tanımlıyoruz. pinMode(7, OUTPUT); // 7 numaralı dijital pini elektrik verecek çıkış olarak tanımlıyoruz. } void loop() { //beyaz LED 1. kez yanıp söner digitalWrite(2, HIGH); // HIGH komutu ile pin 2'den elektrik çıkışı sağlıyoruz. delay(50); // kodumuzu 50 milisaniye tutuyoruz. digitalWrite(2, LOW); // Pin 2'den LOW komutu ile elektrik çıkışını durduruyoruz. delay(50); // kodumuzu 50 milisaniye tutuyoruz. //kırmızı LED 2. kez yanıp söner digitalWrite(2, HIGH); delay(50); digitalWrite(2, LOW); delay(50); //mavi LED 1. kez yanıp söner digitalWrite(3, HIGH); delay(50); digitalWrite(3, LOW); delay(50); //mavi LED 2. kez yanıp söner digitalWrite(3, HIGH); delay(50); digitalWrite(3, LOW); delay(50); //Buzzer 1 kez bip sesi çıkarır digitalWrite(7, HIGH); delay(50); digitalWrite(7, LOW); delay(50); //Buzzer 2 kez bip sesi çıkarır digitalWrite(7, HIGH); delay(50); digitalWrite(7, LOW); delay(50); }
Proje 7 Devre Şeması (Butonlu Aydınlatma Ledi)

Proje 7 Açıklama (Butonlu Aydınlatma Ledi)
Devreyi kurun. Programlama talimatını kullanarak “Butonlu Aydınlatma Ledi” kodlarını Kodlama BloğunaTM yükleyin. Anahtarı (S1) açın ve LED (L2) yanmalıdır. Şimdi anahtarı kapatın (S1) ve LED (L2) kapanır.
Bu projede PC’yi güç kaynağınız olarak kullanmaktasınız.
Arduino Nano kartına bir programın kurulu olup olmaması önemli değildir çünkü kartın sinyal pinleri kullanılmıyor.
Proje 7 Kod (Butonlu Aydınlatma Ledi)
Proje 8 Devre Şeması (LDR’den Veri Okuma)

Proje 8 Açıklama (LDR’den Veri Okuma)
Bu devreyi kurun. Seri Port ekranını açtığınızda ekrandan aşağı doğru akan sayılar göreceğiz. Fotodirenç (PR1) üzerine gelen ışık miktarını değiştirerek üzerinden geçen voltajın sayısal değeri de değişecektir. 330ohm direnç (R1), Fotodirençten (PR1) gelen aşırı elektrik voltajı kablo üzerinden boşaltılamadığından sürekli olarak yüksek bir değer verir. Fazla voltajı GND’ye (toprak) atarak daha doğru bir değer elde ederiz.
Bu projede PC’yi güç kaynağınız olarak kullanmaktayız.
Proje 8 Kod (LDR’den Veri Okuma)
void setup() { Serial.begin(9600); // Seri portu başlatıyoruz ve arduino ile bilgisayar arasındaki iletişim hızını (9600) belirliyoruz. } void loop() { // Analog pinlerden veri okumak için analogRead() komutunu kullanıyoruz. Serial.println(analogRead(0)); // Serial.println() komutu, parantez içinde yazdığımız verileri ( analogRead(0) ) Seri Port ekranına yazdırır. }
Proje 9 Devre Şeması (Yıldız Savaşları Tema Şarkısı)

Proje 9 Açıklama (Yıldız Savaşları Tema Şarkısı)
Bu projede arduino + buzzer ve bazı ledler (isteğe bağlı) kullanarak Star Wars tema şarkısının (emperyal marş) nasıl yapıldığını göreceğiz. Sinyalin frekansını değiştirerek bir müzik notası alabilirsiniz.
Bu projede PC’yi güç kaynağınız olarak kullanmaktayız.
Proje 9 Kod (Yıldız Savaşları Tema Şarkısı)
const int c = 261; const int d = 294; const int e = 329; const int f = 349; const int g = 391; const int gS = 415; const int a = 440; const int aS = 455; const int b = 466; const int cH = 523; const int cSH = 554; const int dH = 587; const int dSH = 622; const int eH = 659; const int fH = 698; const int fSH = 740; const int gH = 784; const int gSH = 830; const int aH = 880; const int buzzerPin = 8; // Dijital Pin 8 const int ledPin1 = 12; // Dijital Pin 12 const int ledPin2 = 13; // Dijital Pin 13 int counter = 0; void setup() { //Pin modlarını ayarla pinMode(buzzerPin, OUTPUT); // Dijital Pin 8 pinMode(ledPin1, OUTPUT); // Dijital Pin 12 pinMode(ledPin2, OUTPUT); // Dijital Pin 13 } void loop() { //Birinci bölümü oynat firstSection(); //İkinci bölümü oynat secondSection(); //Varyant 1 beep(f, 250); beep(gS, 500); beep(f, 350); beep(a, 125); beep(cH, 500); beep(a, 375); beep(cH, 125); beep(eH, 650); delay(500); //İkinci bölümü tekrarla secondSection(); //Varyant 2 beep(f, 250); beep(gS, 500); beep(f, 375); beep(cH, 125); beep(a, 500); beep(f, 375); beep(cH, 125); beep(a, 650); delay(650); } void beep(int note, int duration) { //buzzerPin'de ton çal tone(buzzerPin, note, duration); //'counter' değerine bağlı olarak farklı LED oynatın if(counter % 2 == 0) { digitalWrite(ledPin1, HIGH); delay(duration); digitalWrite(ledPin1, LOW); }else { digitalWrite(ledPin2, HIGH); delay(duration); digitalWrite(ledPin2, LOW); } //BuzzerPin'de sesi durdur noTone(buzzerPin); delay(50); //Sayacı artır counter++; } void firstSection() { beep(a, 500); beep(a, 500); beep(a, 500); beep(f, 350); beep(cH, 150); beep(a, 500); beep(f, 350); beep(cH, 150); beep(a, 650); delay(500); beep(eH, 500); beep(eH, 500); beep(eH, 500); beep(fH, 350); beep(cH, 150); beep(gS, 500); beep(f, 350); beep(cH, 150); beep(a, 650); delay(500); } void secondSection() { beep(aH, 500); beep(a, 300); beep(a, 150); beep(aH, 500); beep(gSH, 325); beep(gH, 175); beep(fSH, 125); beep(fH, 125); beep(fSH, 250); delay(325); beep(aS, 250); beep(dSH, 500); beep(dH, 325); beep(cSH, 175); beep(cH, 125); beep(b, 125); beep(cH, 250); delay(350); }
Proje 10 Devre Şeması (Gece Lambası)

Proje 10 Açıklama (Gece Lambası)
Bu devreyi kurun. Aşağıdaki programlama talimatlarını kullanarak Gece Lambasını Kodlama BloğunaTM yükleyin. Kırmızı LED’i (L1) açmak için fototransistörü (PR1) kapatın. Programlandıktan sonra devreye güç vermek için USB kablosu yerine 9V pil konektörünü kullanabilir, ardından devreyi karanlık bir odaya götürebilirsiniz. (Devreyi hareket ettirmeden önce düz bir plaka üzerine taşımayı unutmayın.)
Bu projede PC’yi güç kaynağınız olarak kullanmalısınız.
12 değerini daha yüksek veya daha düşük olarak değiştirerek hassasiyeti ayarlayabilirsiniz.
Proje 10 Kod (Gece Lambası)
int led = 3; int value; void setup(){ pinMode(led, OUTPUT); } void loop(){ value = analogRead(A0); if(value<12) // Değeri değiştirerek hassasiyeti ayarlayın digitalWrite(led, HIGH); else digitalWrite(led, LOW); }
Proje 11 Devre Şeması (Yanıp Sönme Oranı)

Proje 11 Açıklama (Yanıp Sönme Oranı)
Önceki devreyi kullanın, “Yanıp Sönen Işık” (Proje 3) kodlarını Kodlama BloğuTM’na yükleyin. Kırmızı LED (L1) karanlıkta yanıp sönecektir. Kodu aşağıda gösterildiği gibi verilen -değer- satırından sonra girin.
Proje 11 Kod (Yanıp Sönme Oranı)
int led = 3; int value; void setup(){ pinMode(led, OUTPUT); } void loop(){ value = analogRead(A0); if(value<12) // Değeri değiştirerek hassasiyeti ayarlayın digitalWrite(3, HIGH); // HIGH komutu ile pin 2'den elektrik çıkışı sağlıyoruz. delay(1000); // kodumuzu 1000 milisaniye (1 saniye) tutuyoruz. digitalWrite(3, LOW); // Pin 2'den LOW komutu ile elektrik çıkışını durduruyoruz. delay(1000); // kodumuzu 1000 milisaniye (1 saniye) tutuyoruz. }
Proje 12 Devre Şeması (Gece Sireni)

Proje 12 Açıklama (Gece Sireni)
Proje 10 devresini oluşturun. Şimdi LED yerine buzzer kullanın. Aşağıdaki programlama talimatlarını kullanarak “Gece Sireni” kodlarını Kodlama BloğunaTM yükleyin. Buzzer (BZ1)’i açmak için fototransistörü (PR1) kapatın. Programlandıktan sonra devreye güç vermek için USB kablosu yerine 9V pil konektörünü kullanabilir, ardından devreyi karanlık bir odaya götürebilirsiniz. (Devreyi hareket ettirmeden önce düz bir plaka üzerine yerleştirmeyi unutmayın.)
Bu projede PC’yi güç kaynağınız olarak kullanmalısınız.
12 değerini daha yüksek veya daha düşük olarak değiştirerek hassasiyeti ayarlayabilirsiniz.
Proje 12 Kod (Gece Sireni)
int buzzer = 3; int value; void setup(){ pinMode(buzzer, OUTPUT); } void loop(){ value = analogRead(A0); if(value<12) // Değeri değiştirerek hassasiyeti ayarlayın digitalWrite(buzzer, HIGH); else digitalWrite(buzzer, LOW); }
Proje 13 Devre Şeması (Karanlıkta Çalışan Siren)

Proje 13 Açıklama (Karanlıkta Çalışan Siren)
Önceki devreyi kullanın, ancak Yanıp Sönen Işık (Proje 3) kodlarını Kodlama BloğuTM’na yükleyin. Bu projede Buzzer (BZ1) karanlıkta çalışacaktır. Kodu aşağıda gösterildiği gibi verilen değer satırından sonra girin.
Proje 13 Kod (Karanlıkta Çalışan Siren)
int buzzer = 3; int value; void setup(){ pinMode(buzzer, OUTPUT); } void loop(){ value = analogRead(A0); if(value<12) // Değeri değiştirerek hassasiyeti ayarlayın digitalWrite(3, HIGH); // HIGH komutu ile pin 2'den elektrik çıkışı sağlıyoruz. delay(1000); // kodumuzu 1000 milisaniye (1 saniye) tutuyoruz. digitalWrite(3, LOW); // Pin 2'den LOW komutu ile elektrik çıkışını durduruyoruz. delay(1000); // kodumuzu 1000 milisaniye (1 saniye) tutuyoruz. }
Proje 14 Devre Şeması (Kodlama BloğuTM Testi)

Proje 14 Açıklama (Kodlama BloğuTM Testi)
Bu devrede, Kodlama BloğuTM modülündeki (U1) elektrik bağlantılarını test edeceğiz. Blok Devreler Kodlama Seti/Kodlama Kiti Kullanma Talimatı Sayfa A7 ve A8’deki Gelişmiş Sorun Giderme prosedürü tarafından referans alınır. Şimdilik kırmızı kablo terminalinin (T) boşta kalan ucunu herhangi bir yere bağlamadan devreyi gösterildiği gibi kurun. Aşağıdaki programlama kodunu kullanarak “Kodlama BloğuTM Testi” kodlarını Kodlama BloğuTM’na yükleyin.
Kırmızı kablo terminalinin (T) boştaki ucunu Kodlama BloğuTM modülündeki (U1) kullanılmayan pinlerin her birine sırayla dokundurun. (T) ucunun pinlere her temasında mavi LED (L2) yanıp sönmelidir.
USB kablosunu çıkarın, ardından 9V Pil (B3) ve Anahtar (S1) Bloğu’nu bağlayın ve anahtarı AÇIK konuma getirin; devre, USB kablosuyla aynı şekilde çalışmalıdır.
Proje 14 Kod (Kodlama BloğuTM Testi)
// Coding Block Test void setup(){ pinMode(A0, OUTPUT); // Tüm bağlantıları tanımlayın. pinMode(A4, OUTPUT); pinMode(A5, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); } void loop(){ digitalWrite(A0, HIGH); // Elektrik çıkışı YÜKSEK komutu veriyoruz. digitalWrite(A4, HIGH); digitalWrite(A5, HIGH); digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(7, HIGH); digitalWrite(8, HIGH); digitalWrite(9, HIGH); delay(250) ; digitalWrite(A0, LOW); // Elektrik çıkışı DÜŞÜK komutu veriyoruz. digitalWrite(A4, LOW); digitalWrite(A5, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); digitalWrite(9, LOW); delay(250) ; }
Proje 15 Devre Şeması (LED Parlaklığını Kademeli Olarak Değiştirme)

Proje 15 Açıklama (LED Parlaklığını Kademeli Olarak Değiştirme)
PWM özellikli pin, LED’in yanma şeklini kontrol eder. Şimdi, LED’in parlaklığını kademeli olarak değiştirmek için PWM değerini değiştirelim.
Aşağıda gösterildiği gibi bir program yazın.
Program, LED’i kademeli olarak daha parlak hale getirmek için PWM oranını loop() işlevinde kullanılan “i” değişkeninde saklar.
while işleme, i 255’e ulaşana kadar STEP tarafından belirtilen artışlarla değeri artırır. Artan değer, LED’in parlaklığını değiştirmek için analogWrite() içindeki değer tarafından verilir. Ayrıca her PWM çıkışı değiştirildiğinde WAITTIME ile belirtilen süre kadar beklemeye yönlendirilir.
PWM oranı 255’e ulaştığında, LED’i kademeli olarak karartmak için 0’a kadar düşürülür. WAITTIME veya STEP değerini değiştirerek yanıp sönme hızını değiştirebilirsiniz. Bu projede LED’in parlaklığını nasıl kontrol edeceğimizi öğrendik.
Proje 15 Kod (LED Parlaklığını Kademeli Olarak Değiştirme)
const int LED_PIN = 3; const int WAITTIME = 40; // Bekleme süresi. Değeri değiştirebilirsiniz. const int STEP = 10; // Adım. Değeri değiştirebilirsiniz. void setup(){ pinMode( LED_PIN, OUTPUT ); } void loop(){ int i; i = 0; while ( i <= 255 ){ analogWrite( LED_PIN, i ); delay( WAITTIME ); i = i + STEP; } i = 255; while ( i >= 0 ){ analogWrite( LED_PIN, i ); delay( WAITTIME ); i = i - STEP; } }
Proje 16 Devre Şeması (Ses Seviyesini Parabolik Değiştirme)

Proje 16 Açıklama (Ses Seviyesini Parabolik Değiştirme)
Proje 15’i oluşturun ve şimdi LED’i (L1) Buzzer (BZ1) ile değiştirin. Aynı işlevsellik bu proje için de geçerlidir.
Proje 16 Kod (Ses Seviyesini Parabolik Değiştirme)
const int Buzzer = 3; const int WAITTIME = 40; // Bekleme süresi. Değeri değiştirebilirsiniz. const int STEP = 10; // Adım. Değeri değiştirebilirsiniz. void setup(){ pinMode( Buzzer, OUTPUT ); } void loop(){ int i; i = 0; while ( i <= 255 ){ analogWrite( Buzzer, i ); delay( WAITTIME ); i = i + STEP; } i = 255; while ( i >= 0 ){ analogWrite( Buzzer, i ); delay( WAITTIME ); i = i - STEP; } }
Proje 17 Devre Şeması (Işık ve Ses Şiddetini Parabolik Değiştirme)

Proje 17 Açıklama (Işık ve Ses Şiddetini Parabolik Değiştirme)
Önceki devreyi kullanın, LED’i (L1) ve Buzzer’ı (BZ1) D3 pinine bağlayın. USB kablosunu gösterildiği gibi Kodlama BloğuTM’na ve PC’ye bağlayın. Programı Kodlama BloğunaTM yükleyin ve ne olduğunu görün. Her blok birlikte çalışır.
Proje 17 Kod (Işık ve Ses Şiddetini Parabolik Değiştirme)
const int Pin = 3; const int WAITTIME = 40; // Bekleme süresi. Değeri değiştirebilirsiniz. const int STEP = 10; // Adım. Değeri değiştirebilirsiniz. void setup(){ pinMode( Pin, OUTPUT ); } void loop(){ int i; i = 0; while ( i <= 255 ){ analogWrite( Pin, i ); delay( WAITTIME ); i = i + STEP; } i = 255; while ( i >= 0 ){ analogWrite( Pin, i ); delay( WAITTIME ); i = i - STEP; } }
Proje 18 Devre Şeması (Anahtar Durumlarını Okuma)

Proje 18 Açıklama (Anahtar Durumlarını Okuma)
Bu projede switch kullanmayı ve gerçekte nasıl çalıştığını öğrenebilirsiniz. Dijital çıkış pinini YÜKSEK (5V) ve DÜŞÜK (0V) olmak üzere iki durum arasında değiştirerek LED’i, motoru, buzzer’ı vb. kontrol etmenizi sağlar. Dijital çıkışları, elektronik bileşenleri kontrol etmek için de kullanabilirsiniz. Dijital çıkış pini, dijital girişe dönüştürülebilir. Bunu yaparak dijital girişli pine uygulanan voltajı “DÜŞÜK” ve “YÜKSEK” olmak üzere iki şekilde kontrol edebilirsiniz. Bu giriş değerleri diğer elektronik bileşenleri kontrol etmek için kullanılabilir. Örneğin, dijital giriş YÜKSEK olduğunda LED’i veya sesli uyarıyı çalıştırmak veya giriş DÜŞÜK olduğunda durdurmak isteyebilirsiniz.
Durum verisini kontrol etmek istediğinizde “serial monitörü” kullanın. USB kablosunu kullanarak verileri Arduino’dan PC’ye gönderebilirsiniz. Veri alışverişi için seri iletişim kullanılır.
Bu projede kullanılan pin 7’yi giriş moduna çevirmek için pinMode()’da “INPUT” belirtin. Artık pin durumunu programdan kontrol edebilirsiniz.
digitalRead() içinde belirtilen pin durumu alınır ve değer değişkeninde saklanır. 0V ise “0”, 5V ise “1” kaydedilir.
Proje 18 Kod (Anahtar Durumlarını Okuma)
const int DIN_PIN = 7; void setup(){ pinMode( DIN_PIN, INPUT ); Serial.begin( 9600 ); } void loop(){ int value; value = digitalRead( DIN_PIN ); Serial.println( value ); delay( 1000 ); }
Proje 19 Devre Şeması (Voltaj Okuma)

Proje 19 Açıklama (Voltaj Okuma)
Arduino üzerinde bulunan pinleri dijitalden analoğa çevirerek voltaj okumak mümkündür. Kodu Kodlama BloğuTM’na yükledikten sonra seri port ekranını açın. Arduino mikrodenetleyici 5V voltaj ile çalışmaktadır. Bu mikrodenetleyici 10-bit ADC, 210 = 1024 doğruluk adımlarıyla 0V ile 5V arasındaki voltajları okuyabilir.
Kırmızı kablonun serbest ucunu “T” kullanın, Önce seri porttan voltaj değerini okuyun. Ardından, “T” ucunu “A” noktasına dokundurun ve değerleri tekrar okuyun. Son olarak, “T” ucuna “B” noktasına dokundurun ve voltaj farklılıklarını gözlemleyin.
Proje 19 Kod (Voltaj Okuma)
#define potpin A0 int value = 0; void setup() { Serial.begin(9600); Serial.println("Değeri Oku"); } void loop() { value = analogRead(potpin); float Voltage = (5.00/1024.00)*value; // Serial.println(Voltage); //Hesaplanan voltaj seri monitöre mesaj olarak gönderilir. delay(1000); }
Proje 20 Devre Şeması (Flip Flop Işıklar)

Proje 20 Açıklama (Flip Flop Işıklar)
Flip Flop Işıklar; İki LED’in sırayla yanıp sönmesini sağlayan bir uygulamadır. LED’lerden biri yanarken diğeri söner ve LED’lerin açma-kapama sürelerini dilediğiniz gibi ayarlayabilirsiniz.
Bu devreyi kurun. Aşağıdaki programlama talimatlarını kullanarak Flip Flop Işıkları Kodlama BloğunaTM yükleyin.
Kodlama BloğuTM pin 2 ve pin 3’e bağlı LED’leri 1 saniye aralıklarla sırayla yanıp sönen ve bir döngüde devam eden programdır.
Lütfen Dikkat: BC-135 (SKU: 86600) Mechabau® Blok Devreler® Setiniz varsa, Sürgülü anahtar (S1) yerine Pres Anahtarını (S2) kullanabilirsiniz.
Proje 20 Kod (Flip Flop Işıklar)
void setup() { pinMode(2, OUTPUT); // D2 pinini çıkış olarak ayarlayın. pinMode(3, OUTPUT); // D3 pinini çıkış olarak ayarlayın. } void loop() { digitalWrite(2, HIGH); // Burada pin D2'yi lojik 1 yapın. digitalWrite(3, LOW); // Burada pin D3'ü lojik 0 yapın. delay(1000); // 1 saniye bekletin. digitalWrite(2, LOW); // Burada pin D2'yi lojik 0 yapın. digitalWrite(3, HIGH); // Burada pin D3'ü lojik 1 yapın. delay(1000); // 1 saniye bekletin. }
Proje 21 Devre Şeması (Flip Flop Işık ve Ses)

Proje 21 Açıklama (Flip Flop Işık ve Ses)
Önceki devreyi kullanın ve LED’i (L1) buzzer (BZ1) ile değiştirin ve programı tekrar çalıştırın. LED (L2) açıkken Buzzer (BZ1) kapalıdır. LED (L2) kapalıyken Buzzer (BZ1) açıktır. Ayrıca LED’in ve buzzer’ın açma-kapama sürelerini de dilediğiniz gibi ayarlayabilirsiniz.
Dilerseniz pil bloğunu (B3) ve anahtar bloğunu (S1) kullanarak bilgisayardan bağımsız olarak çalıştırabilirsiniz.
Lütfen Dikkat: BC-135 (SKU: 86600) Mechabau® Blok Devreler® Setiniz varsa, sürgülü anahtar (S1) yerine Pres Anahtarını (S2) kullanabilirsiniz.
Proje 21 Kod (Flip Flop Işık ve Ses)
void setup() { pinMode(2, OUTPUT); // D2 pinini çıkış olarak ayarlayın. pinMode(3, OUTPUT); // D3 pinini çıkış olarak ayarlayın. } void loop() { digitalWrite(2, HIGH); // Burada pin D2'yi lojik 1 yapın. digitalWrite(3, LOW); // Burada pin D3'ü lojik 0 yapın. delay(1000); // 1 saniye (1000 mili saniye) bekletin. digitalWrite(2, LOW); // Burada pin D2'yi lojik 0 yapın. digitalWrite(3, HIGH); // Burada pin D3'ü lojik 1 yapın. delay(1000); // 1 saniye (1000 mili saniye) bekletin. }
Proje 22 Devre Şeması (Işık Parlaklığını Artımlı Değiştirme)

Proje 22 Açıklama (Işık Parlaklığını Artımlı Değiştirme)
Devreyi kurun ve kodları yükleyin. Programlama talimatlarını kullanarak “Işık Parlaklığını Artımlı Değiştirme” ayarlarını Kodlama BloğundaTM değiştirin. Anahtar (S1) KAPALI olduğunda, LED (L1) maksimum parlaklıkta yanacaktır. Düğmeyi AÇIK konuma getirin, ışığın parlaklığı 4 adımda artar. Anahtarı (S1) kapatana kadar döngü tekrar etmeye devam eder.
LED parlaklığı, 0 ile 255 arasındaki değerleri kullanan digitalWrite() komutu kullanılarak ayarlanır, ancak artımlı artışlar, düşük sayılar arasında yüksek sayılar arasında olduğundan çok daha belirgin olacaktır. Bu nedenle, bu devre, LED parlaklığını 2’nin katlarına ayarlamak için bir dizi kullanır ve ardından minimuma sıfırlanır. Artımlı artışlar, son değere göre 85 puan artırıldığında çok daha belirgin olacaktır.
Lütfen Dikkat: BC-135 (SKU: 86600) Mechabau® Blok Devreler® Setiniz varsa, sürgülü anahtar (S1) yerine Pres Anahtarını (S2) kullanabilirsiniz.
Proje 22 Kod (Işık Parlaklığını Artımlı Değiştirme)
#define led 3 //pin D3'ü LED'e atayın #define Switch 7 //pin D7'yi Switch'e atayın #define SAMPLING 250 //baskı başına 250 milli saniye, geri dönüş için kullanılır static unsigned long TIMER = 0; //geçerli süreyi kaydet() byte state = 0; // Switch'in mevcut durumunu programda daha sonra kontrol etmek için kullanılan değer byte brightness[] = {0, 75, 150, 255}; // artımları yorumlayınız void setup() { pinMode(led,OUTPUT); pinMode(Switch,INPUT); digitalWrite(Switch, HIGH); //dahili direnci kullanın, harici dirence gerek yok. } void loop() { if(millis() - TIMER >= SAMPLING) //örnek ~= 250mS { TIMER = millis(); if(!digitalRead(Switch)) { state++; //artış durumu if(state > 3) //sadece 4 parlaklık seçeneği istiyorum, 0, 1, 2, 3 state = 0; analogWrite(led, brightness[state]); //değiştirmek istemiyorsanız, analogWrite(led, state*85) kullanın; //bayt dizisi yok; //0*85 = 0 //1*85 = 85 //2*85 = 170 //3*85 = 255 } } }
Proje 23 Devre Şeması (Aç/Kapat ile LED Geçişlerini Değiştir)

Proje 23 Açıklama (Aç/Kapat ile LED Geçişlerini Değiştir)
Bu projede, anahtarın her açılıp kapanmasında LED’in nasıl değiştirileceğini öğreneceğiz. Anahtarı (S1) birkaç kez açıp kapatmaya devam edin ve nasıl çalıştığını görün. LED’in durumundaki değişimi not edin.
Seri monitörü açın ve anahtarı (S1) her açtığınızda çıkan mesajları görün.
Lütfen Dikkat: BC-135 (SKU: 86600) Mechabau® Blok Devreler® Setiniz varsa, sürgülü anahtar (S1) yerine Pres Anahtarını (S2) kullanabilirsiniz.
Proje 23 Kod (Aç/Kapat ile LED Geçişlerini Değiştir)
const int Switch_PIN = 7; // D7 switch pinine bağlı const int LED_PIN = 3; // D3 LED pinine bağlı // düzenlenebilir değişkenler: int ledState = LOW; // ED'in mevcut durumu int lastSwitchState; // Switch'in önceki durumu int currentSwitchState; // Switch'in mevcut durumu void setup() { Serial.begin(9600); // seriali başlat pinMode(Switch_PIN, INPUT_PULLUP); // arduino pinini giriş çekme moduna ayarla pinMode(LED_PIN, OUTPUT); // arduino pinini çıkış moduna ayarla currentSwitchState = digitalRead(Switch_PIN); } void loop() { lastSwitchState = currentSwitchState; // son durumu kaydet currentSwitchState = digitalRead(Switch_PIN); // yeni durumu oku if(lastSwitchState == HIGH && currentSwitchState == LOW) { Serial.println("Anahtar açık"); // LED durumunu değiştir ledState = !ledState; // LED'i geçiş durumuna göre kontrol et digitalWrite(LED_PIN, ledState); } }
Proje 24 Devre Şeması (Aç/Kapat ile Buzzer Geçişlerini Değiştir)

Proje 24 Açıklama (Aç/Kapat ile Buzzer Geçişlerini Değiştir)
Bu proje önceki proje ile aynıdır, sadece LED’i (L1) Buzzer (BZ1) ile değiştirin. Diğer çalışma şekilleri aynıdır.
Seri monitörü açın ve anahtarı (S1) her açtığınızda çıkan mesajları görün.
Lütfen Dikkat: BC-135 (SKU: 86600) Mechabau® Blok Devreler® Setiniz varsa, sürgülü anahtar (S1) yerine Pres Anahtarını (S2) kullanabilirsiniz.
Proje 24 Kod (Aç/Kapat ile Buzzer Geçişlerini Değiştir)
const int Switch_PIN = 7; // D7 switch pinine bağlı const int Buzzer_PIN = 3; // D3 Buzzer pinine bağlı // düzenlenebilir değişkenler: int BuzzerState = LOW; // Buzzer'ın mevcut durumu int lastSwitchState; // Switch'in önceki durumu int currentSwitchState; // Switch'in mevcut durumu void setup() { Serial.begin(9600); // seriali başlat pinMode(Switch_PIN, INPUT_PULLUP); // arduino pinini giriş çekme moduna ayarla pinMode(Buzzer_PIN, OUTPUT); // arduino pinini çıkış moduna ayarla currentSwitchState = digitalRead(Switch_PIN); } void loop() { lastSwitchState = currentSwitchState; // son durumu kaydet currentSwitchState = digitalRead(Switch_PIN); // yeni durumu oku if(lastSwitchState == HIGH && currentSwitchState == LOW) { Serial.println("Anahtar açık"); // Buzzer durumunu değiştir BuzzerState = !BuzzerState; // Buzzer'ı geçiş durumuna göre kontrol et digitalWrite(Buzzer_PIN, BuzzerState); } }
Proje 25 Devre Şeması (Kısa Basma Nasıl Tespit Edilir)

Proje 25 Açıklama (Kısa Basma Nasıl Tespit Edilir)
Anahtara basma ve bırakma arasındaki süreyi ölçüyoruz. Süre tanımlanan süreden daha kısa ise kısa basma olayı algılanır. SHORT_PRESS_TIME = 500 değerini istediğiniz gibi değiştirebilirsiniz. Süre ayarladığınız kadar uzun olduğunda seri monitörde herhangi bir tepki görmezsiniz.
Lütfen Dikkat: BC-135 (SKU: 86600) Mechabau® Blok Devreler® Setiniz varsa, sürgülü anahtar (S1) yerine Pres Anahtarını (S2) kullanabilirsiniz.
Proje 25 Kod (Kısa Basma Nasıl Tespit Edilir)
const int Switch_PIN = 7; // Switch pin numarası const int SHORT_PRESS_TIME = 500; // 500 milisaniye // Düzenlenebilir değişkenler: int lastState = LOW; // giriş pininden önceki durum int currentState; // giriş pininin mevcut değerini okuma unsigned long pressedTime = 0; unsigned long releasedTime = 0; void setup() { Serial.begin(9600); pinMode(Switch_PIN, INPUT_PULLUP); } void loop() { // Anahtarın durumunu okuma: currentState = digitalRead(Switch_PIN); if(lastState == HIGH && currentState == LOW) // Anahtar açık pressedTime = millis(); else if(lastState == LOW && currentState == HIGH) { // Anahtar kapalı releasedTime = millis(); long pressDuration = releasedTime - pressedTime; if( pressDuration < SHORT_PRESS_TIME ) Serial.println("Kısa basma algılandı"); } // son durumu kaydet lastState = currentState; }
Proje 26 Devre Şeması (Uzun Basma Nasıl Tespit Edilir)

Proje 26 Açıklama (Uzun Basma Nasıl Tespit Edilir)
Basma ve bırakma arasındaki süreyi ölçüyoruz. Süre tanımlanan süreden uzunsa uzun basma olayı algılanır. LONG_PRESS_TIME = 1000 değerini istediğiniz gibi değiştirebilirsiniz. Süre ayarladığınız kadar kısaldığında seri monitörde herhangi bir tepki görmezsiniz.
Lütfen Dikkat: BC-135 (SKU: 86600) Mechabau® Blok Devreler® Setiniz varsa, sürgülü anahtar (S1) yerine Pres Anahtarını (S2) kullanabilirsiniz.
Proje 26 Kod (Uzun Basma Nasıl Tespit Edilir)
const int Switch_PIN = 7; // Switch pin numarası const int LONG_PRESS_TIME = 1000; // 1000 milisaniye // Düzenlenebilir değişkenler: int lastState = LOW; // giriş pininden önceki durum int currentState; // giriş pininin mevcut durumu unsigned long pressedTime = 0; unsigned long releasedTime = 0; void setup() { Serial.begin(9600); pinMode(Switch_PIN, INPUT_PULLUP); } void loop() { // Anahtarın durumunu okuma: currentState = digitalRead(Switch_PIN); if(lastState == HIGH && currentState == LOW) // Anahtar açık pressedTime = millis(); else if(lastState == LOW && currentState == HIGH) { // Anahtar kapalı releasedTime = millis(); long pressDuration = releasedTime - pressedTime; if( pressDuration > LONG_PRESS_TIME ) Serial.println("Uzun basma algılandı"); } // son durumu kaydet lastState = currentState; }
Proje 27 Devre Şeması (Uzun ve Kısa Basma Nasıl Tespit Edilir)

Proje 27 Açıklama (Uzun ve Kısa Basma Nasıl Tespit Edilir)
Proje 25 ve 26’ya referanslıdır.
Neden “uzun basma” ve “kısa basma” tespiti gerekir? Basma sayısını kaydetmek için. Tek bir buton iki veya daha fazla işlevi yapabilir. Örneğin, çalışma modunu değiştirmek için kısa basma, cihazı kapatmak için uzun basma örnek olabilir. Yanlışlıkla kısa basma ile çalışacak cihazı engellemek için uzun basma kullanımı. Örneğin, bazı cihazları fabrika ayarlarına sıfırlama için buton kullanır. Butona yanlışlıkla basılması tehlikeli olabilir. Bunu önlemek için, cihaz yalnızca düğmeye uzun basıldığında (örn. 5 saniyeden fazla) fabrika ayarlarına sıfırlanacak şekilde ayarlanır.
Sonucu Seri Monitörde görün!
Lütfen Dikkat: BC-135 (SKU: 86600) Mechabau® Blok Devreler® Setiniz varsa, sürgülü anahtar (S1) yerine Pres Anahtarını (S2) kullanabilirsiniz.
Proje 27 Kod (Uzun ve Kısa Basma Nasıl Tespit Edilir)
const int Switch_PIN = 7; // Switch pin numarası D7 const int SHORT_PRESS_TIME = 1000; // 1000 milisaniye kısa basma const int LONG_PRESS_TIME = 1000; // 1000 milisaniye uzun basma // Düzenlenebilir değişkenler: int lastState = LOW; // giriş pininden önceki durum int currentState; // giriş pininin mevcut durumu unsigned long pressedTime = 0; unsigned long releasedTime = 0; void setup() { Serial.begin(9600); pinMode(Switch_PIN, INPUT_PULLUP); } void loop() { // Anahtarın durumunu okuma: currentState = digitalRead(Switch_PIN); if(lastState == HIGH && currentState == LOW) // Anahtar açık pressedTime = millis(); else if(lastState == LOW && currentState == HIGH) { // Anahtar kapalı releasedTime = millis(); long pressDuration = releasedTime - pressedTime; if( pressDuration < SHORT_PRESS_TIME ) Serial.println("Kısa basma algılandı"); if( pressDuration > LONG_PRESS_TIME ) Serial.println("Uzun basma algılandı"); } // son durumu kaydet lastState = currentState; }
Proje 28 Devre Şeması (Arduino IDE Sekmelerini Kullanma)

Proje 28 Açıklama (Arduino IDE Sekmelerini Kullanma)
Bu projede (S1) anahtarı açık ise ses çıkar. Aşağıdaki programı Kodlama BloğunaTM yükleyin. Devreyi kapatsanız bile melodi sonuna kadar çalacaktır.
Arduino IDE sekmelerini kullanarak, kodu Arduino Kodu Melodi Sekmesi adlı ilk bloktan kopyalayın.
pitches.h adlı programı kullanmak için ek bir kitaplığa/kütüphaneye ihtiyacınız var.
Ardından yeni bir sekme açın ve sekmeye şu adı verin: pitches.h ve ardından tamam düğmesine tıklayın.
Sekme şuna benziyor.
Arduino IDE sekmelerini kullanmak için, pitches.h Kütüphane Sekmesi adlı ikinci bloktan kodu kopyalayın ve kodu Kodlama BloğuTM’na yükleyin. Melodiyi dinlemek için anahtarı (S1) açın.
Lütfen Dikkat: BC-135 (SKU: 86600) Mechabau® Blok Devreler® Setiniz varsa, sürgülü anahtar (S1) yerine Pres Anahtarını (S2) kullanabilirsiniz.
Proje 28 Kod (Arduino IDE Sekmelerini Kullanma)/Arduino Kodu Melodi Sekmesi
#include "pitches.h" const int Switch_PIN = 7; // Switch'in pinine bağlı Arduino pini const int BUZZER_PIN = 3; // Buzzer pinine bağlı Arduino pini // melodideki notalar: int melody[] = { NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_G5, NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_D5, NOTE_D5, NOTE_E5, NOTE_D5, NOTE_G5 }; // nota süreleri: 4 = dörtlük nota, 8 = sekizlik nota, vb, tempo olarak da adlandırılır: int noteDurations[] = { 8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 16, 16, 8, 8, 8, 8, 4, 4 }; void setup() { Serial.begin(9600); // seriali başlat pinMode(Switch_PIN, INPUT_PULLUP); // arduino pinini giriş moduna ayarla } void loop() { int SwitchState = digitalRead(Switch_PIN); // yeni durumu oku if (SwitchState == LOW) { // Anahtar açıldı Serial.println("Anahtar açılıyor.."); buzzer(); } } void buzzer() { // melodinin notalarını yinele: int size = sizeof(noteDurations) / sizeof(int); for (int thisNote = 0; thisNote < size; thisNote++) { // nota süresini hesaplamak için nota süresini bir saniye bölün. //Örneğin. dörtlük nota = 1000/4, sekizlik nota = 1000/8 vb. int noteDuration = 1000 / noteDurations[thisNote]; tone(BUZZER_PIN, melody[thisNote], noteDuration); // notları ayırt etmek için nota aralarında bir boşluk süresi ayarlayın. // nota süresinin +%30'u kadar bir boşluk iyi çalışır: int pauseBetweenNotes = noteDuration * 1.30; // Buradaki 1.30 değerini değiştirebilirsiniz. delay(pauseBetweenNotes); // çalmayı durdur: noTone(BUZZER_PIN); } }
Proje 28 Kod (Arduino IDE Sekmelerini Kullanma)/pitches.h Kütüphane Sekmesi
// pitches.h Kütüphane Sekmesi #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 #define NOTE_B6 1976 #define NOTE_C7 2093 #define NOTE_CS7 2217 #define NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_E7 2637 #define NOTE_F7 2794 #define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978
Proje 29 Devre Şeması (Işık Şiddetine Göre Ses Frekansını Değiştirin)

Proje 29 Açıklama (Işık Şiddetine Göre Ses Frekansını Değiştirin)
Bu projede, LDR ve Buzzer ile deney yapmayı öğreneceğiz. Bu deneyin çıktısı, LDR/fotodirenç (PR1) üzerine düşen ışığa bağlı olarak üretilen farklı frekanslarda sestir. Şimdi devreyi oluşturun ve aşağıdaki kodu Kodlama BloğunaTM yükleyin. Anahtarı (S1) AÇIK konuma getirin ve elinizi LDR/fotorezistörün (PR1) üzerinde gezdirin. Ses frekansındaki değişime dikkat edin.
Proje 29 Kod (Işık Şiddetine Göre Ses Frekansını Değiştirin)
int Buzzer = 9; // Buzzer'ı dijital pin D9'a bağla int photoresistor = 0; // Fotodirenci analog pin 0'a bağla int Note; // Nota değerinin kaydedildiği değişken void setup () { pinMode (Buzzer, OUTPUT); // Buzzer'ın bağlı olduğu pini çıkış olarak ayarla } void loop () { Note = 3 * (analogRead (photoresistor)) + 400; // Notanın hesaplanması tone (Buzzer, Note); // Notayı pin D9'a yaz delay (10); // Notayı değiştirmeden önce 10 ms bekleyin. Bu değeri değiştirebilirsiniz }
Proje 30 Devre Şeması (Işığa Bağlı Olarak Bip Frekansını Değiştirin)

Proje 30 Açıklama (Işığa Bağlı Olarak Bip Frekansını Değiştirin)
Bu deneyde önceki projede olduğu gibi ışığa bağlı direnç (R1) olan bir sensör ile çalışacağız. Ancak bu dersimizde anahtarı (S1) AÇIK konuma getirerek buzzerın (BZ1) bipleme frekansını değiştireceğiz. Karanlık bir ortamda, fotorezistörün (PR1) direnci çok yüksek olacaktır. Işık, fotorezistör (PR1) üzerine düştüğünde direnç azalacaktır. Daha fazla ışıkta daha düşük bir dirence sahip olacaktır. Sensörden farklı değerler okuyarak aydınlık mı karanlık mı yoksa aralarında bir değer mi olduğunu tespit edebiliriz.
Anahtarı (S1) AÇIN ve telefon ışığınızı vb. LDR/fotodirenç (PR1) üzerine getirin. Bip frekansındaki değişikliğe dikkat edin.
Proje 30 Kod (Işığa Bağlı Olarak Bip Frekansını Değiştirin)
int piezoPin = 9; // Buzzer'ı Pin D9'a bağla int ldrPin = A0; // LDR'yi Analog Pin A0'a bağla int ldrValue = A0; // LDR'den farklı değerler okuma void setup() { } void loop() { // Aşağıdaki döngü fonksiyonlarını başlatma ldrValue = analogRead(ldrPin); // LDR'den değer oku tone(piezoPin,750); // Buzzerdan 750Hz'lik bir ton çal (bip) delay(10); // biraz bekleyin, hızlı yanıt için gecikmeyi değiştirin. noTone(piezoPin); // tonu 10 ms sonra durdur delay(ldrValue); // ldrValue değeri kadar (milisaniye) bekle } // Döngü fonksiyonlarının sonu
Yukarıdaki Mechabau® Blok Devreler® / Kodlama Projeleri kapsamında sorularınız ya da proje önerileriniz için lütfen bizimle iletişime geçin.