Bird
Raised Fist0
Arduinoprogramming~10 mins

16x2 LCD with LiquidCrystal library in Arduino - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to initialize the LCD with 16 columns and 2 rows.

Arduino
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.[1](16, 2);
}

void loop() {
  // Your code here
}
Drag options to blanks, or click blank then click option'
Astart
Bbegin
Cinit
Dsetup
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'start' or 'init' instead of 'begin'.
Trying to set size outside the setup function.
2fill in blank
medium

Complete the code to print the text "Hello, World!" on the LCD.

Arduino
void loop() {
  lcd.[1]("Hello, World!");
}
Drag options to blanks, or click blank then click option'
Aprint
Bwrite
Cdisplay
Dshow
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'write' which prints a single character or byte.
Using non-existent methods like 'display' or 'show'.
3fill in blank
hard

Fix the error in the code to set the cursor to the first column and second row.

Arduino
void loop() {
  lcd.setCursor([1], 1);
  lcd.print("Line 2");
}
Drag options to blanks, or click blank then click option'
A1
B-1
C2
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using 1 for the first column which is actually the second column.
Using negative numbers which are invalid.
4fill in blank
hard

Fill both blanks to clear the LCD and then print "Ready" at the beginning.

Arduino
void loop() {
  lcd.[1]();
  lcd.setCursor([2], 0);
  lcd.print("Ready");
}
Drag options to blanks, or click blank then click option'
Aclear
B1
C0
Dhome
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'home' instead of 'clear' to erase the screen.
Setting cursor to column 1 instead of 0.
5fill in blank
hard

Fill all three blanks to create a scrolling message that moves left on the LCD.

Arduino
void loop() {
  lcd.clear();
  lcd.setCursor([1], 0);
  lcd.print("Scrolling");
  lcd.[2]();
  delay([3]);
}
Drag options to blanks, or click blank then click option'
A15
BscrollDisplayLeft
C300
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Starting cursor at column 15 which is off screen for the message.
Using delay too short or too long for smooth scrolling.

Practice

(1/5)
1. What does the lcd.begin(16, 2) command do in the LiquidCrystal library?
easy
A. It clears the LCD screen.
B. It sets up the LCD screen size to 16 columns and 2 rows.
C. It moves the cursor to the first position.
D. It prints text on the LCD screen.

Solution

  1. Step 1: Understand lcd.begin() function

    The lcd.begin() function initializes the LCD with the number of columns and rows.
  2. Step 2: Apply to given parameters

    Using lcd.begin(16, 2) sets the screen size to 16 columns and 2 rows.
  3. Final Answer:

    It sets up the LCD screen size to 16 columns and 2 rows. -> Option B
  4. Quick Check:

    lcd.begin(16, 2) = sets screen size [OK]
Hint: Remember lcd.begin sets screen size first [OK]
Common Mistakes:
  • Thinking lcd.begin clears the screen
  • Confusing lcd.begin with lcd.print
  • Assuming lcd.begin moves the cursor
2. Which of the following is the correct way to create a LiquidCrystal object for pins 12, 11, 5, 4, 3, 2?
easy
A. LiquidCrystal lcd = (12, 11, 5, 4, 3, 2);
B. LiquidCrystal lcd(2, 3, 4, 5, 11, 12);
C. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
D. LiquidCrystal lcd(12, 11, 5, 4);

Solution

  1. Step 1: Recall LiquidCrystal constructor syntax

    The constructor requires 6 pins: RS, Enable, D4, D5, D6, D7 in order.
  2. Step 2: Match given pins to correct syntax

    LiquidCrystal lcd(12, 11, 5, 4, 3, 2); matches the correct order and number of pins.
  3. Final Answer:

    LiquidCrystal lcd(12, 11, 5, 4, 3, 2); -> Option C
  4. Quick Check:

    Constructor needs 6 pins in order [OK]
Hint: Count pins: constructor needs exactly 6 pins [OK]
Common Mistakes:
  • Using wrong number of pins
  • Wrong pin order
  • Using assignment instead of constructor
3. What will be displayed on the LCD after running this code?
lcd.begin(16, 2);
lcd.setCursor(0, 1);
lcd.print("Hello");
medium
A. Hello on the second row
B. Nothing is displayed
C. Hello on both rows
D. Hello on the first row

Solution

  1. Step 1: Understand lcd.setCursor(0, 1)

    Cursor moves to column 0, row 1 (second row, since rows start at 0).
  2. Step 2: lcd.print("Hello") prints at cursor

    Text "Hello" appears on the second row starting at first column.
  3. Final Answer:

    Hello on the second row -> Option A
  4. Quick Check:

    setCursor(0,1) = second row [OK]
Hint: Rows start at 0, so row 1 is second row [OK]
Common Mistakes:
  • Assuming row 1 is first row
  • Forgetting cursor position before print
  • Expecting text on both rows
4. Identify the error in this code snippet:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
lcd.begin(16, 2);
lcd.setCursor(1, 2);
lcd.print("Hi");
medium
A. Cursor row 2 is invalid for 2-row LCD
B. lcd.begin() is missing
C. lcd.print() syntax is wrong
D. LiquidCrystal object not created properly

Solution

  1. Step 1: Check lcd.setCursor parameters

    Rows are 0 and 1 for a 2-row LCD; row 2 is out of range.
  2. Step 2: Confirm other code parts

    lcd.begin() is present, object created correctly, and print syntax is correct.
  3. Final Answer:

    Cursor row 2 is invalid for 2-row LCD -> Option A
  4. Quick Check:

    Row index must be 0 or 1 for 16x2 LCD [OK]
Hint: Rows start at 0; max row for 2-row LCD is 1 [OK]
Common Mistakes:
  • Using row 2 instead of 0 or 1
  • Forgetting lcd.begin() call
  • Incorrect object creation syntax
5. You want to display the word "Ready" centered on the first row of a 16x2 LCD. Which code snippet correctly sets the cursor before printing?
hard
A. lcd.setCursor(8, 0); lcd.print("Ready");
B. lcd.setCursor(5, 0); lcd.print("Ready");
C. lcd.setCursor(7, 0); lcd.print("Ready");
D. lcd.setCursor(6, 0); lcd.print("Ready");

Solution

  1. Step 1: Calculate starting position for centering

    LCD width is 16 columns; word length is 5 letters. (16 - 5) / 2 = 5.5, round to 6.
  2. Step 2: Set cursor to column 6 on first row (row 0)

    Use lcd.setCursor(6, 0) to start printing "Ready" centered.
  3. Final Answer:

    lcd.setCursor(6, 0); lcd.print("Ready"); -> Option D
  4. Quick Check:

    (16-5)/2 = 5.5 ≈ 6 for centering [OK]
Hint: Center = (screen width - text length) / 2 rounded [OK]
Common Mistakes:
  • Using wrong column for centering
  • Confusing row numbers
  • Not rounding the position
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard