กลับไปหน้ารวมไฟล์
quick-example-of-flags-with-a-servo-22db0b.md

ชื่อโปรเจกต์: ตัวอย่างจัด Flag คุม Servo แบบไวๆ สไตล์วัยรุ่น

โค้ดชุดนี้พี่ไปแงะมาจากโปรเจกต์ส่วนตัวที่ทำอยู่ แล้วก็เอามายำรวมกับโค้ดจากฟอรั่มข้างนอก แบ่งปันกันไปนะน้อง

อธิบายกันหน่อย

bool myFlag = false; //สร้างและตั้งชื่อ Flag

บรรทัดนี้คือการสร้างและตั้งชื่อ Variable แบบ Flag ให้เราจำได้ง่ายๆ

if (myFlag == false) //ถ้า Flag เป็น true ให้สั่งงาน...

อันนี้คือการเช็กเงื่อนไข ถ้า Flag ของเรามันเป็น true ก็ให้มันสั่งงาน Pins หรือจะสั่งอะไรก็ว่าไป

myFlag = true; // เซ็ต Flag เป็น true เพื่อสั่งปิด [Servo](https://s.shopee.co.th/7fUgFAWSki) 1

บรรทัดนี้คือการสั่งให้ Flag เปลี่ยนสถานะ เพื่อที่จะสั่งหยุดหรือปิดการทำงานของ Servo

myFlag = false; // เซ็ต Flag เป็น false เพื่อให้ Servo 1 กลับมาทำงาน

อันนี้คือการเคลียร์ Flag ให้เป็น false เพื่อให้เจ้า Servo กลับมาขยับได้อีกครั้ง

คำอธิบายพวกนี้อาจจะไม่ได้ถูกต้องเป๊ะร้อยเปอร์เซ็นต์นะเว้ย เพราะพี่เองก็เพิ่งหัดใช้ Flag มาได้ไม่นานเหมือนกัน

แล้วโค้ดนี้ก็อาจจะเอาไปใช้กับ Module รุ่นอื่นไม่ได้เสมอไปนะ เพราะพี่ลองมาแล้วบางตัวมันก็งอแง

อย่างที่น้องเห็นนั่นแหละ พี่ไม่มีโปรแกรมวาด Schematic วงจรสวยๆ เลยว่ะ ใครมีตัวไหนแจ่มๆ แนะนำพี่ทีนะ ขอบใจมากวัยรุ่น

ข้อมูลทางเทคนิคแบบจัดเต็ม

โลจิกตัวบ่งชี้แบบเคลื่อนไหว (Kinetic Indicator Logic)

โปรเจกต์นี้ใช้ "Flags" หรือสัญญาณธงจริงๆ มาเป็นตัวบอกสถานะ ซึ่งพี่ว่ามันดูมีเสน่ห์และดูเป็นเครื่องกลเท่ๆ กว่าพวกหน้าจอดิจิทัลเยอะเลย

  • การกำหนดตำแหน่งองศา (Angular Position Mapping): ตัว Arduino จะคอยคุม micro Servo รุ่น SG90 ที่ติดกับก้านธงไว้ โดยใน Firmware จะมีการ Map ค่าเหตุการณ์ต่างๆ (เช่น มีอีเมลเข้า หรือ Sensor โดนกระตุ้น) ให้กลายเป็นองศาของ Servo (เช่น 0° คือเอาธงลง, 90° คือยกธงขึ้น)
  • จังหวะการสะบัดธงแบบนุ่มนวล (Smooth Swing Animation): เพื่อไม่ให้ธงมันสะบัดแรงเกินไปจนกลไกพัง โค้ดนี้เลยมีการใช้ Loop เพื่อค่อยๆ ขยับตำแหน่ง Servo ไปทีละนิด ผลที่ได้คือธงจะค่อยๆ ยกขึ้นแบบมีจังหวะจะโคน หล่อเท่เลยงานนี้

เอาไปใช้งานจริงยังไง?

  • ระบบแจ้งเตือนด้วยสายตา: เหมาะมากสำหรับที่เงียบๆ อย่างห้องสมุดหรือโฮมออฟฟิศ เพราะการใช้ธงโบกมันดูสงบกว่าการใช้ Buzzer ส่งเสียงหนวกหู หรือแสงวาบจากหน้าจอเยอะเลยนะน้อง สู้ๆ นะวัยรุ่น ห้ามช็อตนะตัวนี้!

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

title: "Quick example of flags with a servo"
description: "Servo + fan will turn on when pressed button"
author: "lukatopgun"
category: ""
tags:
  - "flags"
  - "tutorial"
  - "example"
views: 8863
likes: 1
price: 299
difficulty: "Intermediate"
components:
  - "1x Solderless Breadboard Full Size"
  - "3x Female/Female Jumper Wires"
  - "1x SG90 Micro-servo motor"
  - "1x DC Motor, 12 V"
  - "1x Arduino UNO"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "f65cf109c6271e49f6369aab4a7a2aef86e827d87d5040e6aeb2a457d51d0130"
encryptedPayload: "U2FsdGVkX18ig5BA3XZYX/9o+CBw5IXFPSjCRKyocntEzXJWGlRWjyAAYptVZT6p3VA/dvskLvwKeEqGDS8YqojYGzrBUHxypgX6cGlVp/4="
seoDescription: "Learn how to control a Servo and fan with a button using flags in this quick Arduino project example."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/quick-example-of-flags-with-a-servo-22db0b_cover.jpg"
lang: "th"