Hello community,
I recently started working with an arduino for a student project.
I was reading about digital pins in the arduino docs (https://docs.arduino.cc/learn/microcontrollers/digital-pins), which state that input pins are said to be in a high impedance state, but I don't quite get why...
So I would be glad for a more in dept explanation.
Thanks in advance^^
In contrast to output pins, which are designed to deliver a reasonable amount of current (low impedance), are input pins designed to consume as little current as possible - what's equivalent to high impedance.
Inside the controller the physical pins can be switched to either their physical output amplifier or input circuit, corresponding to OUTPUT and INPUT mode.
Thanks for the answer.
So if I got this right now the drawing of current is supposed to be minimal, but signal voltage getting to the pin is supposed to be maximal? (I read this on wikipedia aswell: Impedance bridging - Wikipedia)
Are you familiar with Ohm's Law? Current is proportional to voltage and inversely proportional to resistance (or impedance). Resistance (or impedance) is "the resistance to current flow".
The voltage "is what it is" and with super-high input impedance the supplied voltage doesn't change when connected to an Arduino input.
This is true with most circuits... The voltage is usually (nearly) constant or controlled and the current depends on the load.
As the load resistance/impedance becomes low relative to the source impedance you get a -voltage divider.
But usually we don't want to make a voltage divider with the source resistance, If you draw too much current from an output or a power supply "bad things" can happen. Here in the U.S. we have 120VACc at the power outlet and if you plug-in too many high-current appliances the breaker blows and the voltage drops to zero.
The 328p documentation states that 'pins are tri-stated when a reset condition becomes active'
The 'chip' has no idea what to do when it boots (resets). Anything connected to the micro could be turned off/on if they go to some active state. Tri-state allows the signals not to control stuff until you set it via the program..
They are in an input state, because all registers are reset to the default on reset and the DDRB (data direction register, in this case B) will consist of all zeros indicating inputs... also why you don't have to configure them for inputs.