user70163: I would like to know what I've done wrong. I configured my circuit using the "Hello world tutorial. I got the infamous white square pattern

D7 to pin 2
D6 to pin 3
D5 to pin 4
D4 to pin 5
E to pin 11

My code:
// include the library code:
#include <LiquidCrystal.h>

//LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
LiquidCrystal lcd(2, 3, 4, 5, 11, 12);      // put your pin numbers here

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 0);
  // print the number of seconds since reset:
  lcd.print("hello, world!");
}



user20245: Your picture does not give a clear view of the connections between the Arduino Uno and the LCD module.  However, if we are to follow your description of your connections ...

D7 to pin 2
D6 to pin 3
D5 to pin 4
D4 to pin 5
E to pin 11


... and we assume D7, D6, D5 & D4 are pins on the LCD, then we see that the code is incorrect ...
LiquidCrystal lcd(2, 3, 4, 5, 11, 12);      // put your pin numbers here

... given the LiquidCrystal description here of the syntax of the overloaded (means there are more than one pattern to the passed parameters to the identically named constructor) class ...
Syntax

LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7) 

... instead, try:
LiquidCrystal lcd(?, 11, 5, 4, 3, 2);      // put your pin numbers here

... as you didn't tell us how you connected the RS line I have left that value above as a "?".  So this will not compile until you fill in the missing information.
It should be added, based on what can be seen in the picture, that a connection has been made to the LCD's RS & RW pins and no connection has been made to the LCD's E (enable) pin.  But in all the constructor's overloaded versions, there is always an E (enable) pin.  Please take a closer look at your design to determine if this is a problem.

70163: <p>I would like to know what I've done wrong. I configured my circuit using the &quot;Hello world tutorial. I got the infamous white square pattern</p>
<ul>
<li>D7 to pin 2</li>
<li>D6 to pin 3</li>
<li>D5 to pin 4</li>
<li>D4 to pin 5</li>
<li>E to pin 11</li>
</ul>
<p>My code:</p>
<pre class="lang-c++ prettyprint-override"><code>// include the library code:
#include &lt;LiquidCrystal.h&gt;

//LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
LiquidCrystal lcd(2, 3, 4, 5, 11, 12);      // put your pin numbers here

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print(&quot;hello, world!&quot;);
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 0);
  // print the number of seconds since reset:
  lcd.print(&quot;hello, world!&quot;);
}
</code></pre>
<p><a href="https://i.stack.imgur.com/KAviY.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/KAviY.jpg" alt="the infamous squares" /></a></p>
 20245: <p>Your picture does not give a clear view of the connections between the Arduino Uno and the LCD module.  However, if we are to follow your description of your connections ...</p>
<blockquote>
<pre><code>D7 to pin 2
D6 to pin 3
D5 to pin 4
D4 to pin 5
E to pin 11
</code></pre>
</blockquote>
<p>... and we assume D7, D6, D5 &amp; D4 are pins on the LCD, then we see that the code is incorrect ...</p>
<pre><code>LiquidCrystal lcd(2, 3, 4, 5, 11, 12);      // put your pin numbers here
</code></pre>
<p>... given the <a href="https://www.arduino.cc/en/Reference/LiquidCrystalConstructor" rel="nofollow noreferrer">LiquidCrystal description here</a> of the syntax of the overloaded (means there are more than one pattern to the passed parameters to the identically named constructor) class ...</p>
<pre><code>Syntax

LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7) 
</code></pre>
<p>... instead, try:</p>
<pre><code>LiquidCrystal lcd(?, 11, 5, 4, 3, 2);      // put your pin numbers here
</code></pre>
<p>... as you didn't tell us how you connected the RS line I have left that value above as a &quot;?&quot;.  So this will not compile until you fill in the missing information.</p>
<p>It should be added, based on what can be seen in the picture, that a connection has been made to the LCD's RS &amp; RW pins and no connection has been made to the LCD's E (enable) pin.  But in all the constructor's overloaded versions, there is always an E (enable) pin.  Please take a closer look at your design to determine if this is a problem.</p>
