[SOLVED]Difference between INPUT_PULLUP and an external pull down resistor?

or if something is expecting on to mean HIGH, correct?

Yes. A classic example is a simple SPST momentary push-button switch (a button switch). In reality the switch has only two physical states, being pushed or not being pushed. A mistake a lot of beginners make is assuming that they must wire up the switch such that when pushing it, it creates a HIGH at the input pin it's wired to. That of course would require an external pull-down resistor to place an electrical 0 when the switch is not pressed. The fact that the AVR chip has programmable optional internal pull-up resistor available for every input pin, it makes it simpler and cheaper to just wire the switch between ground and the input pin and then enable the internal pull-up. That means when the switch is pressed it will present a 0 to the input pin and when released a 1 will be read from the pin. That of course means that the programmer has to know that when the value of 0 is read from the pin that it means the switch is being pressed, but that is simply applying the correct logic to the programming statements being performed. So one should not restrict their thinking that a HIGH always means 'on' and a LOW always means 'off', as there is no real restriction on how you can interrupt a given logical state in one's program, it depends only on how the external signals are defined and wired up if it's to be interpreted as 'true logic' or 'negative logic'.

to be Lefty or NOT to be lefty, that is the question to be asked. :wink: