11-17-2021 12:33 PM
Hello everyone,
I am in need of a method for writing to 12 LCD screens. I am using LabVIEW to control the LCDs and I have decided that I2C will be the best communication protocol. I have never programmed anything for I2C or even programmed a display such as an LCD. For my hardware I was going to use NI-8451 (which I have never used also). LCD I plan on using can be found here https://www.newhavendisplay.com/nhd0216k3zfsrgbfbwv3-p-5736.html?number_of_uploads=0. This LCD has a built on controller which can be found here https://www.newhavendisplay.com/app_notes/PIC16F690.pdf. The only thing that will be written to the LCDs are strings and I will never have to read from the LCD. Just want thoughts on if this is the best method for communicating to these 12 LCDs.
Thank you in advance for the answers and the time, I can really use the help
Solved! Go to Solution.
11-17-2021 12:51 PM
Seems pretty simple and straight forward to me... I would not worry too much about the controller chip. The manual for the Serial Liquid Crystal Display Module tells you everything you should need to know.
You will have to first connect each one individually to set its I2C address, but once that is done connect them all to the I2C bus and it's just a mater of writing to the proper address for each LCD.
11-17-2021 01:22 PM
RTSLVU Thank you for the response!
I also believe it should be very simple, due to my inexperience I have just had a few concerns. One other thing that has concerned me is the 7 bit addressing. Within those 7 bits, 4 of them are fixed and 3 are used for chip select aka selecting different LCDs in my case. So is this not an issue with my system needing 12 displays while 3 bits will only allow for 8 unique addresses? LabVIEW does have a 10 bit addressing format, but that is not supported with my LCD. Any help on how to mitigate that issue would be appreciated.
Thanks in advance for your responses
11-17-2021 02:17 PM - edited 11-17-2021 02:18 PM
@rholz wrote:
RTSLVU Thank you for the response!
I also believe it should be very simple, due to my inexperience I have just had a few concerns. One other thing that has concerned me is the 7 bit addressing. Within those 7 bits, 4 of them are fixed and 3 are used for chip select aka selecting different LCDs in my case. So is this not an issue with my system needing 12 displays while 3 bits will only allow for 8 unique addresses? LabVIEW does have a 10 bit addressing format, but that is not supported with my LCD. Any help on how to mitigate that issue would be appreciated.
Thanks in advance for your responses
You are over thinking it...
The manual for the LCD says:
The default I2C address is 80 (50 hex) when counting the R/W bit, and 40 (28 hex) if not. The I2C address can be changed to any 8-bit value by command function, with the exception that the LSB (least significant bit) must always be ‘0’. Once the I2C address has been changed, it will be saved in the system memory, and it will revert back to the default address if either RS-232 or SPI protocol is selected.
11-17-2021 02:36 PM
RTSLVU Thank you so much. This cleared up a lot for me!
I appreciate it.