rotary encoder rs232 kullanımı

arkadaşlar merhabalar öncelikle internetten bir çok araştırma yaptım fakat ingilizcem olmadıgı için sonuç alamadım o yüzden bu8rdan sorma geregi duydum ilgilenen arkadaşlara şimdiden teşekkürler. sorun: öncelikle sorunum sonsuz rotary encoder veri okuma yani aslında yapmak istediğim 3 pinli encoderi arduinoya takıp her çevirmemde 1-360 arası sayı yollaması her dönüşünde kendi derecesini yollaması eger yardım ederseniz çok sevinirim.Saygılarımla

Merhaba sana yardımcı olmaya çalışacağım Öncelikle 3 pinli encoderin bu 3 pinin görevleri Vcc, Gnd , Data mı ?

tam olarak bilmiyorum resmini link olarak atıyorum http://playground.arduino.cc/uploads/Main/alps\_stec12e07\_encoder.jpg

yardım edecek yokmu arkadaşlar

arkadaşlar bugün elimdeki rotary encoderin dökümanlarını internette buldum encoder 3 bacak bunun2 bacagı data çıkışı yani pals üretiyor veyada 1ve 0 degerleri veriyor fakat üçüncü bacagın + mı yoksa - mi olcanı bulamadım

enkoder çalışma tarzının voltajla alakası yok. 2 tane anahtar farklı zaman uzunluklarında kapanıp açılıyor o kadar, bir anahtar kısa sureli açılıp kapanıyor diğeri daha uzunsa sağ yöne çeviriyorsun demek olur ve sayacını bir arttırırsın eğer önce uzun pals sonra kısa pals geliyorsa ters yöne dönüyor diye karar verip sayacı bir düşürürsün. mantık bu.

ömer hocam elinizde ufakta olsa bir açıklayıcı örnek varmı acaba varsa paylaşabilirmisiniz

arduinonun şu sayfasında toplu halde ornekleri vermiş interrup kullandığı için programları anlaması biraz zor gelebilir deneyerek biraz bak bakalım. http://playground.arduino.cc/Main/RotaryEncoders

int val; int encoder0PinA = 3; int encoder0PinB = 4; int encoder0Pos = 0; int encoder0PinALast = LOW; int n = LOW; void setup() { pinMode (encoder0PinA,INPUT); pinMode (encoder0PinB,INPUT); Serial.begin (9600); } void loop() { n = digitalRead(encoder0PinA); if ((encoder0PinALast == LOW) && (n == HIGH)) { if (digitalRead(encoder0PinB) == LOW) { encoder0Pos–; } else { encoder0Pos++; } Serial.print (encoder0Pos); Serial.print (“/”); } encoder0PinALast = n; } ömer hocam bu kodu denedim devamlı ya arttırıyor ya azaltıyor