ايران ويج

نسخه‌ی کامل: دریافت پالس های متفاوت از انکودر در ولتازهای متفاوت
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان وقت همگی بخیر

من یه انکودر دارم که با ولتاژ 5 تا 12 کار میکنه.
وقتی ولتاژم تغییر مکنه به کل تعداد پالسهام توی چرخش تغییر میکنه
مثلا توی 5 ولت هر چرخش کاملی 200 تا پالس میزنه
توی 12 ولت 100 تا پالس توی یه چرخش کامل میزنه

اینم سورس کدش
کد:
#include "METER_DEFS.h"
#include <Arduino.h>
static long counter = 0;
static DisplayDevice* lcd;
static int IPin1, IPin2;
static float METERED = 0.0;
MeterDevice::MeterDevice(DisplayDevice* dsp){
 lcd = dsp;
}


void MeterDevice::SETUP(int intr1, int intr2){
 IPin1 = intr1;
 IPin2 = intr2;
 pinMode(intr1, INPUT);           // set pin to input
 pinMode(intr2, INPUT);           // set pin to input
 
 digitalWrite(intr1, HIGH);       // turn on pullup resistors
 digitalWrite(intr2, HIGH);       // turn on pullup resistors
  //Setting up interrupt
 //A rising pulse from encodenren activated ai0(). AttachInterrupt 0 is DigitalPin nr 2 on moust Arduino.
 attachInterrupt(2, decreased, RISING);
 
 //B rising pulse from encodenren activated ai1(). AttachInterrupt 1 is DigitalPin nr 3 on moust Arduino.
 attachInterrupt(3, increased, RISING);


}
float MeterDevice::READ(){
 if(counter <= 0){
   counter = 0;
   return (0);
 }

 float metered = (float)counter / (float)200;
 return (metered);
}
void MeterDevice::RESET(){
 counter=0;
}

static void MeterDevice::decreased(){
 if(digitalRead(IPin1)==LOW) {
   counter++;
 }else{
   counter--;
 }
}

static void MeterDevice::increased(){
 if(digitalRead(IPin2)==LOW) {
   counter--;
 }else{
   counter++;
 }
}


یه مشکل دیگه هم داره.
وقتی یکدور انکودر رو میچرخونم 100 تا پالس میزنه.
وقتی بر میگردونم 95 یا 80 تا پالس میندازه.

یا مثلا وقتی یواش میچرخونم یجاهایی اصلا پالس نمیندازه.

متاسفانه من دانش کافی الکترونیک رو ندارم.

از آردوینو استفاده میکنم.

ممنون میشم راهنمایی کنید.
مشکل رو پیدا کردم از کد نویسیم بود.
سلام ممنون از اطلاع رسانی تون
اگر امکان داره بیشتر توضیح بدید ک برای بقیه هم قابل استفاده باشه
تشکر گل