Yazılı sohbetAna sohbet odası — üye olmadan da gir Sesli ve görüntülüKonuşarak sohbet et, istersen kameranı aç Canlı yayınlarYayındakileri izle

Her LED aslında bir göz: tek diyotla konuşan iki mikrodenetleyici

İki ESP32 kartı, aralarında birer kırmızı LED'den başka hiçbir şey olmadan 2,5 metreden paket alışverişi yapıyor. Aynı diyot hem ışık yayıyor hem de ters kutuplanıp ışığı ölçüyor.

Her LED aslında bir göz: tek diyotla konuşan iki mikrodenetleyici
Teknoloji 6 Ekim 2026 9 dk okuma 5 okunma

İki geliştirme kartı bir masanın üstünde, aralarında 2,5 metre boşluk var. Ne anten, ne radyo yongası, ne de bir kablo. Her birinde tek bir 5 milimetrelik şeffaf kırmızı LED, karşıdakine bakıyor. Yine de aralarında 64 baytlık paketler gidip geliyor; üstelik her paket karşı taraftan onay alıyor, alamazsa yeniden gönderiliyor.

Daha da tuhafı: o LED'ler aynı anda hem lamba hem de ışık ölçer. Veriyi yayan parça ile veriyi gören parça aynı parça. Arada fotodiyot, fototransistör, kızılötesi alıcı — hiçbiri yok.

Bunu yapan kod, İtalyan geliştirici Luca Soltoggio'nun yazdığı PacketLED adlı Arduino kütüphanesi. Hackaday'in 5 Ekim 2026 tarihli yazısıyla duyulmaya başlandı. Depodaki belgelere göre kütüphane Apache 2.0 lisansıyla açık, ESP32 ve ESP32-C3 kartlarında sınanmış durumda. Gerekli donanım kart başına bir LED ve bir dirençten ibaret.

Neden işe yarıyor: her LED zaten bir fotodiyot

Bir LED ile bir fotodiyot, aynı şeyin iki ucudur. İkisi de yarı iletken bir p-n eklemidir. Eklemden ileri yönde akım geçirirseniz elektronlarla boşluklar birleşir ve açığa çıkan enerji foton olarak yayılır: ışık görürsünüz. Üzerine ışık düşürürseniz tersi olur, foton eklemde elektron-boşluk çifti yaratır ve küçük bir akım doğar. Bu akıma fotoakım denir.

Benzetmesi şu: bir hoparlör ile bir mikrofon da aynı makinedir. Birinde elektrik bobini kıpırdatır, ötekinde ses bobini kıpırdatır. Hoparlöre bağırırsanız ucunda gerçekten gerilim ölçersiniz. LED de öyle — yalnızca ters yönde çalıştırılması gerekir.

Dietz, Yerazunis ve Leigh'in 2003 tarihli raporunda bu durum açıkça yazılıdır: "LED'ler o kadar yaygın biçimde ışık yayıcı olarak kullanılıyor ki, temelde birer fotodiyot oldukları ve dolayısıyla ışık algılayıcısı da oldukları kolayca unutuluyor." Aynı rapor, katı hal ışık yayımı ile algılamasının birbirinin yerine geçebileceğinin 1970'lerde Forrest W. Mims tarafından geniş biçimde duyurulduğunu, ama sonradan büyük ölçüde unutulduğunu söylüyor.

Sıradan 5 milimetrelik kırmızı LED yakın çekim
Sıradan 5 milimetrelik kırmızı LED yakın çekim — Evan-Amos, Public domain (Wikimedia Commons)

Ölçme hilesi: delikli kovayı doldurup boşalmasını izlemek

Fotoakım çok küçüktür; doğrudan ölçmek için yükselteç gerekir. Hile, akımı değil onun biriktirdiği yükü ölçmektir.

Önce LED ters kutuplanır. Bu durumda eklem, küçük bir kondansatör gibi davranır ve yüklenir. Sonra anot ucu serbest bırakılır, yani pin yüzer hale getirilir. Üzerine düşen ışık fotoakım üretir ve bu akım yükü boşaltmaya başlar. Ne kadar çok ışık varsa boşalma o kadar hızlıdır.

Kovanın dibinde bir delik olduğunu düşünün. Kovayı ağzına kadar doldurup bırakıyorsunuz. Deliğin büyüklüğü ışığın şiddetidir; sizin yaptığınız şey ise suyun ne kadar hızlı indiğine bakmaktır.

2003 ekibi bu ölçümü sayısal giriş eşiğiyle yapıyordu: gerilim eşiğin altına ne kadar sürede düştü? Sonuç tek bitlik bir bilgiydi — ışık var ya da yok. PacketLED ise sabit bir birikim süresi bekleyip sonundaki gerilimi ESP32'nin analog-sayısal çeviricisiyle okuyor. Depo belgesindeki ifadeyle, "özgün çalışma sayısal bir girişi zamanlarken PacketLED gerilimi ADC ile okur; bu, uzak mesafede çok daha hassastır." Menzil farkının asıl kaynağı bu.

Fikrin doğduğu yer: bir uzaktan kumandanın arka ışığı

Paul Dietz, William Yerazunis ve Darren Leigh, Mitsubishi Electric Research Laboratories'de (MERL) çalışıyorlardı. Ekim 2003 tarihli TR2003-35 numaralı raporları, UbiComp 2003 konferansına sunulmuştu ve adı "Very Low-Cost Sensing and Communication Using Bidirectional LEDs" idi.

Çıkış noktaları hiç de iddialı değildi: televizyon kumandalarının tuş aydınlatması. Rapordaki anlatıma göre sorun şuydu — arka ışığı yakmak için karanlıkta bulunması neredeyse imkânsız bir tuşa basmanız gerekiyordu. Önce kapasitif bir yakınlık sensörü denediler; kumanda her elde tutulduğunda ışığın yanması pili hızla tüketti. Sonra aklı başında bir soru sordular: ortam ne kadar karanlık, bunu zaten orada duran arka ışık LED'ine ölçtürebilir miyiz?

Prototip, bir PIC12C509 mikrodenetleyici, kapasitif algılama için birkaç elektrot ve o LED'den ibaretti. Rapora göre devre mikrowatt düzeyinde güç çekiyordu ve tek bir CR2032 düğme pille altı ay kesintisiz çalıştı.

Asıl adım bundan sonra geldi. Işık algılayan devreyi LED'li el fenerleriyle denerken, iki LED'in birbirine veri yollayabileceğini fark ettiler. Buna LEDComm adını verdiler: RS-232 arayüzlü iki PIC kartı, karşılıklı bakan iki LED. Bir milisaniyelik ışık darbesi "1", yarım milisaniyelik darbe "0" demekti. Rapordaki ölçüme göre bağlantı her yönde yaklaşık 250 bit/saniye taşıyordu, yaklaşık 3 santimetreye kadar güvenilirdi ve LED'lerin dar huzmesi yüzünden ancak 20 derecelik bir nişan hatasını affediyordu.

İlginç bir yan bulgu da vardı: sistem saat hatasına karşı olağanüstü dayanıklıydı. Kartlardaki ucuz, kararsız RC osilatörler yüzde 25'e varan sapma gösterse bile iletişim bozulmuyordu. Rapor, bir RS-232 bağlantısında yüzde 5'in üzerindeki hatanın genellikle sorun çıkardığını hatırlatıyor. Ucuz osilatör burada avantaja dönüşüyordu, çünkü iki cihaz aynı fazda açılsa bile kısa sürede birbirinden kayıyor ve böylece sırayla yanıp sönmeye geçebiliyordu.

Raporun italikle yazdığı cümle, o günden bugüne tekrarlanıp duran cümledir: "Bir mikroişlemciye bağlı her LED, kablosuz bir iki yönlü iletişim kapısı olarak düşünülebilir." Yazarlar bunu "son santimetre sorunu" dedikleri şeye bir çözüm olarak sunuyorlardı: birbirine hiç benzemeyen cihazların, tasarımlarını neredeyse hiç değiştirmeden ucuzca haberleşmesi.

Yirmi üç yıl sonra: 250 bit/s'ten 2,5 metreye

PacketLED'in bugünkü rakamları, depo belgelerinde ölçüm koşullarıyla birlikte veriliyor. Hız üç kademeli ve begin() çağrısında seçiliyor.

Bit hızı16 baytlık paket64 baytlık paketOnay çerçevesi
1024 bit/s218 ms593 ms93 ms
512 bit/s414 ms1163 ms164 ms
256 bit/s804 ms2304 ms304 ms

Menzil ise tamamen LED tercihine bakıyor. 20 derece huzme açılı, 40.000 mcd parlaklığında 5 milimetrelik şeffaf kırmızı LED'lerle ve 100 ohm dirençle bağlantı 1024 bit/s'te 2,5 metreye kadar sınanmış. 90 santimetrede her iki yönde 100'er adet 64 baytlık paketin tamamı ilk denemede geçmiş, yararlı veri hızı yaklaşık 715 bit/saniye ölçülmüş.

Sıradan 3 milimetrelik buzlu kırmızı LED'lerle ve 470 ohm dirençle tablo çok daha mütevazı: 1024 bit/s'te yaklaşık 3 santimetre, 512'de 5, 256'da 8 santimetre. Burada bir sınır belirtmek gerek — depo, bu ikinci grup rakamın bir bölümünün tezgâhtaki ölçümlerden, bir bölümünün ise donanım ölçümleriyle kalibre edilmiş bir benzeticiden geldiğini açıkça yazıyor.

Bağlantı basit: LED'in anotu bir dirençle bir pine, katotu doğrudan başka bir pine gidiyor. Anot pininin ADC1 girişi olabilmesi şart, çünkü ESP32'de ADC2 kanalları WiFi açıkken kullanılamıyor. Sınanmış pin çiftleri klasik ESP32'de GPIO32/33, ESP32-C3'te GPIO0/1. Direnç yalnızca gönderirken iş görüyor ve değeri basit bir formülle bulunuyor: R = (3,3 V − Vf) / I. Kırmızı bir LED için bu, 5 miliamperde yaklaşık 270 ohm, 20 miliamperde 68 ohm demek. Mavi ve beyaz LED'lerin ileri gerilimi 3 volta yakın olduğu için 3,3 voltluk besleme altında neredeyse hiç pay bırakmıyor; kırmızının tercih edilmesinin sebebi bu.

Telsiz amatörlerinden ödünç alınan protokol

Soltoggio, bağlantı katmanına LX.25 adını vermiş. İsim, amatör telsizcilerin paket radyoda onlarca yıldır kullandığı AX.25 protokolünden geliyor ve benzerlik yalnızca isimde değil.

LX.25 paketleri 0 ile 64 bayt arasında. Her çerçevenin sonunda CRC-16/X.25 sağlaması var — AX.25'in kullandığı sağlamanın aynısı. Paketler onaylanıyor, onay gelmezse en çok üç kez yeniden gönderiliyor, yinelenenler oturum ve sıra numarasına bakılarak eleniyor. İki kart aynı anda konuşmaya kalkarsa, göndermeden önce dinleme ve her denemeden önce rastgele bekleme işi çözüyor.

Bir çerçevenin yapısı şöyle: 20 milisaniyelik sabit ışık (SYNC), 3 milisaniyelik karanlık (GUARD), 16 bitlik giriş dizisi, 0xA7 başlangıç baytı, 4 baytlık başlık, veri ve 2 baytlık sağlama. Baştaki o 20 milisaniyelik sabit ışığın işi ilginç: alıcı, kendi birikim süresini oradan seçiyor. Yani her çerçeve kendi ölçüm ayarını beraberinde getiriyor.

Bitler Manchester kodlu. Sıfır "önce ışık, sonra karanlık", bir ise "önce karanlık, sonra ışık" demek. Alıcı mutlak bir parlaklığa bakmıyor, bitin iki yarısını birbiriyle karşılaştırıyor. Bu küçük tercih büyük bir dert yükünü ortadan kaldırıyor: ayarlanacak bir eşik kalmıyor, odadaki sabit ışık ve şebekenin 50 hertzlik titreşimi iki yarıda da aynı miktarda göründüğü için büyük ölçüde birbirini götürüyor. Terazinin iki kefesine de aynı ağırlığı koymak gibi.

Ne işine yarar

Bu bağlantının hızı, yanındaki hiçbir kablosuz teknolojiyle yarışamaz. 1024 bit/saniye, bugünün ölçüsünde yok sayılacak kadar yavaş. Değerli olan yanı başka.

  • Ek donanım maliyeti sıfır. Cihazın üstünde zaten bir gösterge LED'i varsa, o LED aynı zamanda servis ve hata ayıklama kapısı olabiliyor. Kutuyu açmak, konnektör eklemek gerekmiyor.
  • Elektrik bakımından yalıtık. İki kart yalnızca ışığı paylaşıyor, aralarında hiçbir iletken bağ yok.
  • Yönlü ve kapalı. Işık yalnızca LED'lerin baktığı yere gidiyor. Radyonun istenmediği ya da izin verilmediği ortamlarda çalışıyor.
  • Eşleştirme derdi yok. İki cihazı birbirine dayamak, kanal/adres/kod girmenin yerini alıyor.

Son madde, Soltoggio'nun ikinci kütüphanesinin çıkış noktası. SecurePair, PacketLED'in üstüne bir şifreleme katmanı koyuyor: anahtarlar X25519 eliptik eğri değişimiyle anlaşılıyor, iletiler AES-256-GCM ile şifreleniyor, eşleştirme iletileri HMAC-SHA256 ile doğrulanıyor, anahtar türetme HKDF-SHA256 ile yapılıyor. Depo, bunların TLS 1.3'ün kullandığı yapı taşlarının aynısı olduğunu vurguluyor. Eşleştirme tamamlandıktan sonra aynı şifreli bağlantı ESP-NOW ya da LoRa üzerinden de sürdürülebiliyor; tipik kullanım, eşleştirmeyi ışıkla yapıp veriyi telsizle taşımak.

İşin insan tarafı daha da sevimli. İki kart anahtar üzerinde anlaştıktan sonra, konuştukları LED'in üzerinde yirmi kısa ve uzun yanıp sönmeden oluşan ortak bir kod gösteriyor. Kullanıcı iki LED'i yan yana izliyor. Araya giren üçüncü bir cihaz varsa iki dizi tutmuyor ve fark anında göze çarpıyor. Depo, bu yaklaşımın dayanağı olarak kısa doğrulanmış diziler üzerine Vaudenay'in (CRYPTO 2005), McCune ve arkadaşlarının (IEEE S&P 2005) ve Prasad ile Saxena'nın (ACNS 2008) çalışmalarını gösteriyor. SecurePair henüz beta ve LoRa taşıyıcısı gerçek donanımda sınanmamış.

Sınırları ve dürüst notlar

Soltoggio, kendi künyesinde bir öncülü de anıyor: Giovanni Blu Mitolo'nun PJON kütüphanesindeki AnalogSampling stratejisi 2011'den beri cihaz başına tek bir LED'i hem yayıcı hem alıcı olarak kullanıyor ve okumayı yine ADC ile yapıyor. Yani PacketLED sıfırdan bir buluş değil, uzun bir zincirin son halkası.

Kütüphanenin kendi belgesindeki sınırlar da açık yazılmış. Şimdilik yalnız ESP32 ailesi destekleniyor; protokolün kendisi taşınabilir, ESP32'ye bağlı olan yalnızca küçük donanım katmanı. Bağlantı noktadan noktaya, adresleme yok. Zamanlama meşgul bekleme ile yapıldığı için yoğun kesme yükü işi bozabiliyor ve kütüphane WiFi açıkken sınanmamış. 256 bit/s'te 64 baytlık bir çerçeve işlemciyi iki saniyeden uzun süre meşgul ediyor. Bir de ince bir tuzak var: begin() çağrısı ESP32'nin ADC'sini bütün kanallar için 12 bit ve 0 dB zayıflatmaya ayarlıyor, bu yüzden aynı taslakta başka analog girişler okunuyorsa onların ayarı sonradan tekrar yapılmalı.

Geriye hoş bir soru kalıyor. 2003'te MERL ekibinin yazdığı cümle, yirmi üç yıl sonra bir ESP32 ile 2,5 metreye taşındı ve yanına sağlama, onay, şifreleme eklendi. Şu an masanızın üzerindeki cihazlarda kaç tane gösterge LED'i yanıp sönüyor ve kaçı aslında hiç kullanılmayan bir veri kapısı?

Fotoğraf: DavesCodeMusings, CC0, Wikimedia Commons

Haberi beğendin mi?
Paylaş WhatsApp X Facebook
Teknoloji Masası

Bu içerik, Yudum Teknoloji Masası editör ekibi tarafından derlenip yayına hazırlanmıştır. Güncel gelişmeler için haber akışını takip edebilirsiniz.

İlgili haberler

Yudum

1998'den beri, dünyanın her yerinden — sohbet, radyo, oyunlar ve daha fazlası.

Sohbete Katıl Ücretsiz üye ol

Yalnız 18 yaş ve üstü — Yudum üzerindeki canlı sohbet, sesli ve görüntülü görüşmeler yetişkinler içindir. Neden?

1998'den beri sohbetin adresi

Üye olmadan girebileceğin sohbet odaları, sesli ve görüntülü sohbet, kesintisiz canlı radyo, tarayıcıdan oynanan oyunlar ve her gün yenilenen içerik. Kurulum yok, ücret yok — tarayıcını aç ve katıl.