ESC/Motor Response

Welcome to RCTalk

Come join other RC enthusiasts! You'll be able to discuss, share and private message with other members of our community.

This site may earn a commission from merchant affiliate
links, including eBay, Amazon, and others.

mattwold42

RC Newbie
Messages
2
Reaction score
0
I am running a 1400KV 12N14P brushless motor with a 40A ESC and 4S Lipo battery. I have my ESC connected to my arduino and a potentiometer connected as well. I have my arduino sending potentiometer and ESC values back to my serial monitor. I've mapped the 0-1023 range from my potentiometer to output a range of 1000-2000ms pulsewidth to the ESC. When I rotate the potentiometer I can see on my serial monitor that there is a smooth linear relationship to the values sent to the ESC. The issue I'm having is that my motor is only responding to my ESC values in increments of 100. For example, the motor won't respond until I send 1100 and then it jumps up again at 1200, and so on. The motor responds to 1100-1199 signals all the same. And this is true for all increments of 100 up to 2000. Is this an issue with my ESC itself, or perhaps the compatibility between the ESC and motor? Thanks in advance.
 
have you calibrated your esc with your arduino setup? I've only used a arduino board as a dongle for my rx from my radiopost v2 to run my sim on my comp..

also the radios we use have a neutral zone the esc is brake for use thats why the esc does nothng till 1000.
set a brake # in your programming then recalibrate esc to your new setting...can't be exact in @s to help you more
 
Last edited:
have you calibrated your esc with your arduino setup? I've only used a arduino board as a dongle for my rx from my radiopost v2 to run my sim on my comp..

also the radios we use have a neutral zone the esc is brake for use thats why the esc does nothng till 1000.
set a brake # in your programming then recalibrate esc to your new setting...can't be exact in @s to help you more

Here is my Arduino code. I’ve manually calibrated my ESC for the min an max of my potentiometer.

#include <Servo.h>

// Define the ESC control pin
const int escControlPin = 9; // Connect the signal wire of ESC to pin 9

// Define the potentiometer pin
const int potPin = A0; // Connect the middle pin of the potentiometer to analog pin A0

// Create a servo object to control the ESC
Servo esc;

void setup() {
// Initialize Serial communication for debugging
Serial.begin(115200);

// Attach the ESC to the ESC control pin
esc.attach(escControlPin);
}
void loop() {
// Read the value from the potentiometer
int potValue = analogRead(potPin);

// Map the potentiometer value (0-1023) to the ESC pulse range (1000-2000)
int escValue = map(potValue, 0, 1023, 1000, 2000);

// Output the ESC value to the ESC control pin
esc.writeMicroseconds(escValue);

// Print the potentiometer and ESC values for debugging
Serial.print("Potentiometer Value: ");
Serial.print(potValue);
Serial.print(" | ESC Value: ");
Serial.println(escValue);

// Delay for stability
delay(10);
}
 
Back
Top