I don't know if this is also true for your LCD. I found that I had to keep the LCD powered off untill just before this line: Why? I'm calling the power at 5V, digital port transmits many volts? this line is optional? Private static power OutputPort = new OutputPort (Pins.GPIO_PIN_D0, false) Yes, you should absolutely put your address in there.
I haven't tested the above code, which I borrowed from this excellent thread, which may also be of help to you:
OutputPort op = new OutputPort(Pins.GPIO_PIN_SDA, false) As an alternative, you may be able to get it to work by flushing the SDA pin, like so: You can uses a transistor and an output port like I did, or you can just plug the LCD in manually a second or so after the program starts. Lastly, I noted that I had to keep the LCD powered off until just before I was ready to use it. I should also point out that while you may have the same model of shift register, it may not be hooked up the exact same way (I couldn't find a datasheet for your LCD when I looked briefly on that site), so you may need to play around with these settings: In my case, that is 0x3F, it may be the same for you. The important thing to note is that you need to be sure you have the correct I 2C address here: MCP23008LcdTransferProvider lcdProvider = new MCP23008LcdTransferProvider(bus, 0x3F, shifter) Private static BaseShifterLcdTransferProvider.ShifterSetup shifter = new BaseShifterLcdTransferProvider.ShifterSetup() Private static I2CBus bus = new I2CBus() Private static OutputPort power = new OutputPort(Pins.GPIO_PIN_D0, false) There were a few quirks to the display, as I said I had to reassign the pins like so: I take it you're still having problems then. Here is an excerpt from the article, where probably you've seen the library demo: It's up to you decide what's the best for your goal. The "imperative" way, which is what you look for, and the "declarative" one, which is far simpler when you wanna deal with a complex graphics. The LcdBoost has another advantage over the MicroLiquidCrystal: it yields two different approaches of programming. Here is a detailed comparison: The LcdBoost is 12 times faster.
When compared to the MicroLiquidCrystal, the LcdBoost also uses the shift-register and requires just a transistor more, but it is *WAY* faster. However, this may be not an issue, but most of the times the running application does something important other than driving the LCD. I decided to write my own lib, because the MicroLiquidCrystal is *VERY* slow. The most reasonable option is using a very common shift-register as the 74HC595: this will save a lot of I/Os, and performs a bit faster. The original MicroLiquidCrystal works with just a bunch of "wires" from the Netduino to the LCD module, but you'll run easily out of available I/Os. The module you chose offers a little microcontroller that acts as interface I2C/SPI, and maybe also helps with some primitive function.Īt the time of the library development there were none of such a "accelerators". I mean a very basic LCD-module with just the HD44780 controller and nothing more. Lcd.write(1,1, "hello word") //example onlyįirst off, the LcdBoost library is useful only when the display has no "accelerators" like the model you chose.