โดยปกติแล้วคำสั่ง glcd ที่ใช้แสดงข้อความบนหน้าจอ GLCD ของบอร์ด Unicon, POP-XT และ IPST-SE (ขอเรียกสั้นๆว่าบอร์ด INEX) จะไม่สามารถแสดงค่าจากตัวแปร String ได้โดยตรงเหมือนคำสั่ง Serial Print
แต่ก็ใช่ว่าจะทำไม่ได้ เพียงแต่ว่าอาจจะต้องมีการเขียนคำสั่งเพิ่มเติมเองเพื่อให้สามารถใช้ตัวแปร String ให้แสดงใน GLCD ได้เลย โดยมีขั้นตอนง่ายๆดังนี้
โดยหลักการก็คือจะต้องทำการแปลง String ให้กลายเป็น Char Array เสียก่อน แล้วจึงนำ Char Array ที่ได้ไปแสดงใน GLCD มีรูปแบบคำสั่งดังนี้
String message = "Hi INEX!"; char buffer[message.length() + 1]; message.toCharArray(buffer, message.length() + 1); glcd(0, 0, buffer);
ผมสร้างตัวแปร String ขึ้นมาชื่อว่า message โดยให้เก็บข้อความว่า Hi INEX! แล้วสร้างตัวแปร Char Array ขึ้นมาชื่อว่า buffer (เพราะสร้างขึ้นมาเพื่อเก็บข้อมูลจาก message เพื่อนำไปใช้งาน จึงนิยมตั้งชื่อกันว่า buffer) โดยกำหนดให้จำนวนสมาชิกมีเท่ากับจำนวนของ message บวก 1 เมื่อกลับไปดูที่ message จะเห็นว่าข้อความ Hi INEX! มีตัวอักษรทั้งหมด 8 ตัวอักษร ดังนั้น buffer ก็จะมีจำนวนสมาชิกได้ 9 (8 + 1) ตัว
เมื่อสร้างตัวแปรเรียบร้อยแล้ว จะใช้คำสั่ง toCharArray ซึ่งเป็นคำสั่งของ String เพื่อแปลงข้อมูลใน String ให้กลายเป็น Char Array ซะ โดยกำหนดให้เก็บข้อมูลที่แปลงเป็น Char Array ไว้ใน buffer และข้อมูลที่ต้องการแปลงทั้งหมด (กำหนดไว้ 9 ตัวเช่นกัน) เพียงเท่านี้ String ของ message ก็จะถูกแปลงเป็น Char Array แล้วเก็บไว้ใน buffer เป็นที่เรียบร้อย
จากนั้นก็นำไปแสดงบน GLCD ด้วยคำสั่ง glcd ได้เลย โดยตัวอย่างข้างต้นจะแสดงที่แถวแรกสุดและตัวแรกสุด
แต่ถ้าจะให้ใช้คำสั่งนี้ทุกๆครั้งที่ต้องการแสดง String บน GLCD ก็คงกระไรอยู่ ดังนั้นก็ควรจะรวบคำสั่งให้เป็นฟังก์ชันเพื่อให้เรียกใช้งานได้ง่ายขึ้นซะ
void glcdPrintString(int row, int col, String message) { char buffer[message.length() + 1]; message.toCharArray(buffer, message.length() + 1); glcd(row, col, buffer); }
เวลาเรียกใช้ก็เรียกฟังก์ชันดังกล่าวแล้วกำหนดข้อความและตำแหน่งของข้อความลงไป
glcdPrintString(2, 1, "Hi INEX!"); glcdPrintString(3, 2, "Welcome to"); glcdPrintString(4, 3, "robot world");
หรือจะแสดงข้อความพร้อมกับค่าของตัวแปรนั้นๆก็ได้เช่นกัน
int age = 25; int weight = 65; glcdPrintString(0, 0, "AGE:" + age); glcdPrintString(1, 0, "WEIGHT:" + weight);
เพียงเท่านี้ก็สามารถแสดง String บน GLCD ได้แล้ว