Senin, 24 Februari 2014

Program i2c display pada arduino uno, mega 2560, dan leonardo


Pada tutorial ini saya akan menunjukkan cara menghubungkan lcd display yang menggunakan interface i2c dengan arduino. Sebelum itu kita perlu memperhatikan i2c backpack pada lcd yang akan kita pergunakan, karena ternyata ada berbagai jenis i2c backpack yang beredar di pasaran dan setiap jenisnya menggunakan library yang berbeda. Lcd yang saya gunakan memiliki kode GY-IICLCD pada bagian backpack. Untuk library yang digunakan nanti akan saya sertakan link downloadnya pada bagian akhir postingan.
connect:

100_8987i2c display        Arduino uno                 
vcc---------------------- 5V
scl----------------------- A5
sda---------------------- A4
gnd--------------------- GND



100_8985
i2c display        Arduino leonardo                  
vcc---------------------- 5V
scl----------------------- pin3
sda---------------------- pin2
gnd---------------------- GND



100_8988i2c display        Arduino mega 2560                 
vcc---------------------- 5V
scl----------------------- pin20
sda---------------------- pin21
gnd---------------------- GND



Example program yang digunakan:

/* STARobotic.com Example Software Sketch
20 character 4 line I2C Display
Backpack Interface labelled "LCM1602 IIC  A0 A1 A2"
STARobotic.com */
/*-----( Import needed libraries )-----*/
#include <Wire.h>  // Comes with Arduino IDE
// Get the LCD I2C Library here:
//
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.
#include <LiquidCrystal_I2C.h>

/*-----( Declare Constants )-----*/
//none
/*-----( Declare objects )-----*/
// set the LCD address to 0x27 for a 20 chars 4 line display
// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x20, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE);  // Set the LCD I2C address

/*-----( Declare Variables )-----*/
//none

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  Serial.begin(9600);  // Used to type in characters

  lcd.begin(16,2);         // initialize the lcd for 16 chars 4 lines
// NOTE: Cursor Position: CHAR, LINE) start at 0 
  lcd.setCursor(0,0);
  lcd.print("Hello, world!");
  delay(1000);
  lcd.setCursor(1,1);
  lcd.print("  STARobotic  ");
  delay(1000); 
  lcd.setCursor(0,0);
  lcd.print("1602 Display");
  lcd.setCursor(0,1);
  delay(5000);
// Wait and then tell user they can start the Serial Monitor and type in characters to
// Display. (Set Serial Monitor option to "No Line Ending")
  lcd.setCursor(0,0); //Start at character 0 on line 0
  lcd.print("Start Serial Mon");
  lcd.setCursor(0,1);
  lcd.print("Type chars 2 lcd");  

}/*--(end setup )---*/
void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
  {
    // when characters arrive over the serial port...
    if (Serial.available()) {
      // wait a bit for the entire message to arrive
      delay(100);
      // clear the screen
      lcd.clear();
      // read all the available characters
      while (Serial.available() > 0) {
        // display each character to the LCD
        lcd.write(Serial.read());
      }
    }
  }

}/* --(end main loop )-- */
/* ( THE END ) */
 
Arduino i2c lcd library, click:
STARobotic












3 komentar: