Encoder ölçümlü tur kontrol

Merhaba arkadaşlar… Encoder ile ölçüm yaparak tur metre yapacağım. fakat ben bu tur metreye ekrandan set değeri girebileceğim. bu det değerine ulaştığında. İşlemci çıkışını kesecek. Bana bunu Uno ile yazabilecek olan var mı? ben yapamadım.

encoder nekadar hassas.. yada şöyle sorayım tur başına pals sayısı nedir ve maximum tur/dk (rpm) nedir.. yüksek hızda pulse geliyorsa özel entegre veya devreler kullanmalısın. örneğin HCTL-2022 gibi ama düşük pulse frekanslarında okuma yapacaksan (ör: bir scroll tekerleğini okuyacaksan ) direkt arduinoyu kullanabilirsin include < stdlib.h> define enc_a 22 define enc_b 23 byte enc_status,enc_last_status; long enc_pos=0; void setup() { pinMode(enc_a, INPUT); pinMode(enc_b, INPUT); } void loop() { //** Encoder 4 farklı durum alır a ve b için sırayla 00 10 11 01 //** bunları bir byte yazalım //** byte yazınca , //** ileri yönde 0,1,3,2,0,1,3,2… şeklin de gider //** Geri yönde 2,3,1,0,2,3,1,0… şeklin de gider enc_status=0; bitWrite(enc_status, 0,digitalRead(enc_a)); bitWrite(enc_status, 1,digitalRead(enc_b)); // bir önceki durumla karşılastıralım //**İleri yönde kaymalar if ( ((enc_status==0) & (enc_last_status==2)) | ((enc_status==1) & (enc_last_status==0)) | ((enc_status==3) & (enc_last_status==1)) | ((enc_status==2) & (enc_last_status==3)) ) {enc_pos++;} //**Geri yönde kaymalar if ( ((enc_status==2) & (enc_last_status==3)) | ((enc_status==3) & (enc_last_status==1)) | ((enc_status==1) & (enc_last_status==0)) | ((enc_status==0) & (enc_last_status==2)) ) {enc_pos–;} //** Durum Eşitleyelim enc_last_status=enc_status; } sonraki işler LCD menüsü parametrik set girme, girilen setle karşılaştırma vs. vs. halledersin diye düşünüyorum.. bide buraya bi bak http://www.robotoid.com/appnotes/circuits-quad-encoding.html saygılarımla..

https://www.youtube.com/watch?v=qo6q7nKj9qs

Kodu incelerseniz şayet sizde bir kaç değişiklik ile yapabilirsiniz.