Skip to content

PC817 Optokuplör

Umut Erkal edited this page Apr 2, 2017 · 1 revision

PC817 Optokuplör Kullanımı

Optokuplör, iki devrenin ya da bağlantının birbirine izole edilmesini sağlayan bir yalıtım bileşenidir. İçerisinde LED ve ışık algılayıcı bulunur. Giriş tarafına verilen elektrik optokuplör içindeki LED'i yakar. Işık algılayıcı (phototransistor) LED'in yandığını algıladığında iletkenlik kazanır. Böylelikle giriş / çıkış arasında optik yalıtım sağlanır. Optokuplörlerin kullanım amacı hassas bileşenleri yüksek ve dalgalı elektrikten korumak, stabil ve uzun ömürlü çalışma elde etmektir.

IoT HAT Üzerinde 4 adet PC817 optokuplör bulunur. IoT HAT'in oyuklu kart tasarımı ile optokuplörlerin dış elektrik bağlantısı sistemin geri kalanından mekanik olarak izole edilmiştir. Optokuplör girişlerini kullanarak 4 adet 5V elektrik girişini algılayabilirsiniz.

Bağlantı Şeması

Optokuplörlerin bağlantıları, önlerinde bulunan klemensler ile sağlanır. 1. ve 2. optokuplör 1. klemensi, 3. ve 4. optokuplör 2. klemensi kullanır. Klemenslerin orta pinleri, ait oldukları optokuplör grubuna +5V sağlar. Sol ve sağ pinleri de arkalarında bulunan optokuplörlerin GND uçlarıdır. Bir optokuplöre +5V ve GND bağlantısı sağlandığında aktif olur ve GPIO bağlantısına logic 1 sinyali gönderir.

Optokuplörlere buton bağlantısı aşağıdaki gibi olmalıdır:

Optokuplör bağlantı şeması

Optokuplör grubuna ikinci bağlantı aşağıdaki gibi yapılır:

Optokuplör bağlantı şeması

Yazılım

Optokuplörler Raspberry Pi pinlerinin pull-down dirençli pinlerine bağlıdır. Elektrik verilmedikleri durumda logic 0, verildiğinde logic 1 olarak okunurlar.

Sırayla optokuplörler GPIO13 (Header Pin 33), GPIO19 (Header Pin 35), GPIO16 (Header Pin 36) ve GPIO26 (Header Pin 37) noktalarına bağlıdır.

Windows 10 IoT Core

Windows 10 IoT Core için geliştirdiğimiz yardımcı kütüphane ile optokuplörleri kolaylıkla kullanabilirsiniz.

  1. Visual Studio üzerinde oluşturacağınız UWP uygulamasının referansları arasına "TurtaIoTHAT.dll" kütüphanesini ekleyin.
  2. C# Kod dosyanızın using statementları arasına şu satırı ekleyin:
using TurtaIoTHAT;
  1. Optokuplör girişlerini tanımlamak için global alana şu satırı ekleyin:
static OptocouplerInput optocouplerInput;
  1. Initialize() metodunun içerisine aşağıdaki satırları ekleyin:
optocouplerInput = new OptocouplerInput(10);
optocouplerInput.OptocouplerInputChanged += OptocouplerInput_OptocouplerInputChanged;
  1. Optokuplör girişlerinindeki değişimde haber verecek event handlerı oluşturun:
private void OptocouplerInput_OptocouplerInputChanged(object sender, OctocouplerInputEventArgs e)
{
    System.Diagnostics.Debug.WriteLine(e.Ch.ToString() + " -> " + (e.State ? "High" : "Low"));
}

Optokuplörlere elektrik verdiğinizde e.Ch değişkeni üzerinden değişikliğin olduğu kanalı, e.State değişkeninden durumu okuyabilirsiniz.

OptocouplerInput Sınıfı

Optokuplör girişlerini okur.

Sözdizimi:

public class OptocouplerInput

Yöntemler

OptocouplerInput.ReadInputState Yöntemi (Int32)

Belirtilen optokuplör girişini okur.

Sözdizimi:

public bool ReadInputState(
        int ch
)

Parametreler:

ch
Tip: System.Int32
Okunacak optokuplör girişi: 1, 2, 3 ya da 4.

Dönüş Değeri:

Tip: System.Boolean
Optokuplör girişine elektrik uygulanıyorsa true, uygulanmıyorsa false.