Go Down

Topic: motor code error (Read 3546 times) previous topic - next topic

AWOL

I know it is a bit late in the game, but do you have the grounds connected?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.


i learned much of the basics now. Now I need to know How to send PWM through port 9 (because it supports PWM).
I found out that my if off when it is at 1500 and at full speed when it is at 2500. Do I need to use analogWrite or somehow be able to use the serial monitor or something else?
How do I set PWM?

AWOL

As far as the Servo library is concerned, all pins support PWM.
Don't think about using analogWrite with a servo or ESC.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

what do I have to do then ?

AWOL

I have no idea.
What are you trying to do?
What does your code look like?
What does it do that you don't want it to, and what doesn't do that you do want it to?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

I need the PWM TO BE 2500
zoomkat gave me the code below. It does not do anything but was the best help  I've had so far. he said that I put the values for angle milliseconds, etc in the serial monitor but when I do, nothing happens just my esc's beeps change each time i type in a number

// zoomkat 10-22-11 serial servo test
// type servo position 0 to 180 in serial monitor
// or for writeMicroseconds, use a value like 1500
// for IDE 0022 and later
// Powering a servo from the arduino usually *DOES NOT WORK*.

String readString;
#include <Servo.h>
Servo myservo;  // create servo object to control a servo

void setup() {
  Serial.begin(9600);
  myservo.writeMicroseconds(1500); //set initial servo position if desired
  myservo.attach(7);  //the pin for the servo control
  Serial.println("servo-test-22-dual-input"); // so I can keep track of what is loaded
}

void loop() {
  while (Serial.available()) {
    char c = Serial.read();  //gets one byte from serial buffer
    readString += c; //makes the string readString
    delay(2);  //slow looping to allow buffer to fill with next character
  }

  if (readString.length() >0) {
    Serial.println(readString);  //so you can see the captured string
    int n = readString.toInt();  //convert readString into a number

    // auto select appropriate value, copied from someone elses code.
    if(n >= 500)
    {
      Serial.print("writing Microseconds: ");
      Serial.println(n);
      myservo.writeMicroseconds(n);
    }
    else
    {   
      Serial.print("writing Angle: ");
      Serial.println(n);
      myservo.write(n);
    }

    readString=""; //empty for next input
  }
}

ALL i NEED TO DO IS TO GET THE MOTOR TO SPIN
(i FORGOT TO MENTION THAT IN MY LAST POST)

AWOL

#38
Jan 05, 2013, 04:20 pm Last Edit: Jan 05, 2013, 04:25 pm by AWOL Reason: 1
Quote
It does not do anything

What do you mean by that?
You are entering numbers in the serial monitor, aren't you?

( when posting code, please use code tags, and please don't SHOUT)

This
Code: [Select]
if(n >= 500)
    {
      Serial.print("writing Microseconds: ");
      Serial.println(n);
      myservo.writeMicroseconds(n);
    }
    else
    {   
      Serial.print("writing Angle: ");
      Serial.println(n);
      myservo.write(n);
    }
isn't really necessary; the Servo library does it for you - any value sent to the Servo write method greater than about 540 is automatically sent to the writeMicroseconds method.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

lIm entering numbers like 1500 and 180,etc.
Nohthing happens except the ESC beeps. The motor does not spin.
It is giving really akward beeps now.
The capitals are accidental and I only realize it when it is too late
sorry for the long wait

Grumpy_Mike

The link you posted to the ESC said that it was controlled by PWM. The servo library produces PPM (pulse position modulation). You need to find out more about what signals your ESC is expecting.

zoomkat

The below is the ESC info. I think that there are too many possible issues that are currently beyond the OP's ability to sort out. the ESC beeps, so it apparently recognizes the commands. No telling what is going on with the wiring, power supplys and such. The OP may require some local help from a parent or hobby shop person to verify wiring and such.

Quote

Electric Speed Control (ESC) for Brushless DC Motors

For use with the ELEV-8 Quadcopter Kit.  ESC's are used on most RC equipment for controlling the speed of a brushless motor.  It is also compatible with a wide variety of 3.3 V and 5 V microcontrollers.  Compatible with a standard RC receiver or any 3.3 V or 5 V microcontroller running the proper pulse-width modulation (PWM).

Features:

Programmable with an ESC programming card so you don't have to use your controller and count the beeps! 
5 V BEC (Battery Eliminator Circuit) 
High Current rating enables worry free operation of varying sized motors   
Compatible with any standard RC receiver that you may have at home
Three-phase electronic control
Cells: 2-3S LiPo Input
Specifications:

Power Requirements: 7.4 - 11.1 VDC
Continuous Maximum Current: 30 A
Communication: PWM
Dimensions: 1.9 x 1.0 x 0.3 inches (48.26 x 25.4 x 7.62 mm)
Weight: 27 grams

Google forum search: Use Google Advanced Search and use Http://forum.arduino.cc/index in the "site or domain:" box.

AWOL

@ OP, I've just deleted yet another new post from you on this same topic.

Don't repeat. Last warning.

Cross-posting WASTES TIME.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

then  someone just help me

AWOL

Quote
then  someone just help me

Help us to help you.
If you start new threads, the people who helped you here may not read your new thread, so overall, you're wasting yours and our time.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Go Up