function for getting RPM, checkpoint. sorta working
This commit is contained in:
parent
2712a72b75
commit
f9ebdc8ecd
@ -55,6 +55,7 @@ int temp;
|
|||||||
#define encoderA2 4
|
#define encoderA2 4
|
||||||
#define encoderB2 7
|
#define encoderB2 7
|
||||||
volatile int countA = 0;
|
volatile int countA = 0;
|
||||||
|
volatile int countAold = 0;
|
||||||
volatile int countB = 0;
|
volatile int countB = 0;
|
||||||
|
|
||||||
const int MotorPinA = 12;
|
const int MotorPinA = 12;
|
||||||
@ -74,6 +75,8 @@ unsigned int rpmA;
|
|||||||
unsigned int rpmB;
|
unsigned int rpmB;
|
||||||
unsigned long timeoldA;
|
unsigned long timeoldA;
|
||||||
unsigned long timeoldB;
|
unsigned long timeoldB;
|
||||||
|
float rpm = 0;
|
||||||
|
float rps = 0;
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
Wire.begin();
|
Wire.begin();
|
||||||
@ -116,6 +119,15 @@ void loop() {
|
|||||||
printInfo();
|
printInfo();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void getSpeed() {
|
||||||
|
float alpha = 2.0 / (20.0 + 1.0); //alfa aka EMA length. 10 length = 20*20ms=0.2s
|
||||||
|
int ticks = countA-countAold;
|
||||||
|
float rpm_new = ticks*50*60/56.0; //ticks * 50 hz * 60s / ticks per rotation
|
||||||
|
float rps_new = ticks*50/8.91; //ticks * 50hz/ ticks per rad
|
||||||
|
rpm = rpm*(1-alpha)+rpm_new*alpha;
|
||||||
|
rps = rps*(1-alpha)+rps_new*alpha;
|
||||||
|
countAold = countA;
|
||||||
|
}
|
||||||
void printInfo(){
|
void printInfo(){
|
||||||
Serial.println("");
|
Serial.println("");
|
||||||
Serial.print("pitch Angle = "); Serial.println(angle_pitch_output);
|
Serial.print("pitch Angle = "); Serial.println(angle_pitch_output);
|
||||||
|
Loading…
Reference in New Issue
Block a user