---
title: "Rastlantısal Kod Blokları ve Mikrodenetleyicinin Nabzı: Kontrolden Kaçanlardan Kusursuzluğa"
description: "Mikroişlemcilerle ilk tanıştığımda, her şey benim için mükemmel bir determinizm üzerine kuruluydu. Giriş $\\rightarrow$ İşlem $\\rightarrow$ Çıkış. Eğer girdiyi…"
date: 2026-11-02T05:59:56Z
updated: 2026-11-02T05:59:56Z
author: "Burak Ege"
site: "Sıfırıncı Durum: Donanım ve Yazılımın Derinliklerinde"
language: "tr"
tags: ["mikrodenetleyici", "rastgelelik", "gömülü-sistemler", "arducino", "kaos"]
url: "https://devredekiakil.nasilalinir.com/rastlantisal-kod-bloklari-ve-mikrodenetleyicinin-nabzi-kontrolden-kacanlardan"
---

# Rastlantısal Kod Blokları ve Mikrodenetleyicinin Nabzı: Kontrolden Kaçanlardan Kusursuzluğa

Mikroişlemcilerle ilk tanıştığımda, her şey benim için mükemmel bir determinizm üzerine kuruluydu. Giriş $\rightarrow$ İşlem $\rightarrow$ Çıkış. Eğer girdiyi biliyorsan, çıktıyı da kesin olarak tahmin edebilirsin. Bu yapı, elektronik mühendisliğinin en güzel yanı olsa da, bazen gerçek dünya – sensör gürültüsü, beklenmedik ortam sıcaklığı değişimleri, hatta bir kullanıcıdan gelen "ne olacağını bilmeden dene" isteği – bu temiz çizgiyi bozuyor. İşte o noktada, kontrolün dışına çıkanlar devreye giriyor.

Ve bu serideki bazı yazılarımız da tam olarak bu uç noktaya dokunuyor: Kontrol edilemeyen veriye nasıl anlam yükleyeceğiz?

Bu yazıda, benim de zaman zaman karşılaştığım o "rastgele gelen veriyi" ele alacağız. Bu, sadece bir hata veya gürültü değil; doğru filtrelendiğinde, bambaşka birer kaynaktır.

## Rastgelelik Neden Ortaya Çıkar?

Bir projeye başlarken, her şey kusursuz görünür. Ancak sistem gerçek dünyayla buluştuğunda, iki ana tür rastgelelikle karşılaşırız:

**1. Fiziksel Kaynaklardan Gelen Rastgelelik (Noise/Drift):**
Örneğin, bir sıcaklık sensörümüz var diyelim. Oda sıcaklığı 22°C iken, ölçüm yapmaya başladık. Ancak bu sensörün analog-dijital dönüştürücüsündeki (ADC) termal gürültü veya entegrasyon hatası yüzünden, okuma değerlerimiz 21.9°C ile 22.5°C arasında sürekli küçük salınımlar gösteriyor olabilir. Bu mikro dalgalanmalar bizim için "rastgele" bir girdi gibi görünüyor.

**2. Algoritmik Karar Verme Rastgeleliği (Entropy Source):**
Bazen biz kasıtlı olarak rastgelelik yaratırız. Bir prototip aşamasında, sistemin belirli bir noktaya geldiğinde takılı kalmaması için kararı sensöre veya yazılıma bırakmak isteriz. Eğer bu karar verme mekanizması yeterince sağlam değilse, ortaya çıkan çıktı öngörülemez bir kaosa dönüşebilir.

## Kaostan Yapıya Geçiş: Filtreleme Sanatı

Bir mikrodenetleyicinin (MCU) görevi, bu kaosu bir sonraki aşamaya temiz bir sinyal olarak iletmektir. Eğer her rastgele gürültüyü, ana kontrol döngüsüne doğrudan sokarsak, sistemimiz o gürültünün içinde boğulur.

İşte benim bu noktada uyguladığım, basit ama kritik olan birkaç yaklaşım:

*   **Hareketli Ortalama Filtresi (Moving Average):** Belirli bir süre boyunca gelen $N$ adet ölçümün aritmetik ortalamasını almak. Bu, anlık gürültü piklerini yumuşatır ve bize daha güvenilir bir temsil sunar. Eğer biz bu filtreyi tasarlamadıysak, her yeni okuma bizim için bir "kriz anında bilinçli karar alma" çağıdır.
*   **Donanım Tabanlı Debouncing:** Fiziksel bir butona basıldığında oluşan elektriksel titreşimleri yazılımla değil, donanım zamanlama ile bastırmak. Bu, en temiz mühendislik çözümüdür ve yazılımın yükünü azaltır.
*   **Thresholding (Eşikleme):** Eğer ölçülen değer, önceki stabil değere göre belirlenen küçük bir sapma toleransının dışındaysa, o veriyi atmak. Bu, sistemi bilinçli olarak gürültüden izole etmektir.

Özetle, bir elektronik mühendisi olarak benim için **rastgelelik, nihai ürünün kusuru değil; geliştirme sürecinin en zorlu ve öğretici aşamasıdır.** O gürültülü sinyal, bize sistemimizin sınırlarını gösteren bir geribildirimdir. Bu geri bildirimi alıp, filtreyi tasarladığımızda, tamamen yeni ve daha sağlam bir yapı inşa etmiş oluruz.

Siz hangi gürültü ile mücadele ediyorsunuz? Projenizde o "rastgele" olarak gördüğünüz veri noktası, aslında size hangi bilgiyi vermeye çalışıyordu?
