Motor Miline Baglı Enkoderi Okuma
  • Kormas marka bir motor ve bu motorun arkasında firma tarafından tarafıma söylenen 100 puls lik bir enkoderi var . Bu motoru pwm ile sürerek enkoderinden veri almak istiyorum . Pwm ile motoru sürüyorum fakat enkoder bana bir turda 1000 puls attıgı da oluyır 1650 puls attıgıda sürekli değişiyor. 5 Farklı kütüphane denedim hepsinde sonuc aynı cok fazla puls veriyr. Bunun sebebini bilen bi arkadas ya da daha önce bu konuda ugrasmış arkadaslar YARDIM :)

    Son denediğim kod BU.

    long int temp, counter = 0;
    int a = 0;
    int adim = 0;
    void setup() {
    Serial.begin (9600);
    pinMode(10,OUTPUT);
    pinMode(9,OUTPUT);

    pinMode(2, INPUT_PULLUP);

    pinMode(3, INPUT_PULLUP);

    attachInterrupt(0, ai0, RISING);

    attachInterrupt(1, ai1, RISING);
    }

    void loop() {

    analogWrite(9,100);

    if( counter != temp ){
    Serial.println (counter);
    temp = counter;
    }
    }

    void ai0() {
    // ai0 is activated if DigitalPin nr 2 is going from LOW to HIGH
    // Check pin 3 to determine the direction
    if(digitalRead(3)==LOW) {
    counter++;
    }else{
    counter--;
    }
    }

    void ai1() {
    // ai0 is activated if DigitalPin nr 3 is going from LOW to HIGH
    // Check with pin 2 to determine the direction
    if(digitalRead(2)==LOW) {
    counter--;
    }else{
    counter++;
    }
    }

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.