หลักการ ทํา งาน ของ จอ lcd

หลักการทำงานของจอ LCD: จากโครงสร้าง LCD หน้าจอ LCD ที่ใช้โดยคอมพิวเตอร์โน้ตบุ๊คหรือเดสก์ท็อปมีส่วนประกอบต่างกัน จอแอลซีดีประกอบไปด้วยแผ่นกระจกสองแผ่นที่มีความหนาประมาณ 1 มิลลิเมตรซึ่งแยกจากกันโดยมีระยะห่างกัน 5 มมวัสดุคริสตัลเหลว เนื่องจากคริสตัลเหลววัสดุตัวเองไม่สว่างดังนั้นหน้าจอทั้งสองด้านมีหลอดไฟเป็นแหล่งกำเนิดแสงและแสงไฟในจอแสดงผลคริสตัลเหลวที่ด้านหลัง (หรือแผ่นที่สม่ำเสมอ) และแผ่นสะท้อนแสงคณะกรรมการแบ็คไลท์จะประกอบไปด้วยหลอดฟลูออเรสเซนต์ สารสามารถปล่อยแสงฟังก์ชันหลักของมันมีให้สำหรับแสงพื้นหลังสม่ำเสมอ

แสงที่ปล่อยออกมาจากแสงพื้นหลังจะผ่านชั้นแรกของชั้นกรองโพลาไรซ์ลงในชั้นผลึกเหลวที่มีหยดของเหลวหลายพันรายการ ละอองน้ำในชั้นผลึกเหลวจะรวมอยู่ในโครงสร้างเซลล์ขนาดเล็กและเซลล์หนึ่งหรือมากกว่าหนึ่งจะสร้างพิกเซลบนหน้าจอ อิเล็กโทรดที่โปร่งใสระหว่างแผ่นกระจกและวัสดุคริสตัลเหลวจะแบ่งเป็นแถวและคอลัมน์และสถานะการหมุนของผลึกเหลวจะเปลี่ยนไปโดยการเปลี่ยนแรงดันไฟฟ้าที่จุดตัดกันระหว่างแถวและคอลัมน์ การกระทำของวัสดุคริสตัลเหลวคล้ายกับวาล์วไฟขนาดเล็ก ขอบของวัสดุคริสตัลเหลวเป็นส่วนหนึ่งของวงจรควบคุมและวงจรขับรถ เมื่ออิเล็กโทรดใน LCD สร้างสนามไฟฟ้าโมเลกุลคริสตัลเหลวจะบิดเบือนเพื่อให้รังสีที่ไหลผ่านจะถูกหักเหเป็นประจำและกรองผ่านชั้นกรองที่สองเพื่อแสดงบนหน้าจอ

หลักการ ทํา งาน ของ จอ lcd

สัปดาห์นี้เรามาพูกถึงการใช้งานจอ LCD กันครับ

  ที่พวกเราเรียกว่า LCD นั้น มาจากคำว่า Liquid Crystal Display ครับ หลักการทำงานของมันอาศัย-ของเหลวพิเศษที่มีคุณสมบัติการบิดแกนโพราไรซ์ของแสงครับ  ถ้าจ่ายแรงดันไฟฟ้าเข้าไประหว่างสารเหลวนี้  โมเลกุลของมันจะบิดตัวและทำให้แสงไม่สามารถผ่านกระจกออกมาได้  ถ้าไม่มีการจ่ายแรงดันไฟฟ้าแสงจะทะลุผ่านออกมาได้

  รูปด้านล่างอธิบายความได้เป็นอย่างดีครับ  การทำงานของมันเกิดจากกระจกโพลาไรซ์ 2 แผ่น ที่มีแกนตั้งฉากกัน   ดังนั้นถ้าไม่ทำอะไรเลยแสงจะไม่สามารถลอดผ่านออกมาได้  เหมือนเอาแว่นตาโพลาไรซ์สองอันมาบิดทำมุมตั้งฉากกัน แสงจะไม่ลอดผ่าน  ทีนี้มีคนไปพบว่ามีของเหลวชนิดนึงที่ปกติแล้วจะสามารถ "บิดแกนโพลาไรซ์ของแสง" ได้ ก็เลยเกิดความคิดเอามาทำจอ LCD

ถ้าไม่มีการจ่ายแรงดันเข้าไป  สารเหลวที่ว่านี้จะบิดแกนโพลาไรซ์ของแสงไป 90 องศา ทำให้แสงสามารถลอดออกมาได้จากกระจกโพลาไรซ์คู่นี้ได้   ในทางกลับกัน ถ้ามีแรงดันจ่ายไประหว่างสารเหลวนี้  จะไม่เกิดการปิดตัวของแสง ทำให้แสง "ไม่สามารถ" ลอดออกมาได้ครับ

  คลิปวีดีโอด้านล่างอาจจะทำให้เข้าใช้ได้ง่ายขึ้นครับ

หลักการ ทํา งาน ของ จอ lcd

  ทีนี้ก็มีการนำหลักการนี้มาใช้หลายแบบครับ แบบแรกง่ายๆ ก็คือการเอาอิเล็กโทรดที่บังคับการทำงานของของเหลวได้นี้มาทำเป็นรูปตัวเลข ก็จะเห็นแบบที่ใช้ในเครื่องคิดเลข   หรือ โดยประกอบเซลล์เล็กๆ ขึ้นมาเป็นเมตริกซ์ ทำให้สามารถควบคุมให้เป็นตัวอักษร หรือ รูปภาพได้   

  แรกๆที่ทำออกมาก็ไม่ซับซ้อนครับ ใช้ทำเครื่องคิดเลขบ้าง นาฬิกาบ้าง  ต่อมาก็เอามาทำจอ LCD Matrix  จากนั้นเริ่มมีการผสมสี RGB และทำให้จอมีความละเอียดมากขึ้น  (Pixel ต่อ พื้นที่่)  ก็เลยกลายเป็นทีวีจอ  LCD  สีที่เราเห็นครับ

   ในบทความนี้ผมจะพูดถึงเฉพาะ LCD ชนิดที่เป็น matrix ซึ่งใช้แสดงตัวอักษรมาตรฐานนะครับ  จึงอยู่ว่าจอ LCD matrix สามารถแสงเป็นภาพ หรือ ตัวอักษรตามแต่ผู้ใช้จะควบคุม  แต่บทความนี้เอาแบบสั้นๆ คนทั่วไปใช้ละกันครับ  เลยเขียนเฉพาะการควบคุมให้แสดงตัวอักษรมาตรฐาน

  หลักการทำงานก็จบไป  มาถึงรายละเอียดของตัว LCD กันบ้างว่ามีอะไรกันบ้าง มีกี่ Pin   ตารางด้านล่างนี้เป็นรายละเอียดของ PIN ของ LCD แบบที่นิยมใช้กันมากๆ คือ 16 x 2 (หมายถึง 16 ตัวอักษร 2 บรรทัดนะครับ)  ถ้าดูที่แต่ละตัวอักษรจะเห็นว่ามันเป็น matrix  5x8 ซึ่งแสดงถึงความละเอียดของตัวอักษรนะครับ

  ทีนี้ Pin ของ LCD ก็จะมี 16 Pin ตามรายละเอียดในตารางครับ

Pin Description: 

 Pin No

 Function

 Name

1

Ground (0V)

Ground

2

Supply voltage; 5V (4.7V – 5.3V)

 Vcc

3

Contrast adjustment; through a variable resistor

 VEE

4

Selects command register when low; and data register when high

Register Select

5

Low to write to the register; High to read from the register

Read/write

6

Sends data to data pins when a high to low pulse is given

Enable

7

8-bit data pins

DB0

8

DB1

9

DB2

10

DB3

11

DB4

12

DB5

13

DB6

14

DB7

15

Backlight VCC (5V)

Led+

16

Backlight Ground (0V)

Led-

 16 PIN ที่ว่าก็จะมีตั้งแต่ไฟเลี้ยง กราวด์ Data การควบคุมแสง การควบคุมการแสดงครับ  

สำหรับการให้ข้อมูลการแสดงบนหน้าจอ หรือ การติดต่อควบคุมการทำงานของ LCD ก็จะทำโดยผ่าน IC ของบริษัท Hitachi เบอร์ HD44780   เจ้านี้เขาทำเจ้าแรกๆ จนกลายเป็นมาตรฐานของโลกไปแล้วครับ

    HD44780 สามารถคุยด้วยได้ 2 แบบหลักคือ แบบ 4 Bit  (DB4 - DB7) และ แบบ 8 Bit (DB0 - DB7)  ทั้งสองแบบนี้ก็ต่างกันตรงที่ใช้จำนวน pin จาก Arduino 4 pin กับ 8 pin ครับ    ก็แน่นอนครับ เราคงไม่อยากใช้ Port เปลือง ดังนั้นส่วนมากคนก็จะนิยมใช้แบบ 4 Pin กันครับ  แต่ก็มีความเร็วในการส่งข้อมูลช้ากว่าแบบ 8 pin ครับ   แต่ความเร็วที่ว่าก็ไม่ได้เป็นอุปสรรคเลยครับ 4 bit ก็เร็วมากจนสายตาของเราแยกไม่ออกแล้วครับ    สรุปก็คือว่าผมแนะนำการต่อแบบ 4 bit ละกันนะครับ ตามภาพด้านบนก็ได้ครับ  แล้วแบบ 8 bit มีไว้ทำไมละ  คำตอบก็คือ ในยุคแรกๆ ไมโครคอนโทรลเลอร์เขาออกมาเป็นแบบ 8 bit แล้วเพื่อให้เขียนโปรแกรมไม่ซับซ้อนมากนัก ก็เลยใช้ 8 bit ให้เหมือนกัน register ในไมโครคอนโทรลเลอร์ซะครับ

   สำหรับ Arduino แล้ว เราจะใช้ LCD แบบบ้านๆ ที่มีขายตามบ้านหม้อ (ถ้าดูภาพแรกก็คือ LCD อันล่าง) หรือจะใช้เป็นแบบ LCD Shield  ก็มีหลักการทำงานเดียวกัน  ใช้ library เดียวกันครับ  ถ้าใช้แบบ LCD เดี่ยวๆ ก็ต้องมาต่อขากันเองนิดหน่อย แต่ถ้าใช้ LCD Shield ก็จับยัดได้เลยครับ แถมมีปุ่มกดมาให้ด้วยครับ  ก็แล้วแต่งานที่ต้องเอาไปประยุกต์ใช้ครับ

  และก็ตามสไตล์ของ Arduino ครับคือการมี library ที่่ทำให้ใช้งานได้สะดวกมากๆ  ใครที่เคยใช้ ไมโครคอนโทรลเลอร์ตัวอื่นมาก่อนจะรู้สึกถึงความแตกต่างชัดเจนครับ   Library ของ LCD ก็คือ    มีคำสั่งที่สำคัญดังนี้ครับ

  • LiquidCrystal()  ก็ใช้ในการประกาศ Pin ที่เราจะส่งข้อมูลไปที่จอ LCD ครับ เช่น LiquidCrystal lcd(8, 9, 4, 5, 6, 7);  ก็หมายถึง RS ที่ Pin 8   Enable ที่ Pin 9 และ DB4 - DB 7 ที่ขา 4, 5, 6, 7  ตามลำดับครับ   ถ้าดูรายละเอียดในคำสั่งนี้ เราจะสามารถใช้การส่งข้อมูลแบบ 8 บิตได้ด้วยครับ
  • begin() ใช้ในการกำหนดลักษณะการแสดงของจอ เช่น  lcd.begin(16, 2);  คือการแสดงภาพ 16 ตัวอักษร 2 แถวครับ
  • print() ใช้ในการเขียนข้อความ เช่น  lcd.print("Hello !!!");
  • setCursor() ใช้ในการกำหนดตำแหน่งของ Cursor เช่น  lcd.setCursor(13, 1); คือให้เคอร์เซอร์ไปที่ ตัวอักษรที่ 13 และแถวที่ 1  (อย่าลืมนะครับ มันจะเริ่มนับจาก 0 ตามสไตล์ภาษา C)
  •  cursor() ก็คือการแสดงตัว Cursor บนหน้าจอครับ เช่น lcd.cursor();
  •  noCursor() ก็คือการซ่อน Cursor 

 ที่เหลือ รบกวนไปที่ Arduino.cc นะครับ

    สำคัญคือการต่อนะครับ ต้องต่อตามที่เขียนไว้ในคำสั่ง LiquidCrystal()   นะครับ Arduino จะได้สั่งงานไปถูกขา

 ทีนี้เอาแบบง่ายๆ คือ Hello Arduitronics ครับ  ผมสาธิตโดยการใช้  LCD Shield  นะครับ ทีนี้ตัว  LCD Shield นี้มันก็มีการต่อขาไว้ที่ตัว LCD แบบตายตัวแล้ว เปลี่ยนไม่ได้ซะด้วย ก็ใช้ตามนี้เลยนะครับ

liquidCrystal lcd(8, 9, 4, 5, 6, 7); 

ถ้าต่อเองก็เลือกเอาตามอัธยาสัยได้เลยครับ 

 ถ้าต่อถูกต้องก็ตามภาพด้านล่างนี้เลยครับ 

หลักการ ทํา งาน ของ จอ lcd

อีกตัวอย่างครับ ทีนี้เราจะเริ่มมีการใช้ปุ่มกดกันบ้าง  อันนี้ผมได้ตัวอย่างมาจากผู้ผลิตนะครับ DFROBOT 

 เช่นกันครับ ถ้าต่อถูกก็ตามนี้ครับ

หลักการ ทํา งาน ของ จอ lcd

สำหรับ Data Sheet ของ LCD ก็ตามนี้ครับ 

ถ้าเป็น  LCD Shield  ก็ตามนี้ครับ  ข้อดีอีกอันของการใช้ Shield ก็คือ มี R ปรับค่าได้ไว้ปรับความสว่างของหน้าจอมาให้ด้วยนะครับ  

แถมอีกนิดครับ  เนื่องจากที่ผมเขียนมาทั้งหมด ก็ยังมีคนรู้สึกว่ามันยังต้องใช้ Pin เยอะอยู่ดี  ดังนั้นเลยต้องการลดการใช้ PIN ลงอีก  จึงประยุกต์ใช้การสื่อสารแบบอนุกรม แบบ I2C (Inter - IC communication) ซะเลย  จึงลดขา DB ต่างๆ ลงมาอีก ให้เหลือแค่ 2 PIN 

หลักการ ทํา งาน ของ จอ lcd

หลักการ ทํา งาน ของ จอ lcd
 

สำหรับร้านเรามี LCD ให้ในหลายชุด Starter Kit ที่จัดไว้นะครับ เช่น Starter Kit 1  Starter Kit 3

หรือขายแยก เช่น LCD  หรือ LCD Keypad Shield ครับ

วันนี้พอแค่นี้ครับ พบกันใหม่สัปดาห์หน้า

 โดย Mountain "A"

www.arduitronics.com

www.facebook.com/arduitronics