How do you confirm a pin has been damaged and is unable to work as a digital input?

I tried detecting a pushbutton (connecting ground to pin 11 with a pullup resistor enabled) on a fresh Arduino Uno and digitalRead() always registers 0, regardless of the pushbutton state.

To confirm it wasn't my pushbutton's wiring, I tested it on some other pins, and they register the button press perfectly. I then tested pin 11 as an output, and it was able to blink and LED just fine.

The Arduino's pretty new, and I don't remember doing anything with it that would have damaged anything, much less pin 11, but is it fair to say that pin has somehow been damaged? As far as I can tell, everything else on the Arduino works perfectly.

  • 2
    Try using an external pull-up. It might just be that the internal pull-up is fried, and not the input logic.
    – Gerben
    Nov 26, 2015 at 10:10
  • Check your breadboard if you are using one. I thought that my pin was fried one time, but it turned out that the breadboard wasn't working in that area(no connection).
    – shurup
    Sep 22, 2016 at 18:08

1 Answer 1


Yes, it sounds like that pin is fried.

You seem to have done all the things I would recommend:

  1. Try your circuit on a different pin (works fine)
  2. Try your circuit on the same (faulty) pin on a different microcontroller (works fine)

If you get different results between two chips that should be the same with the same code running on them then one of them is most likely faulty in some way, or has some other setting in it (fuse setting) that could be affecting it. I am not aware of any settings like that on the '328P, certainly none that you would change without knowing you had changed them.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.