73#ifndef ME_Encoder_OnBoard_H
74#define ME_Encoder_OnBoard_H
78#include <avr/interrupt.h>
80#define DIRECT_MODE 0x00
84#define MOTION_WITH_POS 0x00
85#define MOTION_WITHOUT_POS 0x01
87#define PWM_MIN_OFFSET 25
88#define ENCODER_POS_DEADBAND 10
89#define DECELERATION_DISTANCE_PITCH 6
94 float Setpoint, Output, Integral, differential, last_error;
102 int16_t pulseEncoder;
131typedef void (*cb)(int16_t,int16_t);
170 void reset(uint8_t slot);
482 void move(
long position,
float speed = 100,int16_t extId=0,cb callback=NULL);
504 void moveTo(
long position,
float speed = 100,int16_t extId=0,cb callback=NULL);
711 boolean _Dir_lock_flag;
712 boolean _Callback_flag;
721 int16_t _Encoder_output;
722 long _Measurement_speed_time;
723 long _Encoder_move_time;
Driver for Encoder module on MeAuriga and MeMegaPi.
Definition MeEncoderOnBoard.h:139
void setMotionMode(int16_t motionMode)
Definition MeEncoderOnBoard.cpp:791
boolean isTarPosReached(void) const
Definition MeEncoderOnBoard.cpp:1039
long getCurPos(void) const
Definition MeEncoderOnBoard.cpp:554
uint8_t getIntNum(void) const
Definition MeEncoderOnBoard.cpp:252
void setCurrentSpeed(float speed)
Definition MeEncoderOnBoard.cpp:386
void moveTo(long position, float speed=100, int16_t extId=0, cb callback=NULL)
Definition MeEncoderOnBoard.cpp:649
int16_t speedWithoutPos(void)
Definition MeEncoderOnBoard.cpp:926
void setMotorPwm(int16_t pwm)
Definition MeEncoderOnBoard.cpp:463
void setPulsePos(long pulse_pos)
Definition MeEncoderOnBoard.cpp:329
void loop(void)
Definition MeEncoderOnBoard.cpp:1058
uint8_t getPortB(void) const
Definition MeEncoderOnBoard.cpp:290
void pulsePosPlus(void)
Definition MeEncoderOnBoard.cpp:348
void setTarPWM(int16_t pwm_value)
Definition MeEncoderOnBoard.cpp:443
void setSpeedPid(float p, float i, float d)
Definition MeEncoderOnBoard.cpp:707
uint8_t getPortA(void) const
Definition MeEncoderOnBoard.cpp:271
long distanceToGo() const
Definition MeEncoderOnBoard.cpp:684
void updateSpeed(void)
Definition MeEncoderOnBoard.cpp:508
void pulsePosMinus(void)
Definition MeEncoderOnBoard.cpp:367
float getCurrentSpeed(void) const
Definition MeEncoderOnBoard.cpp:405
void setSpeed(float speed)
Definition MeEncoderOnBoard.cpp:596
void runSpeed(float speed)
Definition MeEncoderOnBoard.cpp:573
uint8_t getSlotNum(void) const
Definition MeEncoderOnBoard.cpp:233
void setRatio(float RatioValue)
Definition MeEncoderOnBoard.cpp:772
void pwmMove(void)
Definition MeEncoderOnBoard.cpp:1011
int16_t getCurPwm(void) const
Definition MeEncoderOnBoard.cpp:424
int16_t pidPositionToPwm(void)
Definition MeEncoderOnBoard.cpp:810
void updateCurPos(void)
Definition MeEncoderOnBoard.cpp:534
long getPulsePos(void) const
Definition MeEncoderOnBoard.cpp:309
void setPosPid(float p, float i, float d)
Definition MeEncoderOnBoard.cpp:732
void reset(uint8_t slot)
Definition MeEncoderOnBoard.cpp:168
void setPulse(int16_t pulseValue)
Definition MeEncoderOnBoard.cpp:753
void move(long position, float speed=100, int16_t extId=0, cb callback=NULL)
Definition MeEncoderOnBoard.cpp:623
void encoderMove(void)
Definition MeEncoderOnBoard.cpp:979
MeEncoderOnBoard()
Definition MeEncoderOnBoard.cpp:92
Definition MeEncoderOnBoard.h:122
Definition MeEncoderOnBoard.h:98
Definition MeEncoderOnBoard.h:92