Just got this 16x2 HD44780 controller from Hacktronics. After reading for a while, and realizing that using just the specified the Arduino wiring is not enough, I landed on Pete Brown's blog post.
I followed his instructions (almost) to the letter:
- I soldered the head pins into place (been a while - man, I'm rusty)
- I checked the continuity of my 16 pins
- I connected all pins as specified in the post, using a mini breadboard, with the exception of Pin 3.
I do not have a potentiometer, so I just connected that pin to GND
lcdPins.png 20.82KB 61 downloads - I downloaded the library from Codeplex
- I added the sample code specified in the article
public static void Main() { var lcdProvider = new GpioLcdTransferProvider( Pins.GPIO_PIN_D12, // RS Pins.GPIO_NONE, // RW Pins.GPIO_PIN_D11, // enable Pins.GPIO_PIN_D9, // d0 Pins.GPIO_PIN_D8, // d1 Pins.GPIO_PIN_D7, // d2 Pins.GPIO_PIN_D6, // d3 Pins.GPIO_PIN_D5, // d4 Pins.GPIO_PIN_D4, // d5 Pins.GPIO_PIN_D3, // d6 Pins.GPIO_PIN_D2); // d7 // create the LCD interface var lcd = new Lcd(lcdProvider); // set up the number of columns and rows: lcd.Begin(16, 2); // Print a message to the LCD. lcd.Write("hello, world!"); while (true) { // set the cursor to column 0, line 1 lcd.SetCursorPosition(0, 1); // print the number of seconds since reset: lcd.Write((Utility.GetMachineTime().Ticks / 10000).ToString()); Thread.Sleep(100); } }
What I got is an LCD in the "on" state showing one line of blocks and nothing I try get it to show anything.
lcd.png 1.65MB 61 downloads
From this I deduce I must have been doing something right, to get the controller powered, but I must be missing something as well.
My only guesses are:
- I screwed something up while soldering (although then I'd expect this to not work at all)
- The potentiometer is a must for Pin 3 - skipping it might have done something
- The list of connections Pete specified is not correct for my board/controller (I have an N+)
Any ideas of what am I doing wrong/missing?
Thanks,
Guy
- Jason Stevenson likes this