امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
دریافت پالس های متفاوت از انکودر در ولتازهای متفاوت
نویسنده پیام
MahdiJalali آفلاین
تازه وارد

ارسال‌ها: 9
موضوع‌ها: 3
تاریخ عضویت: مرداد ۱۳۹۸

تشکرها : 4
( 1 تشکر در 1 ارسال )
ارسال: #1
دریافت پالس های متفاوت از انکودر در ولتازهای متفاوت
سلام دوستان وقت همگی بخیر

من یه انکودر دارم که با ولتاژ 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 تا پالس میندازه.

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

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

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

ممنون میشم راهنمایی کنید.
۱۶-دى-۱۳۹۸, ۱۵:۳۸:۵۹
ارسال‌ها
پاسخ
MahdiJalali آفلاین
تازه وارد

ارسال‌ها: 9
موضوع‌ها: 3
تاریخ عضویت: مرداد ۱۳۹۸

تشکرها : 4
( 1 تشکر در 1 ارسال )
ارسال: #2
RE: دریافت پالس های متفاوت از انکودر در ولتازهای متفاوت
مشکل رو پیدا کردم از کد نویسیم بود.
۳۰-دى-۱۳۹۸, ۰۱:۳۱:۴۵
ارسال‌ها
پاسخ
تشکر شده توسط : hadikh73
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,219
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13641
( 14739 تشکر در 4686 ارسال )
ارسال: #3
RE: دریافت پالس های متفاوت از انکودر در ولتازهای متفاوت
سلام ممنون از اطلاع رسانی تون
اگر امکان داره بیشتر توضیح بدید ک برای بقیه هم قابل استفاده باشه
تشکر گل

۳۰-دى-۱۳۹۸, ۱۰:۴۳:۲۴
ارسال‌ها
پاسخ
تشکر شده توسط : 1نفر


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  انکودر bIGBANG 2 3,797 ۲۶-آذر-۱۳۹۰, ۰۰:۴۸:۱۵
آخرین ارسال: ROBO

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS