I am using my Arduino UNO rev 3 to control other devices via the digital output pins. On startup or reset, I find that these pins are all briefly turned on (perhaps as part of a self test). This interferes with my application. How can I suppress this?
How can I stop my Arduino UNO rev 3 from briefly turning on digital output pins on startup or reset?
-
Which pins specifically? By default most pins are set to INPUT not OUTPUT.– Majenko ♦Sep 3, 2015 at 15:05
-
By default the pins are set to INPUT (except pins 1 which is used by the bootloader for programming). Inputs are however floating, so they don't have any fixed voltage during this stage. The the device attached to the pin might read a HIGH signal. To prevent this add a pull-down (or -up) resistor.– GerbenSep 3, 2015 at 15:47
1 Answer
Digital pin 13 will be turned on briefly as part of the bootloading process (it flashes a few times). Thus this is not a good choice of pin for a device like a motor to be connected to. Also if you are uploading a new sketch the Tx pin (digital pin 1) will be turned on and off.
You can change the processor fuses to not use the bootloader, which would avoid these issues, however then you have to change them back to upload a new sketch - unless you upload using ICSP instead of the bootloader.
As Gerben and Majenko have pointed out, any other issues could be from "floating" pins which some devices might interpret as having a HIGH on them, possibly. Pull-down resistors could help there (or pull-up if that is more appropriate).
The ideal thing could be to structure your system in such a way that the two pins (1 and 13) which come on during the bootloading process are connected to something "harmless" (eg. an LED) rather than "harmful" (eg. a motor).