Wednesday, 25 December 2019

Interfacing of 16 x 2 LCD Display Module with Arduino

In this Tutorial of Interfacing of 16 x 2 LCD Display with Arduino, we will learn how to connect an LCD (Liquid Crystal Display) to the Arduino board. LCD's like these are very popular and broadly used in electronics projects as they are good for displaying information like sensors data from your project, and also they are very cheap.





    Pinout of 16 x 2 LCD :

    Pin No:

    Pin Name:

    Description

    1

    Vss

    Ground pin connected to system ground

    2

    Vcc

    Powers the LCD with +5V (4.7V – 5.3V)

    3

    VE

    Decides the contrast level of display i.e. dimming the brightness or increasing the brightness of LCD. Grounded to get maximum contrast.

    4

    RS

    There are two very important registers inside the LCD. The RS pin is used for the selection of these registers. If RS = 0, the instruction command code register is selected, which allows the user to send commands for the LCD such as clear display, cursor at home, and so on. If RS = 1, the data register is selected. It allows the user to send data that is to be displayed on the LCD.

    5

    R/W

    This pin toggles the display among the read or writes operation, and it is connected to a microcontroller unit pin to get either 0 or 1 (0 = Write Operation, and 1 = Read Operation).

    6

    E

    Sends data to data pins when a high to low pulse is given; Extra voltage push is required to execute the instruction and EN(enable) signal is used for this purpose. This pin should be held high to execute Read/Write process, and it is connected to the microcontroller unit & constantly held high.

    7

    D0

    Data pins 0 to 7 forms a 8-bit data line. They can be connected to Microcontroller to send 8-bit data.

    These LCD’s can also operate on 4-bit mode in such case Data pin 4,5,6 and 7 will be left free.

    8

    D1

    9

    D2

    10

    D3

    11

    D4

    12

    D5

    13

    D6

    14

    D7

    15

    A

    Backlight LED pin positive terminal

    16

    K

    Backlight LED pin negative terminal

     

     



    Features of 16 x 2 LCD Module :

    • Operating Voltage is 4.7V to 5.3V.
    • Current consumption is 1mA without backlight.
    • Alphanumeric LCD display module, meaning can display alphabets and numbers.
    • Consists of two rows and each row can print 16 characters.
    • Each character is build by a 5×8 pixel box.
    • Can work on both 8-bit and 4-bit mode.
    • It can also display any custom generated characters.
    • Available in Green and Blue Backlight.

    Components Required :

    1 x Breadboard ( FlyRobo : http://bit.ly/2rwkVT3 ; Robu.in : http://bit.ly/2PrO9dU )
    1 x Arduino Uno ( FlyRobo : http://bit.ly/2rwkVT3 ; Robu.in : http://bit.ly/2PrO9dU )
    1 x (16 x 2 LCD Module) ( FlyRobo : http://bit.ly/2PRH5IQ ; Robu.in : http://bit.ly/2MsCBX3 )
    Jumper Cables  ( FlyRobo : http://bit.ly/2qzBQ6L ; Robu.in : http://bit.ly/2LzGwRq )
    Arduino USB Cable

    Circuit Diagram :


    LCD PIN

    ARDUINO PIN

    Vss

    GND

    Vdd

    5V

    V0

    D6

    RS

    D12

    RW

    GND

    E

    D11

    D0

    -

    D1

    -

    D2

    -

    D3

    -

    D4

    D5

    D5

    D4

    D6

    D3

    D7

    D2

    A

    5V

    K

    GND

     



    Source Code :


       
     /*  
       
            16 x 2 LCD Display with Arduino  
       
                 HarshTronics  
       
            For More :  
            https://www.harshtronic.blogspot.com  
            https://www.instagram.com/harshtronics  
              
      */  
       
     #include <LiquidCrystal.h>            // includes the LiquidCrystal Library   
     LiquidCrystal lcd(12, 11, 5, 4, 3, 2);      // Creates an LC object Parameters: (RS, E, D4, D5, D6, D7)   
     int contrast = 100;  
       
     void setup()   
     {   
      analogWrite(6,contrast);  
      lcd.begin(16,2);                         // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display }   
     }  
       
     void loop()   
     {   
      lcd.setCursor(3,0);   
      lcd.print("Welcome to");               // Prints "Welcome to" on the LCD   
      delay(3000);                           // 3 seconds delay   
      lcd.setCursor(2,1);                    // Sets the location at which subsequent text written to the LCD will be displayed   
      lcd.print("HarshTronics");            // Prints "HarshTronics" on the LCD  
      delay(3000);                          // 3 seconds delay   
      lcd.clear();                          // Clears the display   
       
      lcd.setCursor(4,0);  
      lcd.print("Arduino");                 // Prints "Arduino" on the LCD   
      delay(3000);                         // 3 seconds delay   
      lcd.setCursor(2,1);                  // Sets the location at which subsequent text written to the LCD will be displayed   
      lcd.print("LCD Tutorial");   
      delay(3000);   
      lcd.clear();                        // Clears the display   
       
      lcd.setCursor(0,0);   
      lcd.print("Subscribe on");  
      lcd.setCursor(3,1);   
      lcd.print("Youtube");   
        
      for (int positionCounter = 0; positionCounter < 4; positionCounter++)   
      {  
       lcd.scrollDisplayRight();        // scroll one position right  
       delay(1000);  
      }  
        
      for (int positionCounter = 4; positionCounter > 0; positionCounter--)   
      {  
       lcd.scrollDisplayLeft();        // scroll one position left  
       delay(1000);  
      }  
        
      lcd.clear();  
       
      for(int i=0;i<=7;i++)  
      {  
       lcd.setCursor(i,0);  
       lcd.blink();                   //Displays the blinking LCD cursor   
       delay(1000);  
      }   
       
      lcd.noBlink();                 // Turns off the blinking LCD cursor   
        
      for(int i=7;i<=15;i++)  
      {  
       lcd.setCursor(i,0);  
       lcd.cursor();                // Displays an underscore (line) at the position to which the next character will be written   
       delay(1000);   
      }  
        
      lcd.noCursor();               // Hides the LCD cursor   
      lcd.clear();                  // Clears the LCD screen   
     }  
       
     /*  
                 HarshTronics  
       
            For More :  
            https://www.harshtronic.blogspot.com  
            https://www.instagram.com/harshtronics  
              
      */  
    



    Feel free to ask any question in the comments section below.

    No comments:

    Post a Comment