Opto nun çıkışına Buffer Koymak

Başlatan Mucit23, 29 Ekim 2016, 11:29:33

Mucit23

Bazı tasarımlarda görüyorum. Optik izolasyonlu bir girişte PC817 gibi bir optonun çıkışını pull-up yapıp Bir Buffer, mesela 74HC4096, yada 74HC04 gibi entegrelerden geçirip Mikroişlemcinin portuna bağlıyorlar.

Bu yönteme hangi durumlarda ihtiyaç duyulur? Teknik Açıklamasını yapabilecek olan var mı?

Zoroaster

Opto ledinin akımı analog olarak sürülüp çok yavaş değişim gösteren durumlarda opto çıkındaki sinyal de analog olarak çok yavaş değişir. Bu sinyali değerlendiren lojik devre sinyali 1/0 yorumlamakta zorlanır hatta Vdd'den çekeceği akımı artar.

İşte bu durumda opto çıkışı tercihen schmitt trigger ile donatılır.
Seytan deliginden kacti.

Mucit23

Hocam bende bu duruma karşı önlem almak istiyordum. Optonun ledini duruma göre 20-30 metre öteden anahtarlayacağım. Bu durumda Opto ların kabloların direncindende kaynaklanabilecek kararsız çalışma durumuna karşı önlem almak istiyorum. Bu durumda 74HC14 gibi bir entegre kullanılması mantıklı olur.

Bazı tasarımlarda da Doğrudan TTL bir HEX inverter ekliyorlar. Mesela 74HC04

JKramer


Zoroaster

#4
Harici inverterin analog bir sinyale maruz bırakılıp inverterin akımını artırması hiç bir şey kullanmayıp MCU'nun akımını artırmasına tercih edilir. Aslında yanlış yapıyorlar. Orada LS04 değil LS14 kullanılmalı.

Uzun kablo eklentisi çok sorun olmaz. Sorun olan durumlarda opto ledinin uçlarına paralel bir direnç bağlanırsa  bu bazı olumsuzlukları bertaraf eder.

Aslında sinyalleri 1/0 olarak algılamak yerine bir zaman çerçevesi içinde değerlendirmek özellikle endüstriyel uygulamalarda tercih edilmeli.

Opto çıkışı 0 oldu hurrraaa hadi lambayı yakalım/roleyi çektirelim demek yerine mesela 100us aralıklarla takip edilen opto çıkışının şu anki değeri ile geçmişteki değerleriyle harmanlanması gürültünün filitrelenmesi anlamına gelir ve opto yada herhangi bir sinyalin yanlış değerlendirilmesini önler.

Bir MCU asla ve asla dış dünyadan okuyacağı ham veriyi kullanmamalı, muhakkak sinyal donanımla ya da yazılımla filitre edilmelidir.

En güzeli yazılımsal olanıdır. Karta dışardan bakana çok şey gizlenmiş olur.


Seytan deliginden kacti.

seyityildirim

Alıntı yapılan: Zoroaster - 29 Ekim 2016, 12:42:40

Bir MCU asla ve asla dış dünyadan okuyacağı ham veriyi kullanmamalı, muhakkak sinyal donanımla ya da yazılımla filitre edilmelidir.


Hocam yazılımla filtrelemeden kastınız smoothing denilen yumuşatma algoritmaları mı yoksa low-pass, high-pass tarzı filtreler mi uygulamak? Kanımca smoothing olması gerekiyor çünkü analog verinin frekansı hakkında bilgi sahibi olmayabilirsiniz

Zoroaster

Low pass fillitre iş görür. Opto'da pek olmaz ama buton sinyali çok sık 1/0 geçişi yapıyorsa zaten orda debounce var demektir ve bunlar filitre sayesinde kendiliğinden temizlenir.

(Filitrenin, giriş sinyalinin frekansından haberdar olması gerekmez sadece en yüksek frekanslı sinyalin frekansının iki katı hızda sample alınması yeterli olur.)
Seytan deliginden kacti.

skara1214

 piclerde 0.8 volt altı 0 1.7 volt üstü 1 kabul edilir. aradaki değerler mantıksız sonuçlar doğurur bunu önlemek için buffer entegreleri kulalnılır yani 2 voltun altı 0 üstü 1 gibi. ama smt32lerde inputlarda zaten böyle bir girişi mevcut(non inverting shmitt trigger). pic kullanırken 74hct014 kullanırdım ama stmde kullanmadan sıkıntısız şekilde sonuç alıyorum
Herkes ölür ama herkes gerçekten yaşamaz

seyityildirim

Alıntı yapılan: Zoroaster - 29 Ekim 2016, 17:33:57
Low pass fillitre iş görür. Opto'da pek olmaz ama buton sinyali çok sık 1/0 geçişi yapıyorsa zaten orda debounce var demektir ve bunlar filitre sayesinde kendiliğinden temizlenir.

(Filitrenin, giriş sinyalinin frekansından haberdar olması gerekmez sadece en yüksek frekanslı sinyalin frekansının iki katı hızda sample alınması yeterli olur.)

Hocam sadece opto için konuşmadım. Mesela güç katsayısı ölçecek bir devre yapılacak olsun. akım ve gerilimi okumamız gerekecek. bu sinyallerin üzerine gürültü binmiştir muhakkak. ve örnekleme aralığımız çok düşük. çözünürlüğümüzün yüksek olması gerekiyor. Bu durumda analog verileri temiz okuyabilmek için işi low pass filtre ile mi çözeriz ? yoksa smoothing kurtarır mı?


Zoroaster

#9
Güç katsayısı ölçeceksen sinyalin kılına dokunamazsın.

Yapacağın her türlü filitreleme sinyalin dalga şeklini bozar bu da sonucu değiştirir.

Tıbbi elektronikte de böyledir. EKG, EMG gibi ölçümlerde sinyalleri filitreleyemezsin.

Fakat güç katsayısını hesaplayıp sonuçları filitreleyebilirsin.
Seytan deliginden kacti.

seyityildirim

Hocam peki sinyal aşağıdaki gibi ise filtre kullanmadan nasıl mantıklı güç katsayısı hesaplanır? Resimde smoothing yapılarak daha net değerler oluşmuş.

Aslında demek istediğim sinyalin kendisi pek gürültülü değil ama okuma elemanlarımızda oluşuyor bu gürültü.



Alıntı yapılan: Zoroaster - 29 Ekim 2016, 17:58:00
Fakat güç katsayısını hesaplayıp sonuçları filitreleyebilirsin.
Sonuçları filitrelemede yöntem nedir peki?

açıklayıcı cevaplarınız için teşekkür ederim

Zoroaster

#11
Örneğinde sinyal beyaz gürültüye boğulmuş varsayılabilir ve grafiiğe göre sample alma frekansının asıl sinyalinin yüzlerce katı büyülükte olduğunu söyleyebiliriz. Bu fillitrelenebilir.  Benim demek istediğim gürültü mesela 400 Hz sinyal taşınırken 50 Hz'e boğulmuş ve örnekleme frekansın da 4Khz civarında. Bu durumda filitreleme yaparsan efektif hesap  şaşar.

Fakat efektif değerleri ardı ardına hesaplayıp moving average uygulayabilirsin.
Seytan deliginden kacti.