สิ่งที่ต้องมี
- Arduino IDE เวอร์ชั่นไหนก็ได้ (ผมใช้ arduino-1.6.5-r2)
- โปรแกรมอะไรก็ได้ที่แก้ไขไฟล์ .txt ได้ฮ่าๆๆๆ
เริ่มกันเลย...
- เริ่มจากเปิดโฟลเดอร์ของ Arduino IDE ครับจะมีโฟลเดอร์และไฟล์ดังรูปครับ
- เข้าไปในโฟลเดอร์ "hardware\arduino\avr\cores\arduino" แล้วหาไฟล์ Print.cpp และ Print.h
- เปิดไฟล์ Print.cpp และ Print.h แล้วเพิ่มโค้ดดังนี้ [หรือจะเอาไฟล์ที่ผมทำไว้ไปวางทับอันเดิมก็ได้ครับโดยโหลดจาก Print.cpp , Print.h]
- เสร็จแล้วครับสำหรับการทำให้ Arduino IDE ใช้ฟังก์ชัน printf ได้ ทีนี้ทดลองใช้คำสั่งนี้กับไลบารี่ของ Serial, LCD หรือไลบารี่ตัวอื่นที่เรียนใช้งานคลาสของ Print ได้ครับ โดยผมมีคำสั่งตัวอย่างให้ดูดังนี้ครับ
- เมื่อเราลองใช้คำสั่งดูแล้วจะเห็นว่าส่วนของ %f มันใช้งานไม่ได้นะครับ เนื่องจาก Arduino IDE ได้ตั้งค่าเอาไว้ให้ใช้คำสั่ง printf แบบที่กินพื้นที่น้อย ดังนั้นเราต้องไปปรับแต่งเล็กน้อยครับโดยเข้าไปที่โฟลเดอร์ "\hardware\arduino\avr" แล้วเปิดไฟล์ชื่อ platform.txt ให้เพิ่มคำสั่งในบรรทัดที่เริ่มต้นข้อความว่า "compiler.c.elf.flags" โดยเพิ่มเข้าไปดังรูปครับ จากนั้นปิดโปรแกรม Arduino IDE แล้วเปิดใหม่ ทีนี้เราก็จะสามารถใช้งาน %f ในฟังก์ชัน printf ได้แล้วครับ ^_^
เครดิต :
- เรื่องการเพิ่มฟังก์ชัน printf ในArduino IDE : http://playground.arduino.cc/Main/Printf
- เรื่องการใช้งาน %f ในฟังก์ชัน printf : http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html#ga4c04da4953607fa5fa4d3908fecde449