Hey I am having problem controlling brushless motor.I am controlling motor through ESC using 9v battery supply.My motor gives one beep and rotate at certian angle and stops.This process repeats .I tried changing delays but no success.Here is my code::
#include "Servo.h"
#define MOTOR_PIN 10
#define MOTOR_MAX_SPEED 180
#define MOTOR_START_SPEED 80
int motor_current_speed = 0;
int motor_increment = 1;
int max_reached = 0;
Servo motor;
void motorSetSpeed(int speed)
{
if (speed > MOTOR_MAX_SPEED)
speed = MOTOR_MAX_SPEED;
else if(speed < MOTOR_START_SPEED);
speed = MOTOR_START_SPEED;
motor.write(speed);
motor_current_speed = speed;
Serial.print("current motor speed = ");
Serial.println(motor_current_speed);
}
void motorSpeedUp()
{
int increment = (motor_current_speed < 100) ? motor_increment + 2: motor_increment ;
motorSetSpeed(motor_current_speed + increment);
}
void motorSlowDown()
{
int increment = (motor_current_speed < 100) ? motor_increment + 2: motor_increment ;
motorSetSpeed(motor_current_speed - increment);
}
void motorStop()
{
motor.write(0);
}
void motorStartAt(int start_speed)
{
int i;
for (i=0; i < start_speed; i+=5)
{
motorSetSpeed(i);
Serial.println(i);
delay(10);
}
}
void setup()
{
Serial.begin(9600);
delay(1000);
motor.attach(MOTOR_PIN);
motorStartAt(MOTOR_START_SPEED);
delay(1500);
}
void loop()
{
if (!max_reached)
{
motorSpeedUp();
} else
{
motorSlowDown();
}
if (motor_current_speed < MOTOR_START_SPEED)
{
max_reached = 0;
} else if (motor_current_speed > MOTOR_MAX_SPEED)
{
max_reached = 1;
}
delay(50);
}
