I accidently shorted pins 10 and 11 with 10 set to output HIGH and 11 set to input. The pin 11 is not working. How do I figure out what component I burned?
Can the problem be fixed?
I accidently shorted pins 10 and 11 with 10 set to output HIGH and 11 set to input. The pin 11 is not working. How do I figure out what component I burned?
Can the problem be fixed?
Assumption: As the specific Arduino model has not been specified, using the Arduino Uno to illustrate this answer. The rationale applies identically to the other Arduinos, for their respective pin-outs and microcontroller operating voltages.
Please refer to this pin-out diagram for the Arduino Uno: (source)
Now let us examine the alternative possibilities:
Having said all that, if for whatever reason Pin 11 no longer performs input or output, the MCU's corresponding internal protection circuitry is irrevocably damaged. There is no way to repair this. This has been covered well in the answer by Manishearth.
Consider yourself fortunate that the entire microcontroller did not get destroyed, and re-code your applications to not use Pin 11 any more.
Personal tip: I've blocked the VIN sockets on my Arduino boards a long time ago by sticking some stripped insulation into them, to avoid ever accidentally exposing any jumper wire to that voltage. If I ever actually need to use VIN some day, I'll spend a delightful hour struggling to extract that bit of insulation stuck in there.
It shouldn't be possible to destroy your pin by shorting input to output. Input pins can handle Vcc-level voltage, so they should be able to handle the lower output voltage from the other pin. Also, they have a high impedance, so that should protect them from most things. (See Anindo's answer on this same question for more details on this). In your specific case, I guess one of the following happened:
However, you can destroy pins with the following connections (taken from this excellent post, there are many more in-general ways of destroying an Arduino there):
Regarding what to do in general when you destroy a pin:
In such cases, the microcontroller pin is burned out and can't be fixed. Thee only way to fix this is to replace the microcontroller (if it's a DIP package this is relatively cheap and easy) or buy a new board. When replacing the microcontroller, you will have to burn the bootloader onto the new microcontroller(unless you got it with the bootloader) if you wish to program the Arduino via USB.
Taking a look at the schematics, the following boards have pins directly connected to the microcontroller.
On the following boards, there are some pins which are protected and hard to burn out:
However, if you burn a pin on these, there's not much more you can do than replace the microcontroller.
If you seem prone to pin-burning, you may want to try out the ruggedduino.
Another fairly cheap thing to try is to buy another atmega328, unload your suspected damaged chip, load up the new one into the socket, burn the bootloader And see if that helps. Assuming your board has a socketed DIP atmega328.