Logic Level Converter (Lojik Seviye Dönüştürücü) Arduino ile Nasıl Kullanılır?

Arduino modülleri ile projeler yaparken bazı modüllerin 5 Volt, bazı modüllerin ise 3,3 Volt ile çalıştıklarını duymuş olmalıyız. İki farklı gerilim düzeyinde çalışan bu sistemleri bir arada kullanmak için ek modüllere ihtiyacımız var. Bu yazıda logic level converter (lojik seviye dönüştürücü) olarak adlandırılan bu modüllerin kullanımını açıklayacağız.

Çoğu Arduino board (Uno, Nano ve Mega gibi) 5 Volt lojik ile çalışıyor. Yani iletişim pinlerinden veri gönderirken 5 Volt gönderiyor ve veri okurken de 5 Volt bir girdi bekliyor. 5 Volt ile çalışan Arduino’muza 3,3 Volt ile çalışan bir modül bağlamak istediğimizde iki sorun ile karşılaşırız.

İlk sorun Arduino’nun iletişim pinlerinden gönderdiği 5 Volt veri düzeyinin 3,3 Volt’tan fazlasına dayanamayabilecek zavallı modülümüze zarar verme olasılığıdır. İkinci sorun ise 3,3 Volt modülümüzün gönderdiği 3,3 seviyesindeki verinin 5 Volt bekleyen Arduino tarafından anlaşılamama olasılığıdır.

Bir örnek vermek gerekirse HC-06 Bluetooth Modülü anlatımımızda böyle bir sorun ile karşılaşmış ve kolay yoldan nasıl çözebileceğimizden bahsetmiştik. Uyguladığımız çözüm aşağıdaki resimde görüldüğü gibi RX bağlantısına gelen gerilimi 2 adet direnç kullanarak düşürmek olmuştu.

Bu tasarım tek yönlü ve tek kanallı iletişim için oldukça ucuz ve pratikti, ancak tüm sorunları çözmediği de ortada. Bu sorunu kökten çözebilmek için logic level converter modüllerine ihtiyacımız var.

Bu tür Arduino projelerinde kullanılmak için biraz elektronik, biraz da sihir ile çok basit ve kullanışlı logic level converter modülleri hazırlanıp satışa sunuldu. Bu tasarımların ilk örnekleri seri iletişim protokolünün RX ve TX bağlantıları düşünülerek hazırlanmıştı ve TX hattında kanal başına bir MOSFET kullanarak gerçek çift taraflı iletişim kullanırken, RX hattında yukarıdaki örnekte de kullandığımız tek taraflı yapıyı kullanıyordu.

Aşağıdaki resimde solda görülen bu ilk tasarım 5 Volt’tan 3,3 Volt’a doğru 4 kanallı bağlantıya izin verirken, 3,3 Volt’tan 5 Volt’a doğru 2 kanallı bağlantıya (MOSFET kullanan hatlar) izin verebiliyordu. Yani gerçekte tek taraflı bir tasarımdı.

Daha sonra I2C gibi yeni nesil iletişim protokolleri geliştirildi ve neredeyse tüm iletişim kanallarının çift taraflı olması gerekti. Böylece yukarıdaki resimde sağda görülen ve kanal başına bir MOSFET bulunduran gerçek çift taraflı logic level converter modülleri ortaya çıktı.

Ancak Çinli üreticiler daha ucuz olması nedeniyle eski tasarım tek taraflı modülleri üretmeye devam ediyorlar. Logic level converter’e ihtiyacınız olduğunda gerçek çift taraflı, yani 4 MOSFET’li olan yeni modelden satın aldığınızdan emin olun.

Gelelim 4 kanallı logic level converter’ların kullanımına. Bu modüllerin pinleri HV (High Voltage) ve LV (Low Voltage) serisi olarak iki tarafta toplanmış durumda. HV tarafı yüksek gerilim tarafının, yani çoğu zaman 5 Volt bağlandığı bölümken, LV tarafı ise düşük gerilim tarafının, yani 3,3 Volt bağlanan bölümdür.

Diğer bir deyişle 5 Volt ile çalışan Arduino’muzda 3,3 Volt ile çalışan bir modül kullanmak istediğimizde Arduino’dan çıkan veri pinlerini HV tarafına, modüle gidecek veri pinlerini de LV tarafına bağlamamız gerekiyor.

Modülün 4 kanalı birbirlerinden bağımsız olarak HV1-LV1, HV2-LV2, HV3-LV3 ve HV4-LV4 şeklinde bağlantılara sahip. Yani HV1’den gönderdiğimiz 5 Volt veri LV1’den 3,3 Volt olarak çıkıyor. Tersi kullanımda LV1’e gönderilen 3,3 Volt veri HV1’den 5 Volt olarak çıkıyor. Böylece Arduino board ve modül farklı logic gerilim seviyelerinde olsalar dahi birbirleriyle haberleşebiliyorlar.

Modüldeki LV pini 3,3 Volt besleme bağlantısıyken, HV pini ise 5 Volt besleme bağlantısı. GND pinleri de Arduino ve modülün GND bağlantıları.

HC-06 Bluetooth modülünü bir de logic level converter ile bağlayalım.

Yukarıdaki kurulumu dikkatle incelediğimizde Arduino’nun 2. ve 3. pinlerinden gelen verilerin logic level converter’ın HV tarafına girdiğini, LV tarafından çıkan karşılıklarının ise modüle gittiğini görürüz.

Logic level converter modülü de Arduino üzerinden 5 Volt (HV), 3,3 Volt (LV) ve toprak (GND) alıyor. HV tarafındaki GND bağlantısı LV tarafında olan ile aynı yere bağlı. Bu yüzden herhangi birini bağlamamız yeterli.

HC-06 modülü 3,3 Volt lojik bağlantıya sahip olsa da, güç olarak 5 Volt ile beslenebiliyor. Bu yüzden modülün VCC bağlantısını 5 Volt’a bağlamayı tercih ettik. Ancak çoğu 3,3 Volt lojik seviye modül yine 3,3 Volt gerilim ile çalışır. Modülleri kullanmadan önce bu güç değerlerini dikkatle incelemek modülün canının sağlığı için oldukça önemli!

TXS0108E çipini kullanan 8 kanallı logic level converter modülünün bağlantısını ise bu yazımızdan okuyabilirsiniz.

Arduino’da iyi olmak için öncelikle elektronikte iyi olmak gerekir. Türkiye’nin en iyi temel elektronik eğitim seti ARDUINO ÖNCESİ TEMEL ELEKTRONİK EĞİTİM VE DENEY SETİ‘ni keşfedin. Gereksiz bilgilerden arındırılmış basit ve eğlenceli anlatımla ELEKTRONİK öğrenin ve Arduino’ya METE HOCA farkıyla güçlü başlayın!