ในบทความนี้จะสอนการต่อจอ LCD ขนาด 16x2 กับ
Arduino โดยจะเชื่อมต่อกับบอร์ด I2C BUS มาแทนแบบเดิมต้องใช้สายต่อถึง16สาย ซึ่งจะช่วยให้ประหยัดสาย อีกทั้งช่วยลดความซับซ้อนของวงจร
ทำไมต้องใช้ I2C BUS โดยปกติแล้วจอมีการส่งคำสั่งเป็นมาตราฐานอยู่แล้วแต่ต้องใช้สายจำนวนมาก(Parallel) เพื่อส่งชุดคำสั่งการนำ I2C BUS มาใช้จะเป็นการเปลี่ยนรูปแบบการส่งข้อมูล แต่ยังใช้ชุดคำสั่งเดิมอยู่ทำให้ไม่ต้องใช้สายเพื่อส่งข้อมูลเยอะเหมือนเดิม
ตัวอย่าง I2C BUS
- i2c.jpg (43.41 KiB) Viewed 2480 times
สามารถปรับความสว่างโดยการหมุนน๊อตในกรอบสี่เหลี่ยมเล็ก
สิ่งที่ต้องเตรียม
Arduino uno ราคาประมาณ 200-300 บาท
LCD ที่มี I2C BUSติดมาให้ ขนาด 16x4 หรือใกล้เคียงกัน ราคาประมาณ 200 บาท
Library
Arduino-LiquidCrystal-I2C
การวางวงจร
- adrdu.jpg (64.48 KiB) Viewed 2480 times
- lcd.jpg (28.24 KiB) Viewed 2480 times
LCD GND >> GND Aduino
LCD VCC >> 5v Aduino
LCD SDA >> SDA aduino
LCD SCL >> SCL arduino
คำสั่ง
โค้ด: เลือกทั้งหมด
#include <Wire.h> //เรียกใช้ไรบรารี่ wire
#include <LiquidCrystal_I2C.h> //เรียกใช้ไรบารี LiquidCrystal_I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); #กำหนดช่อง ช่องสัญญาณ,จำนวนตัวอักษร/แถว,จำนวน
void setup() //กำหนดค่าเริ่มต้น
{
lcd.begin(); //เริ่มการทำงานจอ lcd
lcd.setCursor(0, 0); //ตั้งให้แสดงผลที่บรรทัดที่1
lcd.print("Hello MindPhp"); //แสดงผลข้อความ
lcd.setCursor(0, 1); //ตั้งให้แสดงผลที่บรรทัดที่2
lcd.print("I'm Arduino"); //แสดงผลข้อความ
}
ดูเพิ่มเติม Arduino แบบ VDO แนะนำ
https://www.mindphp.com//forums/viewtop ... 15&t=61980
ในบทความนี้จะสอนการต่อจอ LCD ขนาด 16x2 กับ [url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1/242-iot-internet-of-things/4900-arduino.html]Arduino[/url] โดยจะเชื่อมต่อกับบอร์ด I2C BUS มาแทนแบบเดิมต้องใช้สายต่อถึง16สาย ซึ่งจะช่วยให้ประหยัดสาย อีกทั้งช่วยลดความซับซ้อนของวงจร
ทำไมต้องใช้ I2C BUS โดยปกติแล้วจอมีการส่งคำสั่งเป็นมาตราฐานอยู่แล้วแต่ต้องใช้สายจำนวนมาก(Parallel) เพื่อส่งชุดคำสั่งการนำ I2C BUS มาใช้จะเป็นการเปลี่ยนรูปแบบการส่งข้อมูล แต่ยังใช้ชุดคำสั่งเดิมอยู่ทำให้ไม่ต้องใช้สายเพื่อส่งข้อมูลเยอะเหมือนเดิม
ตัวอย่าง I2C BUS
[attachment=1]i2c.jpg[/attachment]
สามารถปรับความสว่างโดยการหมุนน๊อตในกรอบสี่เหลี่ยมเล็ก
สิ่งที่ต้องเตรียม
Arduino uno ราคาประมาณ 200-300 บาท
LCD ที่มี I2C BUSติดมาให้ ขนาด 16x4 หรือใกล้เคียงกัน ราคาประมาณ 200 บาท
Library [url=https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library]Arduino-LiquidCrystal-I2C[/url]
การวางวงจร
[attachment=2]adrdu.jpg[/attachment]
[attachment=0]lcd.jpg[/attachment]
LCD GND >> GND Aduino
LCD VCC >> 5v Aduino
LCD SDA >> SDA aduino
LCD SCL >> SCL arduino
คำสั่ง
[code]
#include <Wire.h> //เรียกใช้ไรบรารี่ wire
#include <LiquidCrystal_I2C.h> //เรียกใช้ไรบารี LiquidCrystal_I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); #กำหนดช่อง ช่องสัญญาณ,จำนวนตัวอักษร/แถว,จำนวน
void setup() //กำหนดค่าเริ่มต้น
{
lcd.begin(); //เริ่มการทำงานจอ lcd
lcd.setCursor(0, 0); //ตั้งให้แสดงผลที่บรรทัดที่1
lcd.print("Hello MindPhp"); //แสดงผลข้อความ
lcd.setCursor(0, 1); //ตั้งให้แสดงผลที่บรรทัดที่2
lcd.print("I'm Arduino"); //แสดงผลข้อความ
}
[/code]
ดูเพิ่มเติม Arduino แบบ VDO แนะนำ
https://www.mindphp.com//forums/viewtopic.php?f=215&t=61980