- Üzerine Arduino Nano monteli dMoto kartı
- Mini USB kablo
- Kod C++ programlama dilinde yazıldı. C++ elektronikte yaygın olarak kullanılır.
- #define: Yanındaki isim ve rakam çiftini rakamı isimle çağırabilmek için kullanmamızı sağlar. Örneğin #define NOTE_C4 262 ile kodda NOTE_C4 yazarak 262 yazmakla aynı sonucu elde ederiz. Rakam yerine isimleri daha kolay aklımızda tutabildiğimiz için yararlıdır. Kodda 262 gördüğümüzde bunun C4 notası olduğunu bilemeyebilir, şarkıyı koda bakarak anlayamayız.
- Fonksiyonlar (setup(), play(), loop())
- Blockly Games, Müzik, İşlevler'de yaptığımız şey fonksiyon tanımlamaktı.
- setup(): Karta güç verildiğinde bir kez çalışır. Bir kez yapılması yeterli ayarlamalar için kullanılır.
- pinMode()
- buzzerPin, LED_BUILTIN (13): Arduino Nano'nun hangi numaralı bacaklarına buzzer (basit hoparlör) ve LED bağlı olduğunu gösterir
- OUTPUT: Nano'nun bu bacaklara elektrik vereceğini ifade eder.
- loop(): Sürekli çalışır, kartın elektriğini kesene kadar tekrar tekrar (saniyede 117bin kezi bulabilir) çağrılır.
- digitalWrite(): Nano'nun hangi bacağında ne işlem yapılacağını belirler
- play(): Buzzer'dan ses çıkar
- freq_Hz, duration_ms. Frekans örneği: Elin bir aşağı yukarı hareket süresi = period, frekans = 1/period. Elimin aşağı yukarı hareket süresi 2 saniye ise frekans 0.5Hz olur.
- Ses dalgaları havanın titreşmesi ile olur, insan 20Hz ile 20kHz arasını duyabilir. 1kHz = 1000Hz, 1kg = 1g gibi.
- tone(): frekans, Hz, süre, 1000 milisaniye [ms] = 1 saniye. Arduino Nano 16MHz'te çalışıyor, saniyede 16 milyon işlem yapabilir.
- delay(): Girilen ms kadar bekler.
Kodda değişiklik yaparak sonuçlarını gözle:
- loop() içerisindeki kodu kes ve setup() içerisine yapıştır, kodu karta yükle, öncekine göre ne farkı var?
- play()'e girdi olarak verdiğin duration_ms değerlerini azalt, hangi değerde LED'in yanıp sönmesi ayırt edilemez oluyor?
- NOTE_C4 değerini azalt, ne zaman ses bozuluyor? Aynısını arttırarak dene.
- digitalWrite() fonksiyonuna LED_BUILTIN yerine buzzerPin'i girdi olarak verince ne oluyor?
No comments:
Post a Comment