I/O Pin Voltage – What It Means in Arduino

arduinologic-levelvoltage

I'm trying to figure out the Seeed Studio XIAO board (essentially a smaller version of the Arduino) and I noticed that there was a line in the specifications saying "All the I/O pins are 3.3V, please do not input more than 3.3V, otherwise, the CPU may be damaged." I'm very new to electronics so my question is, what exactly does this mean? How do I control input voltage?

For example, if I were to power a push button by connecting it to the board's 5V and ground pins, and then connect another leg of the button to one of the board's digital I/O pins, would this be allowed? Or would this burn the circuit because 5V is too high?

Best Answer

In the case of an input, it means don't connect a voltage higher than 3.3V to the pin.

In the case of an output, it usually means that the pin will output either 0V (or close to), or 3.3v (or close to).


In your example with a button connected to the 5V rail, pressing the button would connect 5V to the pin. 5V is higher than 3.3V, so yes you would damage the pin.

Instead you should connect the button to a 3.3V power rail, or to a potential divider which reduces the button voltage to under 3.3V. You can also connect the push button to GND, and use a pull-up resistor to 3.3V.

Good vs Bad Circuits