Ana Sayfa · Akademi · Robotik ve Kodlama · micro:bit · Sıcaklık ve Işık Ölçümü

Sıcaklık ve Işık Ölçümü

micro:bit'in sıcaklık ve ışık ölçümünü okuyup eşikle karar vermeyi öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

micro:bit'in içindeki sensörlerle çevrenin sıcaklığını ve ışığını yaklaşık olarak okuyabilir, bu değerleri ekranda gösterip bir eşik (sınır değer) yardımıyla basit kararlar verebiliriz.

Üretilecek kanıt

"Akıllı masa lambası" yapalım. Işık azalınca kart bir yıldız göstersin, aydınlanınca sönsün; ayrıca A düğmesine basınca o anki ışık değerini yazsın. Yeni bir MakeCode projesi aç. sürekli içine bir koşul kur: ışık düzeyi < 40 ise yıldız simgesi göster , değilse ekranı temizle . A düğmesine basıldığında bloğuna ışık düzeyi göster ekle. Kartı bilgisayara…

Kontrol tuzağı

Ölçümü kesin sanmak micro:bit'in sıcaklık ve ışık değerleri yaklaşıktır . Bunları hassas bir termometre veya lüksmetre yerine koyma. Karşılaştırma ve eşik için harikadırlar, kesin ölçüm için değil. Ekran açıkken ışığı okumaya çalışmak Işık ölçümü LED ekranı kullandığı için, ekranda sürekli parlak bir desen varken…

Sonraki bağlantı

Radyo ile Haberleşme: İki micro:bit'in kablosuz radyo ile mesaj ve sensör değeri alışverişi yapması.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre30–45 dk
Ön koşulİvmeölçer
İçerikStandart ders · 1.420 kelime
Son güncelleme

Bir cümlelik özet

micro:bit'in içindeki sensörlerle çevrenin sıcaklığını ve ışığını yaklaşık olarak okuyabilir, bu değerleri ekranda gösterip bir eşik (sınır değer) yardımıyla basit kararlar verebiliriz.

Neden önemli?

Bir önceki derste micro:bit'in ivmeölçer ile hareketi ve eğimi hissettiğini gördük. Kart yalnız hareketi değil, çevresindeki sıcaklığı ve ışığı da algılayabilir. Bu iki değeri okumak, kartın etrafında olup biteni "fark etmesinin" kolay bir yoludur.

Elektronik modülünde ışık sensörünü (LDR) ve sıcaklık sensörünü ayrı parçalar olarak kurmuştuk. Güzel haber şu: micro:bit bu iki ölçümü ek parça bağlamadan, kendi içindeki devrelerle de yapabilir. Böylece devre kurmadan hızlıca deneyler yapabilir, sonra istersek harici sensörlere geçebiliriz.

Bu dersi bitirdiğinde bir sensör değerini okumayı, ekranda göstermeyi ve bir eşiğe göre "eğer ışık azaldıysa şunu yap" gibi karar vermeyi öğrenmiş olacaksın. Bu, otomatik gece lambası veya sıcaklık uyarısı gibi projelerin ilk adımıdır.

micro:bit çevresini nasıl algılar?

Sıcaklık: aslında çipin sıcaklığı

micro:bit'in üzerinde ayrı bir sıcaklık sensörü parçası yoktur. Bunun yerine kart, ana işlemci çipinin sıcaklığını ölçer. Çip, çalıştığı ortamla zamanla aynı sıcaklığa yaklaştığı için bu değer oda sıcaklığına yaklaşık olarak eşittir.

Bu yüzden micro:bit'in sıcaklık ölçümü kavramsaldır: gerçek bir termometre kadar kesin değildir ve çip biraz ısınırsa değer birkaç derece yüksek çıkabilir. Yine de "hava ısındı mı, soğudu mu?" sorusuna cevap vermek için yeterlidir. Değer santigrat derece (°C) olarak, tam sayı biçiminde gelir.

Işık: LED ekranın ikinci görevi

micro:bit'in ayrı bir ışık sensörü de yoktur. İşin ilginç yanı, 5×5 LED ekranı kısa anlarda ışık sensörü gibi kullanılır. LED'ler normalde ışık verir; fakat çok kısa süre için ters çalıştırıldığında üzerlerine düşen ışığı ölçebilir.

Kart bu ölçümü bizim için bir sayıya çevirir. Işık düzeyi 0 ile 255 arasında bir değerdir:

Yani kesin bir "lüks" ölçümü değil, kademeli bir "ne kadar aydınlık?" değeridir. Bu da bir analog okumaya güzel bir örnektir: ışık birden değil, yavaşça artıp azalır.

Değerleri okuyup ekranda göstermek

Bir sensörü kullanmanın ilk adımı, değeri görmektir. micro:bit'in kayan yazı özelliği bunun için çok uygundur.

MakeCode ile

MakeCode'da hazır bloklar kullanırız. Aşağıdaki blok dizisi sıcaklığı sürekli ekranda kaydırır:

sürekli
  sıcaklık (°C) göster
  0.5 saniye beklet

Işık düzeyini göstermek de aynı mantıktadır:

sürekli
  ışık düzeyi göster
  0.5 saniye beklet

"göster" bloğu sayıyı ekranda soldan sağa kaydırarak yazar. beklet bloğu, sayılar birbirine karışmasın diye kısa bir ara verir.

MicroPython ile

Aynı fikri metin tabanlı Python ile de yazabiliriz. Mantık birebir aynıdır; yalnız yazım biçimi değişir:

from microbit import *

while True:
    display.scroll(temperature())
    sleep(500)

temperature() çipin sıcaklığını °C olarak verir. Işık için display.read_light_level() fonksiyonunu kullanırız:

from microbit import *

while True:
    display.scroll(display.read_light_level())
    sleep(500)

display.scroll(...) sayıyı kaydırarak gösterir, sleep(500) ise 500 milisaniye (yarım saniye) bekler.

Eşikle karar vermek

Değeri görmek güzeldir; fakat asıl işi eşik yapar. Eşik, "şu sınırı geçerse şunu yap" dememizi sağlayan bir sayıdır. Algoritma dersinden hatırladığımız koşul yapısını burada kullanırız.

Örnek 1: Işık azalınca LED deseni (gece lambası)

Amaç: Ortam karardığında micro:bit bir desen göstersin, aydınlıkta ise ekran kapansın. Tıpkı sokak lambası gibi.

MakeCode blok dizisi:

sürekli
  eğer <ışık düzeyi < 50> ise
    kalp simgesi göster
  değilse
    ekranı temizle

Aynı fikir MicroPython'da:

from microbit import *

while True:
    if display.read_light_level() < 50:
        display.show(Image.HEART)
    else:
        display.clear()
    sleep(200)

Burada 50 bizim seçtiğimiz eşiktir. Elini kartın üstüne kapatıp ışığı azalttığında kalp belirir; elini çektiğinde ekran temizlenir. Eşik sayısını odanın aydınlığına göre değiştirmen gerekebilir.

Örnek 2: Sıcaklık eşiği (oda/sera uyarısı)

Amaç: Sıcaklık belirli bir dereceyi geçince kart uyarı versin. Bunu bir bitkinin yanındaki mini "sera termometresi" gibi düşünebilirsin.

MakeCode blok dizisi:

sürekli
  eğer <sıcaklık (°C) > 30> ise
    "SICAK" kaydır
  değilse
    onay simgesi göster

MicroPython karşılığı:

from microbit import *

while True:
    if temperature() > 30:
        display.scroll("SICAK")
    else:
        display.show(Image.YES)
    sleep(500)

Çip biraz ısındığı için gerçek oda sıcaklığından birkaç derece sapma olabilir. Eşiği seçerken bunu aklında tut ve değeri önce kaydırarak gözlemle.

Mini uygulama

"Akıllı masa lambası" yapalım. Işık azalınca kart bir yıldız göstersin, aydınlanınca sönsün; ayrıca A düğmesine basınca o anki ışık değerini yazsın.

  1. Yeni bir MakeCode projesi aç.
  2. sürekli içine bir koşul kur: ışık düzeyi < 40 ise yıldız simgesi göster, değilse ekranı temizle.
  3. A düğmesine basıldığında bloğuna ışık düzeyi göster ekle.
  4. Kartı bilgisayara bağlayıp programı yükle.
  5. Elini yavaşça kartın üstüne yaklaştır ve eşiğin doğru çalışıp çalışmadığını gözle.
  6. Eşiği (40) odana göre büyütüp küçülterek en iyi değeri bul.

İstersen aynı programı MicroPython'a çevirip iki yazımı karşılaştır. Mantık aynı kalmalı, yalnız biçim değişmeli.

Uygulama laboratuvarı: Sıcaklık ve Işık Ölçümü

Sıcaklık ve Işık Ölçümü konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada micro:bit çevresini nasıl algılar? ile Işık: LED ekranın ikinci görevi arasındaki ilişkiyi kullanarak simülatörde ve kart üzerinde denenmiş micro:bit programı ile test notları hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.

Görev senaryosu

Şu senaryoyu ele al: iki kart arasında kablosuz skor paylaşımı. Dersin ana hedefi “micro:bit'in sıcaklık ve ışık ölçümünü okuyup eşikle karar vermeyi öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.

  1. Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
  2. En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
  3. Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
  4. Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
  5. Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.

Başarı ölçütleri

“Sıcaklık ve Işık Ölçümü” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın iki kart arasında kablosuz skor paylaşımı senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, micro:bit çevresini nasıl algılar? ve Işık: LED ekranın ikinci görevi ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

Ölçümü kesin sanmak

micro:bit'in sıcaklık ve ışık değerleri yaklaşıktır. Bunları hassas bir termometre veya lüksmetre yerine koyma. Karşılaştırma ve eşik için harikadırlar, kesin ölçüm için değil.

Ekran açıkken ışığı okumaya çalışmak

Işık ölçümü LED ekranı kullandığı için, ekranda sürekli parlak bir desen varken okuma yanıltıcı olabilir. Ölçümü, ekranın boş olduğu bir anda yaptırmak daha doğru sonuç verir.

Eşiği hiç ayarlamamak

Bir odada işe yarayan eşik, başka bir odada çalışmayabilir. Işık ve sıcaklık ortama bağlıdır; bu yüzden değeri önce gözlemleyip eşiği ona göre seçmek gerekir.

beklet/sleep koymayı unutmak

Ara vermeden sürekli kaydırınca sayılar okunmaz hâle gelir. Kısa bir bekleme, değerleri gözle takip etmeyi kolaylaştırır.

Güvenlik notu

Ders özeti

Kontrol soruları

  1. micro:bit sıcaklığı gerçekte neyin sıcaklığını ölçerek bulur?
  2. Işık düzeyi hangi sayı aralığında gelir ve hangi uç karanlığı gösterir?
  3. MicroPython'da ışık düzeyini okuyan fonksiyonun adı nedir?
  4. "Eşik" ne işe yarar? Bir cümleyle açıkla.
  5. Ekranda parlak bir desen varken ışık ölçümü neden yanıltıcı olabilir?

Cevaplar

  1. Ayrı bir sensör yerine ana işlemci çipinin sıcaklığını ölçer; bu değer oda sıcaklığına yaklaşıktır.
  2. 0–255 arasında gelir; 0'a yakın değer ortamın karanlık olduğunu gösterir.
  3. display.read_light_level().
  4. Eşik, bir sensör değerinin geçtiğinde karar tetikleyeceği sınır sayıdır (örneğin "ışık 50'nin altına düşerse").
  5. Işık ölçümü LED ekranı kullandığı için, ekran parlak bir desenle doluyken okunan değer gerçek ortam ışığını doğru yansıtmayabilir.

Kaynak ve doğrulama notu

“Sıcaklık ve Işık Ölçümü” dersi için doğrulama odağı micro:bit çevresini nasıl algılar? ile Işık: LED ekranın ikinci görevi arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. MakeCode ve MicroPython adları sürüme göre küçük farklılık gösterebilir. Önce simülatörde test yapılmalı; harici bileşen bağlanacaksa kartın pin ve gerilim sınırları ayrıca kontrol edilmelidir.

Sonraki ders

Radyo ile Haberleşme: İki micro:bit'in kablosuz radyo ile mesaj ve sensör değeri alışverişi yapması.

Quiz’i Başlatmicro:bit bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.