หลายอาทิตย์ก่อน มีคนมาตั้งคำถามในกลุ่ม
อยากจะแสดงเวลาบน LCD แบบมีเลข 0 นำด้วยถ้าเลขต่ำว่า 10
ซึ่งตามปกติการแสดงบน lcd จะเขียนด้้วย print() อย่างนี้
ซึ่งตามปกติการแสดงบน lcd จะเขียนด้้วย print() อย่างนี้
//--------------------------------------------------
int hour = 12;
int minute = 5;
int sec = 9;
if( hour <10 ) lcd.print("0");
lcd.print(hour);
lcd.print(":");
if( minute <10 ) lcd.print("0");
lcd.print(minute);
lcd.print(":");
if( sec <10 ) lcd.print("0");
lcd.print(sec);
//--------------------------------------------------
lcd.print(hour);
lcd.print(":");
if( minute <10 ) lcd.print("0");
lcd.print(minute);
lcd.print(":");
if( sec <10 ) lcd.print("0");
lcd.print(sec);
//--------------------------------------------------
แต่บน ESP8266 เราสามารถเขียนโดยใช้
ฟังกชั่น print ที่กำหนด format ได้
หรือ ที่เรียกว่า ฟังกชั่น printf()
ซึ่งจะเหลือบรรทัดเดียวดังนี้
ฟังกชั่น print ที่กำหนด format ได้
หรือ ที่เรียกว่า ฟังกชั่น printf()
ซึ่งจะเหลือบรรทัดเดียวดังนี้
//--------------------------------------------------
lcd.printf("%02d:%02d:%02d", hour, minute, sec);
//-------------------------------------------------
ปรากฏว่า บน Arduino กลับไม่รองรับ
การใช้ printf() ซะงั้น !?!!!!
การใช้ printf() ซะงั้น !?!!!!
วันนี้พอมีเวลาเลยมาทำให้ฝั่งบน Arduino
สามารถ ใช้ ฟังกชั่น printf() ได้ด้วยเลยดีกว่า
ซึ่งจะทำให้ โคดมีความเรียบร้อยขึ้นมาก
สามารถ ใช้ ฟังกชั่น printf() ได้ด้วยเลยดีกว่า
ซึ่งจะทำให้ โคดมีความเรียบร้อยขึ้นมาก
-------------------------------------------------------------
วิธีทำ
=====
1) ให้ไป download 2 files
คือ ไฟล์ Print.h และ Print.cpp นี้มา
วิธีทำ
=====
1) ให้ไป download 2 files
คือ ไฟล์ Print.h และ Print.cpp นี้มา
ผู้เขียนอัพโหลดไว้ที่
https://github.com/TridentTD/Arduino_Printf
https://github.com/TridentTD/Arduino_Printf
2) จากนั้นให้เข้าไปที่ โฟลเดอร์
C:\Users\..ชื่อuser..\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.18\cores\arduino
แล้วเอาไปแทนที่ในโฟลเดอร์นั้น
เพียงเท่านี้ Arduino ของคุณ
ก็จะสามารถใช้ printf()
ได้ทั้ง บน lcd หรือแม้กระทั่ง บน Serial monitor ได้
ทำให้โคดมีความเรียบง่ายและสั้นขึ้น ในลัดนิ้วมือเดียว
ก็จะสามารถใช้ printf()
ได้ทั้ง บน lcd หรือแม้กระทั่ง บน Serial monitor ได้
ทำให้โคดมีความเรียบง่ายและสั้นขึ้น ในลัดนิ้วมือเดียว
-------------------------------------------------------------
ไม่มีความคิดเห็น:
แสดงความคิดเห็น