กลับไปหน้ารวมไฟล์
printing-a-servo-position-on-the-lcd-921a09.md

ชื่อโปรเจกต์: โชว์ตำแหน่ง Servo บนจอ LCD แบบหล่อๆ

ปกติเวลาเราสั่งให้ [Servo](https://s.shopee.co.th/7fUgFAWSki) มันขยับเนี่ย มองด้วยตาเปล่ามันกะยากนะว่าตอนนี้มันอยู่ที่กี่องศาแล้ว พี่เลยจัดให้! เราจะเอาตำแหน่งของมันมาโชว์บนจอ [LCD](https://s.shopee.co.th/6AfsSPcAnb) ซะเลย จะได้เล่นสนุกขึ้น แถมดูมีความเป็นมืออาชีพขึ้นมาอีกเป็นกอง

ตอนนั่งเล่น Servo อยู่ บางทีสายตามันแยกแยะองศาไม่ออกหรอกว่าอันไหน 45 หรือ 50 องศา พี่เลยจับจอ LCD มาเสียบพ่วงซะ จะได้เห็นค่ากันจะๆ ไม่ต้องเดาให้เสียเวลา

ตัว Servo จะถูกเขียน Code ให้ขยับไปทีละ Step และทุกจังหวะที่มันขยับ ค่าองศาก็จะไปโผล่หราอยู่บนหน้าจอ LCD ตลอดเวลา เจ๋งป่ะล่ะ?

รายละเอียดทางเทคนิคแบบจัดเต็ม (ฉบับพี่สอนน้อง)

Real-Time Hardware Telemetry

โปรเจกต์นี้คือการสร้างระบบ Visual Feedback แบบ Closed-loop เพื่อเฝ้าดูตำแหน่งองศาที่เป๊ะๆ ของตัว Servo Motor

  • Variable Mapping Interface: Arduino จะคอยอ่านค่า Analog จาก Potentiometer (ค่า 0-1023) แล้วเอามา Map ให้กลายเป็นองศาของ Servo (0-180 องศา) ในขณะเดียวกัน เจ้าค่าตัวเลขชุดนี้ก็จะถูกส่งไป Print บนจอ 16x2 I2C LCD ให้เห็นกันชัดๆ ไปเลยน้อง
  • Display Refresh Logic: เพื่อไม่ให้จอ LCD ของเรามันสั่นหรือกระพริบ (Flickering) เวลาขยับ พี่เลยวาง Logic ให้ Firmware อัปเดตหน้าจอทุกๆ 100ms ก็พอ ผลที่ได้คือจอนิ่ง อ่านง่ายสบายตา แต่ Servo ยังตอบสนองไวทันใจเหมือนเดิม ไม่ต้องกลัวหน่วง

Accuracy

  • Calibration Routine: พี่ใส่ตัวปรับ Software Offset ไว้ด้วย เพื่อชดเชยค่าความคลาดเคลื่อนทางกายภาพของพวก Servo ราคาประหยัด เพื่อให้มั่นใจว่าองศาบนจอ กับตำแหน่งแกนหมุนจริงๆ มันตรงกันเป๊ะ ไม่มั่วนิ่มแน่นอน หายห่วงได้เลยวัยรุ่น!

ข้อมูล Frontmatter ดั้งเดิม

title: "Printing a servo position on the lcd"
description: "The LCD shows the position of the servo rotations"
author: "gamer06"
category: ""
tags:
  - "tracking"
  - "kids"
  - "monitoring"
views: 693
likes: 0
price: 699
difficulty: "Easy"
components:
  - "1x SG90 Micro-servo motor"
  - "1x Breadboard (generic)"
  - "1x Jumper wires (generic)"
  - "1x Arduino UNO"
  - "1x Alphanumeric LCD, 16 x 2"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "07f887561a9d81ee14fdf13aa8c4cbc88f1cccd740ba70f7d4724899d68a0a1b"
encryptedPayload: "U2FsdGVkX19Vd7hFl8QVzdDuo4mBq9Eu013nthZyu8BvrqsALIzz6Icp5tpYQp5GgDmCe3hPFwVigUCYNTjAY/Jq3ajxce2C35HHiPbvCKU="
seoDescription: "Display the servo rotation position on an lcd screen using Arduino. A simple project for beginners learning to monitor hardware components."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/printing-a-servo-position-on-the-lcd-921a09_cover.jpg"
lang: "th"