2016年4月15日 星期五

馬達轉速量測V2.0







跑出來的結果如下:

PWM : 1250 spin : 1050
PWM : 1300 spin : 1194
PWM : 1350 spin : 1304
PWM : 1400 spin : 1387
PWM : 1450 spin : 1451
PWM : 1500 spin : 1503
PWM : 1550 spin : 1544
PWM : 1600 spin : 1579
PWM : 1650 spin : 1607
PWM : 1700 spin : 1634
PWM : 1750 spin : 1654
PWM : 1800 spin : 1682
PWM : 1850 spin : 1764
PWM : 1900 spin : 1763
PWM : 1950 spin : 1764



arduino 的code 如下:

我四根馬達接在 pin   6,7,8,9....

然後光電開關接在  A3 (analog pin 3....別懷疑...它也可以當digital pin 使用)

自己選一個馬達測試或是你也可以一次測四個...這樣比較快...但是 arduino 的code要改一下

=================================================================
#include <PinChangeInt.h>
#include <Servo.h>

int Pin = A3;
int val;
#define SERVO_NUM 4
Servo MOTOR[SERVO_NUM];
#define FL_MOTOR_OUT_PIN 6
#define FR_MOTOR_OUT_PIN 7
#define BL_MOTOR_OUT_PIN 8
#define BR_MOTOR_OUT_PIN 9


unsigned int total_cnt=0;
unsigned int older_cnt=0;
void setup()
{
   Serial.begin(9600); //for debugging...
 
   pinMode(Pin, INPUT);
   PCintPort::attachInterrupt(Pin, calc,RISING);
   total_cnt =0;
   older_cnt =0;
 
  MOTOR[0].attach(FL_MOTOR_OUT_PIN);
  MOTOR[1].attach(FR_MOTOR_OUT_PIN);
  MOTOR[2].attach(BL_MOTOR_OUT_PIN);
  MOTOR[3].attach(BR_MOTOR_OUT_PIN);
 
  MOTOR[0].writeMicroseconds(1000);
  MOTOR[1].writeMicroseconds(1000);
  MOTOR[2].writeMicroseconds(1000);
  MOTOR[3].writeMicroseconds(1000);
}


void loop()
{
 int i,j,k,rpm;

 k=3;
 
//  val = digitalRead(Pin);
 
  //Serial.println(val);             // debug value
  for(i=1100;i<2000;i+=50)
  {
     for(j=0;j<4;j++)
     {
        MOTOR[k].writeMicroseconds(i);
        delay(500);
  //   Serial.println(end_time);
        if((total_cnt > older_cnt) & (j==3))
        {
            rpm = total_cnt - older_cnt;
            older_cnt = total_cnt;
            Serial.print("PWM : ");
            Serial.print(i);
            Serial.print(" spin : ");
            Serial.println(rpm);  
        }else
            older_cnt = total_cnt;
     }
   
  }
  MOTOR[k].writeMicroseconds(1000);
  while(1)
  {}
}

void calc()
{

  total_cnt++ ;
 
}

1 則留言: