ÇOCUKLARIN BİLGİ BANKASI KUMBARA DERGİSİ TÜRKİYE İŞ BANKASI’NIN ÇOCUKLARA ARMAĞANIDIR
KUMBARA DERGİSİ TÜRKİYE İŞ BANKASI’NIN ÇOCUKLARA ARMAĞANIDIR
RGB LED’imizi daha önce nasıl bağlandığımızı hatırlayalım. LM35 sensörünün yazıları bize doğru iken sol bacağı (+), sağ bacağı GND ve orta bacağı da analog okuma pini olacak.
İhtiyaç Listesi:

Öncelikle LCD ekran ile ilgili ayarlamalarımızı yapalım ve üst satıra “Sicaklik:” kemilesinin yanına A0 pini üzerinden LM35 ışık sensöründen gelen değeri sıcaklık değerine dönüştürerek yazdıralım. Bunu yaparken oluşturduğumuz sicaklik isimli değişkenden yararlanalım. Daha sonra bu değişkenin değerini koşul ifadelerinde de kullanacağız.
NOT: 0.488 nereden geliyor? LDR okuduğu her 1°C için 10mV değer üretir. A0 pininden 0-1023 aralığında veri alabiliyoruz. Yani 1023 değeri bize 5v (5000mV) verecektir ve her 10 mV bize 1°C ‘yi verecek şekilde programımızı yazıyoruz.
Sıcaklık değeri = (Lm35 Değeri / 1023) * 5000 / 10 = Lm35 Değeri * 0.488

Şimdi bu sıcaklık değerine göre RGB LED’in rengini belirleyecek olan fonksiyon bloğunun oluşturulmasına. 3 adet parametre yardımıyla kendisine gönderilen RGB kodunu RGB LED’e aktarma görevini üstlenecek.

Son olarak sıcaklık değerlerinin kontrol edilerek farklı aralıklara göre RGB LED’in ayarlanmasını kodlayacağız.

Yükleme işlemini gerçekleştirip kodumuzu Arduino kartımıza atalım. Ekranda ortam sıcaklığını ve RGB üzerinde buna göre oluşan rengi görebiliriz.
LDR Işık sensörü ile ortamdaki ışık şiddetine bağlı olarak farklı uygulamalar yapabiliriz. Bu uygulamamızda da karanlık olduğunda yanan, ortam aydınlandığında sönen LED uygulaması yapacağız.
Devremizdeki LDR sensörünü buton bağlar gibi bağlayalım yalnız girişi analog A0 üzerinden yapacağız.
İhtiyaç Listesi:


Daha sonra LDR’nin A0 üzerinden gönderdiği değere göre bir karanlık seviyesi belirleyelim. Örneğin elimizi LDR sensörünün üzerine kapattığımızda okuduğumuz değer kaç oluyorsa bu değeri kullanabiliriz. Bu değerin altına indiğinde açılan, bu değerin üzerine çıktığında kapanan bir LED için bunu bir koşul ifadesinde kullanalım.

Yükleme işlemini gerçekleştirip kodumuzu Arduino kartımıza atalım. Eğer uygulamayı akşam odamızda deniyorsak odanın lambasını açıp kapatarak test edebiliriz ya da parmağımızla LDR sensörünün üzerini kapatarak da test edebiliriz. Siz de elde ettiğiniz ışık şiddetine göre LED’in ışık seviyesini ayarlayan bir uygulama yapmaya çalışabilirsiniz.
Niloya isimli çizgi filmde kullanılan melodiden kısa bir bölümü buzzer kullanarak oluşturacağız.
Devremizi aşağıdaki resimde olduğu gibi kuralım. Buzzer için 8. pinimizi çıkış olarak kullanacağız.
İhtiyaç Listesi:

Kodlar biraz uzun olduğundan bunları bolum1, bolum2_1 ve bolum2_2 isimli üç ayrı fonksiyonda oluşturacağız ve ana bloğumuzdan çağıracağız.
Ana kod bloğu:

Bölüm1:

Bölüm2_1:

Bölüm2_2:

Yükleme işlemini gerçekleştirip kodumuzu Arduino karta attığımızda Niloya parçasından kısa bir kesit dinleyebiliriz. Siz de müzik bilgisi olan bir kişiden yardım alarak istediğiniz parçaları Arduino ile çaldırabilirsiniz.
Devremizi aşağıdaki resimde olduğu gibi kuralım. Buzzer için 8. pinimizi çıkış olarak kullanacağız.
İhtiyaç Listesi:

Aşağıdaki tabloda notalara denk gelen harfleri görüyoruz. Uygulamada yer alan bu harflerin yanında bir de numaralar (C4) var. Onlarla notaları farklı tonda çaldırabiliriz. Vuruş ise notanın süresi anlamına geliyor.
Nota çaldırmak için Pin bölümünde bulunan pinde çal bloğunu kullanacağız.

Yükleme işlemini gerçekleştirip kodumuzu Arduino karta attığımızda notaların sırasıyla çalındığını duyabiliriz.
Ultrasonik sensörümüzün trig pinini 11. pine, echo pinini de 12. pine bağlayalım. + ve GND’yi unutmayalım.
İhtiyaç Listesi:

LCD ekranı başlattıktan sonra sonsuz döngü içerisinde değerlerin sürekli değişirken birbiri üzerine yazılmaması ve hatalı bir görüntü oluşmaması için ekranı temizliyoruz. Daha sonra önce “Mesafe” ifadesini ve yanına da Sensör bölümünde bulunan mesafe algılayıcı bloğunu kullanarak okunan mesafeyi yazdırıyoruz. Mesafe algılayıcı bloğunda 1. kutuya trig pininin numarasını, 2. kutuya da echo pininin numarasını yazıyoruz.

Yükleme işlemini gerçekleştirip kodumuzu Arduino kartımıza atalım. Ultrasonik sensörümüzün önüne bir cisim koyarak onu uzaklaştırıp yakınlaştıralım ve ekranda yazan değerleri kontrol edelim. Bu değer cm cinsinden olacaktır.
Bu uygulamamızı boy ölçüm aracı olarak da kullanabiliriz. Bilgisayardan USB bağlantısı yerine Arduino’muzu 9v bir pil aracılığıyla da çalıştırabiliriz. Böylece cihazımızı istediğimiz yere taşıyabiliriz.
İhtiyaç Listesi:

Ekranda sağa ve sola gidişleri iki ayrı fonksiyonda yazacağız. Öncelikle ekrana ismimizi yazdıktan sonra sağa doğru kaydıran saga isimli fonksiyonu oluşturalım. İsmimizi yazdıktan sonra bir döngü yardımıyla satırda kalan boşluk adedi kadar ismimizi sağa doğru kaydırıyoruz. Bunu yaparken araya hızını ayarlamak için zamanlamalar koyuyoruz.

Şimdi de sola kaydıran sola isimli fonksiyonumuzu yazalım. Üst satırda ismimizin silinmesi için önce ekranı temizlememiz gerekiyor. 2. Satır – 12. Sütuna ismimizi yazıp bu kez sola kaydırıyoruz.

Şimdi de bu fonksiyonları çağıracak olan ana kodumuzu oluşturalım.

Yükleme işlemini gerçekleştirip kodumuzu Arduino kartımıza attığımızda ekranın üst satırında sağa doğru, alt satırında sola doğru kayan ismimizi görebiliriz.
LCD kartımızın arkasına monte edilmiş I2C modülünde 4 adet pin bulunmakta. Bunlar VCC (+), GND, SDA ve SCL pinleridir. + ve GND pinlerini bağladıktan sonra SDA pinini analog A4 pinine, SCL pinini de analog A5 pinine bağlıyoruz.
İhtiyaç Listesi:

mBlock 5.0 uygulamasında LCD gibi bazı araçları kullanmak için eklentilere ihtiyaç duyarız. I2C protokolü üzerinden haberleşen bir LCD eklentisi için öncelikle uzantı ikonuna tıklayarak Uzantı merkezini açmamız gerekiyor.



Yükleme işlemini gerçekleştirip kodumuzu Arduino karta attığımızda ekranda ismimizin yazdığını görebiliriz. Siz de istediğiniz satır ve sütuna farklı kelimeler yazdırabilirsiniz.

Devre tasarım olarak bir önceki örneğimize devam edebiliriz (Uygulama 9). Bu devreye 2 adet LED eklememiz yeterli olacak.
İhtiyaç Listesi:

Öncelikle potansiyometreden gelen değere göre tüm LED’lerin sönük olduğu, yalnızca 1., 2. ya da 3. LED’in yanıyor olacağı aralıkları belirlememiz gerekiyor.
Buradaki aralıkları bir koşul olarak yazabilmek için İşlemler bölümünde yer alan ve bloğu içerisinde > / < bloklarını kullanacağız.


Şimdi de tüm aralıklar için kodun tamamını oluşturalım.



Yükleme işlemini gerçekleştirip kodumuzu Arduino karta attığımızda ve potansiyometre ile ayarlama yaptığımızda LED’lerin sırayla yandığını görebiliriz. Siz de devreye ekleyeceğiniz 2. potansiyometre ile yanan LED ya da LED’lerin ışık şiddetini ayarlamaya çalışabilirsiniz.
Önceki örneklerimizde dijital pinleri kullanmıştık. Bu uygulamada ise dijital (1 var / 0 yok gibi) olmayan bir veri okuyacağımız için analog bir pin kullanacağız. Potansiyometrenin dış pinlerini + ve GND uçlarına, orta pinini ise A0 pinine bağlıyoruz. Dış uçların ters bağlanması, yalnızca açma kapama için gerekli dönüş yönünü değiştirir.
İhtiyaç Listesi:

0-255 aralığında bir değeri bir pine verebilmek için ise PWM ayarla bloğunu kullanmamız gerektiğini hatırlayalım. Analog bir pinden veri okumak için de analog oku bloğunu kullanacağız. Potansiyometreden gelen 0-1023 aralığındaki veriyi doğrudan LED’e aktaramayız. Potansiyometreden gelen değerin 0-255 aralığında nereye denk geldiğini bulmak için Veri bölümünde yer alan Harita bloğunu kullanacağız.
Örneğin; 0-1023 aralığında yapılan bir okumada 300 değerinin 0-255 aralığında nereye denk geldiğini aşağıdaki kod bloğunda olduğu gibi bulabiliriz.

Aslında çok kısa bir kod bloğu ile çözebiliriz ama daha anlaşılır olması açısından okunan isimli bir değişken kullanacağız. Öncelikle sonsuz döngü içerisinde potansiyometreden gelen değeri okunan isimli değişkene aktarıyoruz. Daha sonra oranlamayı yayıp çıkan sonucu okunan isimli değişkene tekrar yazıyoruz. 6. pinde bulunan LED’imize okunan içerisindeki değeri gönderiyoruz.

Eğer bunu kısa bir şekilde kodlamak istersek;

RGB LED’imizin renk bacaklarının her birine 220Ω luk dirençlerimizi de kullanarak kırmızı (R) bacağını 11. pine, yeşil (G) bacağını 10. pine ve mavi (B) bacağını da 9. pine bağlayalım. Bunların PWM pinleri olması gerektiğini de tekrar hatırlayalım.
İhtiyaç Listesi:


Şimdi sıra bu fonksiyonda kullanacağımız kodlarımıza geldi. Kendisine gönderilen her bir değeri sırayla R, G ve B parametrelerinin içinde tuttuğundan bu parametreler ile gelen değerleri 255’den çıkararak ilgili PWM pinine aktarıyoruz. R, G veya B parametrelerini Renk isminin yanındaki işaretlerinden tutup sürükleyerek oluşturuyoruz.

Son olarak rastgele renk kodlarını oluşturup bu fonksiyona gönderen asıl kodumuzu yazalım. Bunu yaparken kirmizi, yesil ve mavi isimli tanımladığımız değişkenlerimizi kullanacağız.

RGB LED kullanarak tüm renkleri oluşturabiliriz. RGB de bulunan her bir renge (red, green, blue) 0-255 aralığında bir değer atayarak hem ana renkleri hem de ara renkleri oluşturmamız mümkün. Biz bu uygulamada Kırmızı, Yeşil ve Mavi renklerini oluşturacağız.
RGB LED’imizin renk bacaklarının her birine 220Ω luk dirençlerimizi de kullanarak kırmızı (R) bacağını 11. pine, yeşil (G) bacağını 10. pine ve mavi (B) bacağını da 9. pine bağlayalım. Arduino kartımızın üzerine dikkatlice baktığımızda bu pinlerin ve diğer bazı pinlerin önünde (~) işareti olduğunu görebiliriz. Bunlar PWM pinleridir ve 0-255 aralığında değer verebiliriz.
İhtiyaç Listesi:

Şu ana kadar bir LED’i yakmak için sayısal giriş ayarla bloğu ile sadece yüksek ya da düşük değerlerini verdik. 0-255 aralığında bir değeri bir pine verebilmek için ise PWM ayarla bloğunu kullanacağız. 1sn aralıklarla Kırmızı, Yeşil ve Mavi renkleri sırayla oluşturacağız.
Ortak anot(+) bir RBG LED kullandığımız için oluşturmak istediğimiz renk için ilgili bacağa 0 değerini diğerlerine ise 255 değerini veriyoruz. Örneğin Kırmızının RGB kodu (255,0,0) dır. Yani her bir değeri 255’den çıkartarak gönderiyoruz. Eğer ortak katot(-) bir RGB LED kullanmış olsaydık 255’den çıkartmadan direkt olarak gönderebilirdik.

Yükleme işlemini gerçekleştirip kodumuzu Arduino karta attığımızda sırasıyla kırmızı, yeşil ve mavi renklerin 1sn aralıklarla oluştuğunu görebiliriz. Siz de RGB renk sistemini inceleyerek ve pinlere 0-255 aralığında farklı renkler vererek başka renkler oluşturabilirsiniz.
İPUCU: Örneğin açık bir mavi tonu için RGB kodu:125, 180 ve 250 ise sizin RGB LED’e göndermeniz gereken değerler 255-125, 255-180 ve 255-250 şeklinde olmalı. Yani her bir değeri 255’den çıkararak veriyoruz.
Devremize aşağıdaki gibi LED ve butonumuzu bağlayalım. Bu devrede 7. pini LED’i yakmak için çıkış pini ve 8. pini de butona basılıp basılmadığını kontrol etmek için giriş pini olarak kullanacağız.
İhtiyaç Listesi:

Sonsuz döngünün içerisinde bir eğer koşulu yardımı ile sürekli 8. pini okuyoruz ve butona basılıp basılmadığını kontrol ediyoruz. Bunu yapmak için Pin bölümündeki Dijital pin okuma bloğunu kullanacağız. Bu bloğu alarak eğer bloğuna koşul olarak yerleştiriyoruz. Eğer butona basılı ise koşulun eğer kısmı, basılı değilse de koşulun değilse kısmı çalışıyor. Böylece butona basılı tutulduğunda 7. pinde bulunan LED’imiz yanıyor, butondan elimizi çektiğimizde LED sönüyor.

Yükleme işlemini gerçekleştirip kodumuzu Arduino karta atalım. Bizden butona basıp bırakmamızı bekliyor. Basılı tuttuğumuz sürece LED’in yandığını ve elimizi butondan çektiğimizde LED’in söndüğünü görebiliriz. Şimdi siz başka buton ve LED’ler yerleştirerek her bir butonun farklı bir LED’i kontrol etmesini sağlayabilirsiniz.

Devremize aşağıdaki gibi LED’lerimizi ve butonumuzu bağlayalım. Bu devrede 7., 6., ve 5. pinleri LED’leri yakmak için çıkış pini ve 8. pini de butona basılıp basılmadığını kontrol etmek için giriş pini olarak kullanacağız.
İhtiyaç Listesi:


Bu uygulamada LED’lerimizi sırayla 7., 6. ve 5. pinler yardımıyla yakıp söndüreceğiz. Bu sırayı takip edebilmek için değişkenler kısmında pin isimli bir değişken tanımlıyoruz ve yap bloğunu kullanarak başlangıç değerini 7 olarak ayarlıyoruz. Sonsuz döngü içerisinde butona basılıp basılmadığını sürekli olarak kontrol etmemiz gerekiyor.

Eğer butona basılıp bırakılır ya da basılı tutulursa pin numarasına göre yanıp sönmesi ve bir azalarak diğer pine geçmesini sağlayalım.

Son olarak 3 kez çalışıp pin numarası bizim kullanmadığımız 4. pine geçtiğinde pin numarasını 7 yaparak tekrar başa almamız gerekiyor.

Yükleme işlemini gerçekleştirip kodumuzu Arduino karta atalım. Daha sonra butonumuza basıp bırakarak LED’lerin sırayla yandığını görebiliriz. Ya da butonumuza basılı tuttuğumuzda da aynı işlemin gerçekleştiğini gözlemleyebiliriz.

İstanbul Arkeoloji Müzesi çeşitli kültürlere ait bir milyonu aşkın eserle, dünyanın en büyük müzeleri arasında yer alır. Türkiye’nin müze olarak inşa edilen en eski binasıdır. Ünlü ressam, arkeolog ve müzeci Osman Hamdi Bey tarafından İmparatorluk Müzesi olarak kuruldu ve 13 Haziran 1891 tarihinde ziyarete açıldı.