To this wiring setup I want to apply one change: instead of using 5V + GND from the Arduino board, I want to plug my breadboard to an external power supply (still 5V). Now the screen lights up but I have garbage characters displaying instead of the expected hello world string.
You didn't mention which connections you used, so how things er wired up.
So i'll have to assume that is where your problem lies.
Re-check your wiring.
You didn't mention which connections you used, so how things er wired up.
So i'll have to assume that is where your problem lies.
Re-check your wiring.
I reproduced the circuit presented in the Hello World tutorial (I used the exact PINs as told in the tutorial)
Quote:
LCD RS pin to digital pin 12
LCD Enable pin to digital pin 11
LCD D4 pin to digital pin 5
LCD D5 pin to digital pin 4
LCD D6 pin to digital pin 3
LCD D7 pin to digital pin 2
Additionally, wire a 10k pot to +5V and GND, with it's wiper (output) to LCD screens VO pin (pin3). A 220 ohm resistor is used to power the backlight of the display, usually on pin 15 and 16 of the LCD connector
I have a wire that goes from Arduino 5v to the (+) row of my breadboard and another wire that goes from Arduino GND to the (-) row of my breadboard. Then all wires that are supposed to be connected to a 5V are wired to the (+) row and all those expected to be wired to GND are connected to the (-) row. At this point it does work properly.
Then I did not change anything on the breadboard. What I did is that I removed both (+) and (-) wires from the Arduino 5v and GND and plugged a power supply to my breadboard (5V power supply). Now the screen lights up but garbage is displayed instead of "hello world".
My guess is that if some current goes out of Arduino through PINs (2, 3, 4, 5, 11, 12), then it should somehow go back to Arduino's GND PINs to kind of close the loop. Am I guessing right?
LCD's pin 3 does not go to 5 volt.
That side of the pot is supposed to be left open.
But that doesn't explain your problem, it just makes setting the contrast a bit harder.
See my signature, the remarks are there for a reason,
You created two independent power supplies.
One powering the Arduino through the USB port and from your PC (or whatever).
The other one powers the LCD.
This removes the reference for the data sent to the display, only the data lines are connected between the two of them.
Re-insert the black GND wire from your Arduino to the breadboard's GND power connection.
Again: see my signature.
Did you connect all GNDs ?