Here's that photo for all to see:
And, using "conventional current", when an Arduino output goes HIGH, the current flows out of the Arduino output, through the LED, through the resistor and then through the breadboard rail [labeled as "-"], through the black wire to the Arduino Gnd pin [assuming that is truly where that black wire is connected -- I can't tell for sure from the photo and I'm too lazy, right now, to dig out one of my Arduino Uno's].
When one of the Arduino outputs, on one of those LED circuits, goes LOW, there is no [appreciable] current flowing. Why? Because, when the Arduino output is LOW, it is a around the same voltage as the rest of the circuit. No voltage difference, no current.
There is a formula called Ohm's Law that mathematically tells the story:
** **E = IR** **
What this says is, the Voltage across the circuit "
** **E** **
" is equal to the Current "
** **I** **
" flowing through the circuit, times the total Resistance of the circuit "
** **R** **
". So, from this you can see that if
** **E** **
is 0, then
** **I** **
will always be zero, no matter what
** **R** **
is.
When the Arduino output, on one of those LED circuits, goes HIGH, it's at around 5V, and the other end of the circuit is connected to Gnd, then current will flow, because the voltage at Gnd is zero and the voltage across the circuit is 5V - 0V = 5V.
If an Arduino output goes LOW on one of those LED circuits, then it's at around 0V. And, because the other side of each of the LED circuits is at 0V, NO current flows, because the voltage across the circuit is 0V - 0V = 0V
The case of the Pushbutton is similar, but different in a distinguishing way. When the button is pressed, the current flows into the red wire, from the +5V supply, then through the switch, then through the 10k resistor to that "ground rail", where it flows to the black wire, which takes it back to the Arduino.
The LED circuits are being driven by the Arduino. The pushbutton, being an input device, drives the Arduino input.
Notice that nothing physically changes in the LED circuit, whereas, the Pushbutton electrically changes when it's pressed. Also, on the Arduino end, on the pushbutton circuit, it's an input, not an output [as stipulated by the code in the sketch that is loaded in the Arduino]. When the pushbutton is NOT being pressed, NO current flows -- why? Because the open pushbutton behaves like a really large resistance. And if you plug this into Ohm's Law, you can see why no current flows:
I = E/R = 5V/∞ = 0
Also, the 10k resistor holds the Arduino input to Gnd [or 0V]. To really see why, I would need to talk about voltage dividers -- and I'm running out of time!
When the pushbutton is pressed, it becomes a 0Ω resistor [or nearly 0Ω--i.e. for all intents and purposes, at least in this case, it is 0]. So, it basically, shorts the Arduino input to 5V. Current flows from the +5V rail, through the switch, through the resistor, to Gnd. Because the switch is, essentially, 0Ω, all of the 5V is across the 10k resistor, thus by ohm's law:
I = E/R = 5V/10k = 0.5mA or 500µA
So, the current flowing through the 10k resistor [and through the closed switch], is 500µA.
The Arduino output gets that current from the 5V power supply. Which power supply depends on how the Arduino is being powered [e.g. from a USB connector, from a WallWart plugged into the power jack, etc. -- in your photo, there doesn't appear to be anything powering the Arduino]
Let me [us] know if that doesn't answer the question.