Optik sensör
Optik Sensörler, birlikte kullanıldığında doğrusal aktüatörler,işlevi çok benzer salon efekt sensörleriancak manyetik alanlar yerine ışığı algılıyorlar [1]. Optik Sensörler, bir LED'den veya bir kodlayıcı diskten geçirilen başka bir ışık kaynağından gelen ışığı kullanarak çalışır. Bu kodlayıcı disk, ışığın içinden periyodik olarak geçmesine izin verecek şekilde yarıklıdır. Diskin diğer tarafında, diskteki yuvalardan geçerken ışığı algılayan ve bir çıkış sinyali oluşturan bir fotodetektör bulunur [1]. Aktüatör hareket ettikçe kodlayıcı disk döner ve ışık, kare dalga voltaj darbeleri üreten fotodetektör tarafından algılanır. Bu darbeler, aktüatörün ne kadar hareket ettiğini belirlemek için Hall etkisi sensörünün darbelerine benzer şekilde kullanılabilir.
Optik Sensörden Konumsal Geri Bildirim
Optik sensörler çıktıları açısından hall etkisi sensörlerine oldukça benzer şekilde çalıştığından, bu blog yazısında konumsal geri bildirim için çıktılarının nasıl okunacağı kısaca ele alınacaktır. Daha fazla ayrıntı arıyorsanız, benzer olacağından, bir hall efekt sensöründen konumsal geri bildirimin nasıl okunacağı hakkındaki yazımıza göz atın.
Hall etkisi sensörleri gibi optik sensörlerin de bağlanabileceği 3 pin bulunur; biri giriş voltajı, diğeri toprak ve son olarak biri çıkış sinyalidir. Konumsal geri bildirim için çıkış sinyalindeki darbeleri kullanmak için bir mikrodenetleyici Üretilen darbeleri saymak için. Bu darbeleri doğru bir şekilde saymak için mikro denetleyicinizin harici kesme pinlerini kullanmak isteyeceksiniz. Harici kesintiler voltajdaki bir değişiklik tarafından tetiklendiğinden, her darbeyi meydana geldikçe tespit etmek için kullanılabilirler. Mikrodenetleyicinizin kodunda kesmenizi ayarladıktan sonra, darbeleri meydana geldikçe sayan bir kesme hizmeti rutini ayarlamanız gerekir. Aşağıdaki kod örneğindeki countSteps() işlevi, optik sensörden gelen darbelerin sayısını saymak için kullanılır.
Konumsal bir değer belirlemek amacıyla bu darbeleri kullanmak için, doğrusal aktüatörün önceki konumunu ve doğrusal aktüatörün hareket ettiği yönü bilmeniz gerekir. Doğrusal aktüatörün hangi yöne hareket edeceğini kontrol ederken, basitçe bir değişken ayarlayabilirsiniz. kodunuzdaki aktüatörün yönünü izlemek için. Bu değişken, darbeleri önceki konumunuza eklemeniz veya çıkarmanız gerekip gerekmediğini belirlemek için kullanılabilir. Konumunuzu güncelledikten sonra sayılan darbeleri sıfıra sıfırlamanız gerekecektir. Aşağıdaki kod örneği, sayılan darbe sayısına göre konumu güncelleyen bir işlevi gösterir. Darbe cinsinden bir konuma sahip olduğunuzda, doğrusal aktüatörünüzün inç başına darbe özelliğini kullanarak inç'e dönüştürebilirsiniz.
Lineer Aktüatörünüzün Hedeflenmesi
Optik sensörden gelen konumsal geri bildirimi doğru bir şekilde kullanmak için doğrusal aktüatörünüzün başlangıç konumunu her zaman bilmeniz gerekir. Ancak sisteminizi ilk açtığınızda mikrodenetleyiciniz aktüatörün uzatılıp uzatılmadığını anlayamayacaktır. Bu, doğrusal aktüatörünüzü bilinen bir konuma getirmenizi gerektirecektir. Evinize doğrusal aktüatörtamamen geri çekilmiş gibi bilinen bir konuma getirmeniz gerekecektir. Aşağıdaki Arduino kodunu örnek olarak kullanarak doğrusal aktüatörümüzü bilinen konumumuza doğru yönlendirecek bir WHILE döngüsü kurduk. Bu örnekte,steps değişkeninin değişip değişmediğini kontrol ederek kesmenin tetiklenip tetiklenmediğini kontrol ederek bilinen konumumuzda olduğumuzu bileceğiz. Ayrıca kesmenin tetiklenmesini beklemek için yeterli sürenin geçtiğinden emin olmamız gerekir, bunun için millis() fonksiyonunu kullanırız ve bunu önceki zaman damgasıyla karşılaştırırız. Doğrusal aktüatörün ana konumumuzda olduğunu belirledikten sonra aktüatörü sürmeyi durdururuz, adım değişkenini sıfırlarız ve WHILE döngüsünden çıkarız.
Yanlış Tetikleyicilerle Başa Çıkmak
Optik sensörler elektriksel gürültüye potansiyometreler kadar duyarlı olmasa da, elektriksel gürültü ve anahtar sıçraması yine de çıkış sinyalini etkileyebilir ve sayılacak yanlış darbeleri tetikleyebilir. Birkaç ekstra darbe konumlandırmayı çok fazla etkilemez ancak zamanla daha büyük bir sorun haline gelebilir. Yanlış tetikleyicileri filtrelemek için dahili bir zamanlayıcı kullanarak bu sorunlarla mücadele edebilirsiniz. Yeni darbelerin ne sıklıkta algılanmasını bekleyebileceğinizi belirleyebileceğiniz gibi, kesintinin gürültü tarafından ne zaman tetiklendiğini filtreleyebilirsiniz. Aşağıdaki kod örneğinde trigDelay, her darbe arasındaki zaman gecikmesidir. Eğer kesinti bu gecikmeden önce tetiklendiyse darbe sayılmaz. Bu gecikmenin süresi uygulamanıza bağlı olarak değişecektir ancak çok kısa olması gürültüyü düzgün bir şekilde filtrelemeyecektir ve çok uzun olması durumunda optik sensörden gelen gerçek darbeleri kaçıracaktır.
Yanlış tetikleyicilerle mücadele etmenin bir başka yolu da aktüatörün bilinen bir konuma ulaştığı her seferde konum değerini düzeltmektir. Doğrusal aktüatörün hedefini belirleme gibi, doğrusal aktüatörü tamamen geri çekilmiş veya uzatılmış bir konuma sürdüyseniz veya harici limit anahtarları kullanıyorsanız, o konuma ulaşmak için kaç darbe gerektiğini bilirsiniz. Daha sonra bilinen konuma ulaştığınızda bu değeri kullanarak konum değerini kolayca düzeltebilirsiniz. Aşağıdaki kod örneğinde bu, tamamen uzatılmış ve tamamen geri çekilmiş konumlar için yapılır. Bu yöntem, konum değerinizin doğru kalmasını sağlamak için pratik bir çözüm sunar.
Özet
Konumsal geri bildirim için kullanılan optik sensörler, hall etkisi sensörleri ve potansiyometrelerle karşılaştırıldığında daha yüksek doğruluk ve çözünürlük sağlarken, hall etkisi sensörleriyle benzer güç ve dezavantajlara sahiptir. Mutlak konumu ölçmemelerine ve konumsal bir değer sağlamak için bilinen bir başlangıç konumu gerektirmelerine rağmen, inç başına çok sayıda darbe, konumlandırmada güvenilirliğe olanak tanır ve birden fazla doğrusal aktüatörün aynı anda hareket etmesini sağlar. Bizim kullanımımız FA-SYNC-X aktüatör kontrolörü veya ek kod aracılığıyla, aktüatörlerin yükten bağımsız olarak uyum içinde hareket etmesini bile sağlayabilirsiniz.
Tam bir kod örneği için blogumuza göz atın: Hall etkisi sensöründen konumsal geri bildirimin nasıl okunacağı pek çok şey benzer olacaktır. İnç başına darbe ve darbeler arasındaki zaman gecikmeleri gibi değerler, optik sensörünüzü doğru şekilde kullanmak amacıyla bu kodu kullanmak için yapmanız gereken değişikliklerden bazılarıdır.
[1] Paschotta, R. Optik Sensörler ile ilgili makale. Alınan:https://www.rp-photonics.com/optical_sensors.html