กันยายน 21, 2018, 02:18:24 am *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
   หน้าแรก   ช่วยเหลือ เข้าสู่ระบบ สมัครสมาชิก  
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: การต่อใช้งาน LCD-I2C 1602 กับ Arduino  (อ่าน 1365 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
eazyelec
Newbie
*
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1



| |
« เมื่อ: กันยายน 25, 2016, 07:27:15 pm »

 cheesy cheesy cheesy cheesy
ขั้นตอนที่1 การเตรียมอุปกรณ์


  •    Board Controller Arduino UNO R3
        LCD + I2C 1602 (16 ตัวอักษร 2 บรรทัด) ซึ่งของที่ผมใช้อยู่ I2C จะบัดกรีติดกับ LCD มาให้เรียบร้อยแล้ว
        สายจัมเปอร์ 4 เส้น

ขั้นตอนที่2 ดาวน์โหลด Library

เพื่อให้ง่ายต่อการเขียนโค๊ด ให้ทำการดาว์นโหลดไลบรารีสำเร็จรูป ดาวน์โหลด หลังจากดาวน์โหลดเรียบร้อยแล้วให้ทำการติดตั้งให้ Arduino IDE ได้เลย

ซึ่งไลบราลี่ที่เราจำเป็นต้องใช้คือ LiquidCrystal_I2C.h
ขั้นตอนที่3 การเชื่อมต่อ

ขั้นตอนนี้ง่ายมากสำหรับ Arduino โดยใช้สายไฟเพียงแค่ 4 เส้น สำหรับ 5 V, GND, SDA แะล SCL โดยตำแหน่งการต่อสายขึ้นอยู่กับรุ่นของบอร์ดด้วย

ซึ่งตอนนี้ที่ผมใช้คือ Arduino UNO R3 ใช้ขา A4 ต่อเข้ากับขาข้อมูล SDA และ A5 ต่อเข้ากับขานาฬิการ SCL

การต่อไฟเลี้ยงผมไม่แนะนำให้ใช้ไฟ 3.3 V นะครับ เพราะตัวอักษรสว่างไม่มากพอ แถบจะมองไม่เห็นเลยทีเดียว แนะนำให้ใช้ 5V
Arduinu ==>LCD-I2C
5V        ==>VCC
GND     ==>GND
A4        ==>SDA
A5        ==>SCL

 
ชั้นตอนที่4 หา I2C address

เนื่องจากในการติดต่อสื่อสารกันของตัว LCD แบบ I2C เราจำเป็นต้องทราบถึงที่อยู่หรือแอดเดรสของตัวอุปกรณ์ก่อน ซึ่งบางครั้งเราก็ไม่รู้และก็ไม่มีคู่มือบอกซะด้วย ดังนั้นให้ใช้ Code ข้างล่างต่อไปนี้ในการค้นหา I2C address ของอุปกรณ์ที่ต่ออยู่ ซึ่งโดยปกติก็จะเป็น 0x27 หรือ 0x37 ซึ่งหลังจากรันโปรแกรมแล้วก็ให้กดตรงปุ่ม Serial monitor ด้านขวาบนของโปรแกรม อย่างของผมแอดเดรสจะเป็น 0x27

//Written by Nick Gammon
// Date: 20th April 2011

#include <Wire.h>

void setup() {
  Serial.begin (9600);

  // Leonardo: wait for serial port to connect
  while (!Serial)
    {
    }

  Serial.println ();
  Serial.println ("I2C scanner. Scanning ...");
  byte count = 0;
 
  Wire.begin();
  for (byte i = 1; i < 120; i++)
  {
    Wire.beginTransmission (i);
    if (Wire.endTransmission () == 0)
      {
      Serial.print ("Found address: ");
      Serial.print (i, DEC);
      Serial.print (" (0x");
      Serial.print (i, HEX);
      Serial.println (")");
      count++;
      delay (1);  // maybe unneeded?
      } // end of good response
  } // end of for loop
  Serial.println ("Done.");
  Serial.print ("Found ");
  Serial.print (count, DEC);
  Serial.println (" device(s).");
}  // end of setup

void loop() {}

 
ขั้นตอน5 เริ่มเขียนโค้ด

#include <Wire.h>
#include <LiquidCrystal_I2C.h> // ประกาศใช้งาน Library ที่ไปดาวน์โหลดมา
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2); //กำหนด Address ที่ 0x27
void setup()
{
// initialize the LCD
lcd.begin();
// Print a message to the LCD.
lcd.print("Hello!!!"); //ฟังก์ชั่นในการกำหนดข้อความที่ต้องการแสดงผล
lcd.setCursor(0, 1); //ฟังก์ชั่นในการกำหนดตำแหน่ง Cursor
lcd.print("Eazyelec.com");
}
void loop()
{
}


จากที่ทดลองมาตัวโปรแกรมยังไม่รองรับภาษาไทยนะครับ
ที่มา: Eazyelec.com





บันทึกการเข้า

Nannette
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 2


| |
« ตอบ #1 เมื่อ: มีนาคม 09, 2018, 12:30:20 pm »

ก็ไม่ยากอย่างที่คิด ยังไงก็ต้องชมคนที่บอกเทคนิคนี้ด้วยนะครับ เพราะมันช่วยให้คนที่ไม่รู้ได้มากครับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป: