I have two simple programs, one of which is Hello World. To my eyes, the code below seems to be the same, but the way the two different projects is wired are different. For example, in one program, Pin 3 of the LCD is to be connected to the pot wiper. In the other program, Pin 14 of the LCD is to be connected to the pot wiper. In the Hello World sketch, pin 3 is the wiper; pin 4 to A(rduino)12; Pin 5 to Grd; Pin 6 to A11; Pin 11 to A 5; Pin 12 to A4; Pin 13 to A3; Pin 14 to A2.
In the second program, Pin 3 to A2; Pin 4 to A3; Pin 5 to A4; Pin 6 to A5; Pin 11 to A11; Pin 12 to Grd; Pin 13 to A12; Pin 14 to pot wiper.
The two codes are given below. What in the code differentiates between the two different pin assignments?
Both codes enable the same Arduino pin numbers.
LiquidCrystal Library - Hello World
Demonstrates the use a 16x2 LCD display. The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.
This sketch prints "Hello World!" to the LCD
and shows the time.
The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* LCD VSS pin to ground
* LCD VCC pin to 5V
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
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, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}
Second code
/* Arduino Projects for Dummies
* by Brock Craft
*
* Chapter 7: Building an Arduino Clock
* An alarm clock that uses the Adafruit Industries DS1307 RTC Breakout board
* and a 16x2 Parallel LCD Display
*
* This code just tests the LCD display
*
* Uses the default Wire and LiquitCrystal libraries
* and the Adafruit RTC library
*
* v0.1 30.04.2013
* Adapted from http://www.adafruit.com/products/746
*/
#include <Wire.h> // I2C Wire Library for communicating with the DS1307 RTC
#include "RTClib.h" // Date and time functions for the DS1307 RTC connected
#include <LiquidCrystal.h> // Display functions for the LCD Display
RTC_DS1307 rtc; // Create a realtime clock called rtc
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Create an LCD called lcd
void setup () {
Wire.begin(); // Enables the communication for the LCD
rtc.begin(); // Enables the RTC
lcd.begin(16, 2); // Enables the LCD
lcd.print(" It's Alive!"); // Print a message, centered, to the LCD to confirm is working
delay(1000); // Wait a moment so we can read it
lcd.clear(); // Clear the LCD
}
void loop(){
}