Did I fry my Arduino?

I had my arduino working last week and I went to plug it in and work with the mechanics and now my servos aren't working. I was working on getting it wired into my system with a 12v wall wort before it stopped working.

When I plug it into the laptop everything looks good and I can program it, but there is no motion with my servo. I tried the sweep program and wired up the servo straight to the board with no action. The L LED starts off, but then slowly turns on for no reason. I tried the blink program and everything works there, both through the laptop usb power and external power source.

Did I fry the board, or is there something funky going on?

Thanks

How many and what kind of servos do you have?
Are powering the servos with an external supply or from the Arduino 5V pin?

To see if my board was fried I was powering the small 9g servo right off the board.

Before I removed the board from my system, I was powering a 40KG digital servo off of a 7.4 volt power supply. When that wasn't working I tried to hook the simple 9g servo in place of the larger servo as a trouble shooting step, and nothing was happening. Seemed like the board was getting the signals to move the servo, but nothing was happening.

Is there a ground connection between your Arduino and the Servo supply? That is necessary.

Not a good idea, even those little servos can draw more current than a Arduino can supply wihout damage to the Arduino.
However that does not explain why it stopped working before you did that.

Time to post your code and a wiring diagram so we can see what you are doing.

This is exactly what I wired up to test my board...

with it plugged into both my laptop and an external USB power supply.

nothing happens, even changed the servo pin and no servo motion. The L LED slowly comes on, which seems weird.

this is my code (simple servo sweep example):


#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15 ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15 ms for the servo to reach the position
  }
}

Well as I already mentioned, connecting the servo power directly to the Arduino 5V pin can damage the Arduino and if you are lucky and the Arduino is not damaged, it may not work anyway since the Arduino may not be able to supply enough current to power the servo.

Try powering the servo from an external supply NOT the Arduino 5V pin.
Make sure you connect the external supply GND to the Arduino GND

this was my original wiring and code. The VCC was 7.4V. It was working great, then not at all

Your diagram shows the servo connected to the Uno 5V pin
Exactly how was 7.4v connected?

I have a power converter that goes from 12V in to 7.4V out. I just connected the red wire of the servo to the 7.4+ wire and then connected the black wire to the ground of the arduino.

Looks like my project didn't save before I shared it, sorry. Here it is

You need to connect the converter ground (or minus output) to the servo black wire AND to the Arduino GND, otherwise it won't work.

okay, it worked before, but I'll make sure to hook it up like that in the future. Back to the original question... is my board fried, as the simple servo setup isn't working at all?

From the symptoms you described it's hard to say yes or no.
Maybe just some of the digital I/O pins are damaged.
Try using he A0 pin as the Servo output and see if it works

no luck... this is the code I gave it with the simple wiring as shown in the youtube video I posted with the orange wire going to A0

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(A0);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15 ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15 ms for the servo to reach the position
  }
}

I already told you several times that connecting a servo to to 5V pin is a sure way to damage the Arduino. So I think you can consider it fried.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.