หลักการทำงานของจอ LCD: จากโครงสร้าง LCD หน้าจอ LCD ที่ใช้โดยคอมพิวเตอร์โน้ตบุ๊คหรือเดสก์ท็อปมีส่วนประกอบต่างกัน จอแอลซีดีประกอบไปด้วยแผ่นกระจกสองแผ่นที่มีความหนาประมาณ 1 มิลลิเมตรซึ่งแยกจากกันโดยมีระยะห่างกัน 5 มมวัสดุคริสตัลเหลว เนื่องจากคริสตัลเหลววัสดุตัวเองไม่สว่างดังนั้นหน้าจอทั้งสองด้านมีหลอดไฟเป็นแหล่งกำเนิดแสงและแสงไฟในจอแสดงผลคริสตัลเหลวที่ด้านหลัง (หรือแผ่นที่สม่ำเสมอ) และแผ่นสะท้อนแสงคณะกรรมการแบ็คไลท์จะประกอบไปด้วยหลอดฟลูออเรสเซนต์ สารสามารถปล่อยแสงฟังก์ชันหลักของมันมีให้สำหรับแสงพื้นหลังสม่ำเสมอ แสงที่ปล่อยออกมาจากแสงพื้นหลังจะผ่านชั้นแรกของชั้นกรองโพลาไรซ์ลงในชั้นผลึกเหลวที่มีหยดของเหลวหลายพันรายการ ละอองน้ำในชั้นผลึกเหลวจะรวมอยู่ในโครงสร้างเซลล์ขนาดเล็กและเซลล์หนึ่งหรือมากกว่าหนึ่งจะสร้างพิกเซลบนหน้าจอ อิเล็กโทรดที่โปร่งใสระหว่างแผ่นกระจกและวัสดุคริสตัลเหลวจะแบ่งเป็นแถวและคอลัมน์และสถานะการหมุนของผลึกเหลวจะเปลี่ยนไปโดยการเปลี่ยนแรงดันไฟฟ้าที่จุดตัดกันระหว่างแถวและคอลัมน์ การกระทำของวัสดุคริสตัลเหลวคล้ายกับวาล์วไฟขนาดเล็ก ขอบของวัสดุคริสตัลเหลวเป็นส่วนหนึ่งของวงจรควบคุมและวงจรขับรถ เมื่ออิเล็กโทรดใน LCD สร้างสนามไฟฟ้าโมเลกุลคริสตัลเหลวจะบิดเบือนเพื่อให้รังสีที่ไหลผ่านจะถูกหักเหเป็นประจำและกรองผ่านชั้นกรองที่สองเพื่อแสดงบนหน้าจอ สัปดาห์นี้เรามาพูกถึงการใช้งานจอ LCD กันครับ ที่พวกเราเรียกว่า LCD นั้น มาจากคำว่า Liquid Crystal Display ครับ หลักการทำงานของมันอาศัย-ของเหลวพิเศษที่มีคุณสมบัติการบิดแกนโพราไรซ์ของแสงครับ ถ้าจ่ายแรงดันไฟฟ้าเข้าไประหว่างสารเหลวนี้ โมเลกุลของมันจะบิดตัวและทำให้แสงไม่สามารถผ่านกระจกออกมาได้ ถ้าไม่มีการจ่ายแรงดันไฟฟ้าแสงจะทะลุผ่านออกมาได้ รูปด้านล่างอธิบายความได้เป็นอย่างดีครับ การทำงานของมันเกิดจากกระจกโพลาไรซ์ 2 แผ่น ที่มีแกนตั้งฉากกัน ดังนั้นถ้าไม่ทำอะไรเลยแสงจะไม่สามารถลอดผ่านออกมาได้ เหมือนเอาแว่นตาโพลาไรซ์สองอันมาบิดทำมุมตั้งฉากกัน แสงจะไม่ลอดผ่าน ทีนี้มีคนไปพบว่ามีของเหลวชนิดนึงที่ปกติแล้วจะสามารถ "บิดแกนโพลาไรซ์ของแสง" ได้ ก็เลยเกิดความคิดเอามาทำจอ LCD ถ้าไม่มีการจ่ายแรงดันเข้าไป สารเหลวที่ว่านี้จะบิดแกนโพลาไรซ์ของแสงไป 90 องศา ทำให้แสงสามารถลอดออกมาได้จากกระจกโพลาไรซ์คู่นี้ได้ ในทางกลับกัน ถ้ามีแรงดันจ่ายไประหว่างสารเหลวนี้ จะไม่เกิดการปิดตัวของแสง ทำให้แสง "ไม่สามารถ" ลอดออกมาได้ครับ คลิปวีดีโอด้านล่างอาจจะทำให้เข้าใช้ได้ง่ายขึ้นครับ ทีนี้ก็มีการนำหลักการนี้มาใช้หลายแบบครับ แบบแรกง่ายๆ ก็คือการเอาอิเล็กโทรดที่บังคับการทำงานของของเหลวได้นี้มาทำเป็นรูปตัวเลข ก็จะเห็นแบบที่ใช้ในเครื่องคิดเลข หรือ โดยประกอบเซลล์เล็กๆ ขึ้นมาเป็นเมตริกซ์ ทำให้สามารถควบคุมให้เป็นตัวอักษร หรือ รูปภาพได้ แรกๆที่ทำออกมาก็ไม่ซับซ้อนครับ ใช้ทำเครื่องคิดเลขบ้าง นาฬิกาบ้าง ต่อมาก็เอามาทำจอ 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:
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 ก็คือ มีคำสั่งที่สำคัญดังนี้ครับ
ที่เหลือ รบกวนไปที่ Arduino.cc นะครับ สำคัญคือการต่อนะครับ ต้องต่อตามที่เขียนไว้ในคำสั่ง LiquidCrystal() นะครับ Arduino จะได้สั่งงานไปถูกขา ทีนี้เอาแบบง่ายๆ คือ Hello Arduitronics ครับ ผมสาธิตโดยการใช้ LCD Shield นะครับ ทีนี้ตัว LCD Shield นี้มันก็มีการต่อขาไว้ที่ตัว LCD แบบตายตัวแล้ว เปลี่ยนไม่ได้ซะด้วย ก็ใช้ตามนี้เลยนะครับ liquidCrystal lcd(8, 9, 4, 5, 6, 7); ถ้าต่อเองก็เลือกเอาตามอัธยาสัยได้เลยครับ ถ้าต่อถูกต้องก็ตามภาพด้านล่างนี้เลยครับ อีกตัวอย่างครับ ทีนี้เราจะเริ่มมีการใช้ปุ่มกดกันบ้าง อันนี้ผมได้ตัวอย่างมาจากผู้ผลิตนะครับ DFROBOT เช่นกันครับ ถ้าต่อถูกก็ตามนี้ครับ สำหรับ Data Sheet ของ LCD ก็ตามนี้ครับ ถ้าเป็น LCD Shield ก็ตามนี้ครับ ข้อดีอีกอันของการใช้ Shield ก็คือ มี R ปรับค่าได้ไว้ปรับความสว่างของหน้าจอมาให้ด้วยนะครับ แถมอีกนิดครับ เนื่องจากที่ผมเขียนมาทั้งหมด ก็ยังมีคนรู้สึกว่ามันยังต้องใช้ Pin เยอะอยู่ดี ดังนั้นเลยต้องการลดการใช้ PIN ลงอีก จึงประยุกต์ใช้การสื่อสารแบบอนุกรม แบบ I2C (Inter - IC communication) ซะเลย จึงลดขา DB ต่างๆ ลงมาอีก ให้เหลือแค่ 2 PIN สำหรับร้านเรามี LCD ให้ในหลายชุด Starter Kit ที่จัดไว้นะครับ เช่น Starter Kit 1 Starter Kit 3 หรือขายแยก เช่น LCD หรือ LCD Keypad Shield ครับ วันนี้พอแค่นี้ครับ พบกันใหม่สัปดาห์หน้า โดย Mountain "A" www.arduitronics.com www.facebook.com/arduitronics |