กลับไปหน้ารวมไฟล์
lcdprogressbar-845b29.md

`LcdProgressBar` คืออะไร?

`LcdProgressBar` คือไลบรารีของ `Arduino` สำหรับแสดงแถบความคืบหน้า (`progress bar`) บนจอแสดงผล `LCD`

การพึ่งพิง (`Dependencies`)

จอแสดงผล `LCD` จะต้องได้รับการเริ่มต้น (`initialize`) มาก่อน ไลบรารีนี้ใช้ไลบรารี `LiquidCrystal` ในการแสดงผล

ผลลัพธ์ที่คาดหวัง

แถบความคืบหน้า 2 วินาที, วนซ้ำ

ตัวอย่าง

ดูตัวอย่างฉบับเต็มได้ที่: examples/Timer/Timer.ino.

การรวมไลบรารี (`Includes`)

#include <LiquidCrystal.h>
#include <LcdProgressBar.h> //## รวมไลบรารีนี้

การเริ่มต้น (`Initialization`): การสร้างอินสแตนซ์ (`instantiations`)

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
LcdProgressBar lpg(&lcd, 1, 16);

การเริ่มต้นแถบความคืบหน้า (`Initializing the progress bar`)

void initLpg()
{
//-- เริ่มต้นเวลา
startedMillis = millis();
//-- กำหนดค่าต่ำสุดและสูงสุด
lpg.setMinValue(startedMillis);
lpg.setMaxValue(startedMillis + duration);
}

การวาดแถบความคืบหน้า (`Drawing the progress bar`)

 //-- วาดแถบความคืบหน้า
lpg.draw(currentMillis);

หรือผ่านชื่อเรียกแทน drawValue (ในแบบ `LcdBarGraph` :wink:):

 //-- วาดแถบความคืบหน้า
lpg.drawValue(currentMillis);

รายละเอียดทางเทคนิคเพิ่มเติม

ระบบวัดและส่งข้อมูลความคืบหน้าทางภาพ

LcdProgressBar มอบอินเทอร์เฟซกราฟิกคุณภาพระดับมืออาชีพสำหรับการติดตามกระบวนการของฮาร์ดแวร์, การอัปโหลดไฟล์ หรือการปรับเทียบเซ็นเซอร์บนจอ LCD แบบอักขระมาตรฐาน

  • การกำหนดอักขระแบบกำหนดเอง (Custom Character Definition): จอ LCD มาตรฐาน (เช่น HD44780) แสดงได้แค่ข้อความเท่านั้น โปรเจกต์นี้ใช้ฟังก์ชัน createChar() ของ Arduino เพื่อกำหนดบิตแมปแบบกำหนดเอง 5 ถึง 8 แบบ ซึ่งแสดงถึง "ระดับ" ที่แตกต่างกันของส่วนแถบเดี่ยว (เช่น 20%, 40%, 60% เต็ม)
  • อัลกอริทึมการแมปแบบไดนามิก (Dynamic Mapping Algorithm): เฟิร์มแวร์ใช้ฟังก์ชัน map() เพื่อแปลงค่ากระบวนการดิบ (0-100) ให้เป็นชุดของอักขระแบบกำหนดเองทั้งแบบเต็มและแบบบางส่วน ซึ่งสร้างแถบความคืบหน้าแบบภาพที่ราบรื่นและมีความละเอียดสูง

ความหลากหลายของ UI

  • การอัปเดตแบบไร้การกระพริบ (Flicker-Free Updates): โค้ดได้ปรับปรุงรอบการเขียนให้เหมาะสม; แทนที่จะล้างจอ LCD ทั้งหมด มันจะเขียนทับเฉพาะอักขระที่เปลี่ยนไปเท่านั้น เพื่อให้แน่ใจว่าการแสดงผลสะอาดและเสถียรในระหว่างกระบวนการที่เคลื่อนที่รวดเร็ว

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

title: "LcdProgressBar"
description: "LcdProgressBar displays a progress bar in LCD display."
author: "wloche"
category: "Screens & Displays"
tags:
  - "progress bar"
  - "display"
  - "communication"
views: 14043
likes: 2
price: 870
difficulty: "Easy"
components:
  - "1x Arduino UNO"
  - "1x Standard LCD - 16x2 White on Blue"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles:
  - "https://github.com/wloche/LcdProgressBar"
  - "https://github.com/wloche/LcdProgressBar"
documentationLinks: []
passwordHash: "1660213a1194673797e238c1e45a8420777124a830f5d2624b23eb4b0c9d570a"
encryptedPayload: "U2FsdGVkX1/7wdL1pIUC12DdEbtQ6EJMaGJf+sI9QylQ4qRzAs8uykr5Lz7mWRR4ia/yi+M3KzPNUPVVnXo8xga3vzvMeG1cSOPTolBUQMA="
seoDescription: "Display a progress bar on an LCD display using Arduino with the LcdProgressBar project. Easy to implement."
videoLinks:
  - "https://www.youtube.com/embed/3SRARTk7fZY"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/lcdprogressbar-845b29_cover.JPG"
lang: "th"