Before I take on the project of taking the user input, of course, I had to learn few things first. I started off with tackling adding an LCD.
Here’s how the pins were mapped:
|LCD Pin||Connected to|
|1 (VSS)||Ground (GRD)|
(Note the bridge. The actual connection’s behind the LCD panel)
|2 (VDD)||+5v Arduino Pin|
|3 (Contrast)||Resistor to GRD|
(Note Arduino GRD is connected by a small green wire. It’s also connected to the other side of the breadboard by the GRD bridge)
|4 (RS)||Arduino Pin 2|
|5 (RW)||Arduino Pin 3|
|6 (Enable)||Arduino Pin 4|
|7, 8, 9, 10||No Connection|
|11 (D4)||Arduino Pin 6|
(5 was skipped as I my leads in the wire didn’t have enough space)
|12 (D5)||Arduino Pin 7|
|13 (D6)||Arduino Pin 8|
|14 (D7)||Arduino Pin 9|
|15 Backlight Power (+)||Arduino Pin 10|
|16 Backlight GRD||Ground (GRD)|
11 is my control pin for the Morse Messenger.
The issues I had faced were actually numerous. Didn’t get the backlight to light up for a long time. I found pins 12 & 13 wouldn’t work as control pins. Why? They simply ignored analogWrite(). The piezo wouldn’t beep.
The biggest issue I faced was to ensure my programming is matching with the wiring. This was especially complicated by the pin 12 & 13 refusing to work as control pins.
I still don’t understand many things (such as if the resistors were meant to use up energy so component upstream would receive less electricity why would it need to be connected to GRD & not power? I found the 7 segment display brighten up considerably when I attached the ground directly than through the resistor).