💡 Elevate Your Projects with Clarity!
The SunFounder IIC/I2C/TWI LCD1602 Display Module is a versatile and user-friendly display solution designed for Arduino and Raspberry Pi enthusiasts. With a compact design that only requires four I/O ports, it supports the IIC protocol and includes a potentiometer for easy adjustments. This lightweight module is perfect for a variety of applications, making it an essential tool for tech-savvy creators.
Standing screen display size | 1 Centimeters |
Screen Resolution | 2560 x 1600 pixels |
Max Screen Resolution | 2560 x 1600 pixels |
Processor | 210 |
Card Description | Dedicated |
Wireless Type | 802.11b |
Brand | SunFounder |
Series | 2004 20x4 LCD Module |
Item model number | TS0351 |
Operating System | ios |
Item Weight | 1.41 ounces |
Product Dimensions | 4.9 x 1.7 x 0.4 inches |
Item Dimensions LxWxH | 4.9 x 1.7 x 0.4 inches |
Color | 16x2 I2C LCD |
Processor Brand | sunfounder |
Number of Processors | 1 |
Voltage | 5 Volts |
Manufacturer | SunFounder |
ASIN | B019K5X53O |
Country of Origin | China |
Is Discontinued By Manufacturer | No |
Date First Available | April 13, 2016 |
K**L
Used with Cypress PS0C 5LP no problem
Despite the Arduino focused listing title, the display is Hitachi compatible using the PCF8574T (in my unit) I2C converter backpack that can work on other processor lines easily. I needed to hook it up to a Cypress PSoc 5LP eval board (CY8CKIT-059). Cypress provides many code examples and auto-generates APIs for library parts like parallel and serial graphics and text displays. The library worked fine with the parallel Hitachi displays including this 4x20. It did not work with this backpack and the I2C library supporting NXP PCF2119x commands. The solution was to find and use a community library (V2.1 as of this date). It also adds a few new functions to integrate position and string and char printing. The default address (no jumpers installed on A0-A2) is 0x27 (7bit), or 0x4E (8bit). The non T version of the PCF8574 may be 3F default. You need to pay attention to the header or library component address entry for which form of address, 7 or 8 bit, is required to be entered as the protocol shifts the address 1 bit position. It is also helpful to run a small routine to scan the I2C bus to see what shows up if yo have any difficulty. Check for the community code at the cypress community website, thread number 11727. The backpack is a common part and you can remove it and use it on other displays, in my case a 2x16 Hitachi compatible display. For a programmable backlight level I cut the trace on the 5V side (top side of board) of the backlight 2 pin header and wired a jumper from the now open pin up to pin 16 on the backpack. My PWM wire supplies 5V and switched ground on a 2 pin 0.100" center plug. I changed it on the backpack so it would work on any display it ever got moved to since not all displays have easy onboard backlight connections or configuration jumper pads.
T**R
A device that works as expected, easy to use, lots of instructions and Arduino library online.
Great product. Go to the website, check out the video, downloaded the library, hooked it up to my generic Arduino using their guides. Before I even loaded the sketch the device sprung to life when the backlight was powered up displaying a default message. I could immediately see the LCDs were displaying well.I loaded the zip library from the website, loaded the sample sketch and ran it and bingo I saw their help world message. Updated it and Bam I saw my message. Googled how to create and display a custom character and did so. Vary happy with the purchase.If paying the price of a side of fries at your favorite fast food place doesn't phase you then I highly recommend spending a couple extra bucks to buy from these guys, and know you are getting something you can enjoy right away.I haven't tried powering this from a device running 3.3 volts but my 5 volt Arduino clone works great with this.
A**N
Great Product, Great Price, Fast Delivery!
Works great! Thanks
A**N
works as intended and of good quality
works as intended and of good quality
R**M
Good for price.
The media could not be loaded. Easy to set up, and works with the standard "LiquidCrystal_I2C" library.Contrast adjustable as described.2 cons:1) Red glow always from the top right and bottom left corners. Not bright, but there.2) A long message line continues from line 0 to line 2, ie. it skips a line, then goes back to line 1, and then to line 3. Not sure if this is fault of the hardware, or the library driver.To note - if I place the cursor on a specific line, it prints the specified message there OK.See code below and video.#include <LiquidCrystal_I2C.h>#include <wire.h>// initialize the library with the numbers of the interface pinsLiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 20 chars and 4 line displaychar message[] = "This is some long message that will end up scrolling on Line0 only";int previous = 0;int pos = 0;void setup(){lcd.init(); //initialize the lcdlcd.backlight(); //open the backlight// Print a message to the LCD.lcd.print(message);delay(5000);lcd.clear();}void printLine(int refreshSeconds){//Check if the current second since restart is a mod of refresh seconds,//if it is then update the display , it must also not equal the previously//stored value to prevent duplicate refreshesif((millis()/500) % refreshSeconds == 0 && previous != (millis()/500)){previous = (millis()/500);//Store the current time we entered for comparison on the next cyclelcd.setCursor(0, 0);//Set our draw position , set second param to 0 to use the top linechar lcdTop[20];//Create a char array to store the text for the lineint copySize = 20; // What is the size of our screen , this could probably be moved outside the loop but its more dynamic like thisif(strlen(message) < 20){//if the message is bigger than the current buffer use its length instead;copySize = strlen(message);}//Store the current position temporarily and invert its sign if its negative since we are going in reverseint tempPos = pos;if(tempPos < 0){tempPos = -(tempPos);}//Build the lcd text by copying the required text out of our template message variablememcpy(&lcdTop[0],&message[tempPos],copySize);lcd.print(lcdTop);//Print it from position 0//Increase the current position and check if the position + 20 (screen size) would be larger than the message length , if it is go in reverse by inverting the sign.pos += 1;if(pos +20 >= strlen(message)){pos = -(pos);}}}void loop(){printLine(1); // Original program linelcd.setCursor(0,1);lcd.print("This is Line1 msg");delay(250);lcd.setCursor(0,2);lcd.print("This is Line2 msg");delay(250);lcd.setCursor(0,3);lcd.print("This is Line3 msg");delay(250);lcd.clear();}
Trustpilot
1 month ago
2 months ago