กลับไปหน้ารวมไฟล์
morse-encoder-displayer-9c3f74.md

ชื่อโปรเจกต์: Morse Encoder & Displayer

โปรเจกต์นี้คือโค้ด [Arduino](https://s.shopee.co.th/7fUgFAWSki) ที่คอยดักฟัง Serial port (ทั้งรับและส่ง) แล้วจะโชว์ของออกมา 2 อย่าง จัดไปวัยรุ่น:

  • อย่างแรกเลย มันจะแปลงข้อความที่เราพิมพ์ส่งไปให้เป็นรหัส Morse แล้วส่งออกทาง Pin 11 (พี่แนะนำว่าให้ต่อ Potentiometer อนุกรมกับ [Buzzer](https://s.shopee.co.th/6pvZFdZdRf) ไว้ด้วยนะ จะได้ปรับระดับเสียงได้ตามใจชอบ ห้ามช็อตนะตัวนี้)
  • อย่างที่สอง ในจังหวะเดียวกันนั่นแหละ บนหน้าจอ [LCD](https://s.shopee.co.th/6AfsSPcAnb) มันจะเขียนตัวอักษรที่กำลังแปลงอยู่ พร้อมกับพ่นรหัส Morse ออกมาที่บรรทัดที่สอง พอตัวหนังสือวิ่งจนเต็มบรรทัดแรกปุ๊บ มันก็จะสั่ง Clear หน้าจอให้เองอัตโนมัติ หล่อเท่เลยงานนี้

นอกจากนี้มันยังส่งข้อความกลับมาบอกเราด้วยว่าได้รับอะไรไป โดยจะขึ้นต้นว่า "Received: " จะได้รู้ว่าข้อมูลเข้าครบมั้ย

แล้วถ้าเกิดน้องซ่าพิมพ์ตัวละครที่มันไม่รู้จักขึ้นมานะ มันจะแผดเสียง Buzzer ยาวเท่ากับ 4 Dots แล้วหยุดรอ 2 Dots จากนั้นจะพ่น Error message บอกว่าไม่รู้จักตัวละครไหน พร้อมโชว์ค่า Binary ของตัวนั้นออกมาทาง Serial ส่วนบนหน้าจอ LCD มันจะใส่เครื่องหมาย "?" แทนตัวที่มันไม่รู้จักให้เอง

พี่มีไอเดียจะอัปเกรดโปรเจกต์นี้ต่อด้วยนะ คือการเพิ่ม Potentiometer ตัวที่สามเข้าไปเอาไว้คุมความเร็ว (Duration) ของพวก Dot/Dash/Pauses ให้ปรับช้าเร็วได้ตามมือสั่งเลย

รายละเอียดทางเทคนิคแบบจัดเต็ม (EXPANDED TECHNICAL DETAILS)

การแปลงข้อความเป็นรหัส (Text-to-Cipher Conversion)

โปรเจกต์นี้เราทำ Digital Translator ที่จะเปลี่ยนข้อความ Alphanumeric มาตรฐาน ให้กลายเป็นจังหวะ Pulse ของรหัส Morse สากล (International Morse Code)

  • Lookup Table Architecture: โครงสร้างข้อมูลเราใช้ Lookup Table โดยจับคู่ ASCII character แต่ละตัวเข้ากับ String ของ Dot และ Dash ในรูปแบบ 2D array เจ้า Board Arduino จะทำการ Parse ข้อมูลที่รับมาจาก Serial หรือ Keypad แล้วไปดึง "Timing Sequence" ที่ถูกต้องส่งไปที่ Buzzer
  • DASH-DOT Timing logic: ใช้ Logic ตามมาตรฐานรหัส Morse เป๊ะๆ คือ 1 "Dash" จะยาวเท่ากับ 3 "Dots" และช่องว่าง (Space) ระหว่างตัวอักษรจะยาวเท่ากับ 3 "Dots" เช่นกัน สู้งานนะน้อง

การแสดงผล (Visualization)

  • 16x2 LCD Display: ไม่ได้มีแค่เสียงติ๊ดๆ จากลำโพงนะ แต่หน้าจอ LCD จะแสดงผลทั้งตัวอักษรและรหัส Morse ไปพร้อมๆ กัน เป็นการเชื่อมโยงภาพและเสียง (Visual-Audio Link) ให้เราได้เรียนรู้รหัส Morse ไปในตัว เรียนรู้ไวแน่นอนทรงนี้

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

title: "Morse Encoder & Displayer"
description: "This project encodes serial messages into Morse code, and displays the characters on an LCD screen at the same time."
author: "rajdakin"
category: "Screens & Displays"
tags:
  - "audio"
views: 15143
likes: 7
price: 1120
difficulty: "Intermediate"
components:
  - "1x Resistor 221 ohm"
  - "27x Jumper wires (generic)"
  - "2x Rotary potentiometer (generic)"
  - "1x Buzzer"
  - "1x Arduino UNO"
  - "1x Breadboard (generic)"
  - "1x Standard LCD - 16x2 White on Blue"
tools: []
apps:
  - "1x Arduino IDE"
  - "1x Arduino Web Editor"
downloadableFiles:
  - "https://projects.arduinocontent.cc/c5d31ca5-2cd1-412a-aad0-18571f70c181.ino"
documentationLinks: []
passwordHash: "6507c3477ff3fb2bdd3f6e4ac8832ef0be3008e79248d4d4a937ad00b820ff2b"
encryptedPayload: "U2FsdGVkX188cRTOP22BYClQg1gEER20v3a+6/1D1Z9N5wBMMlb8nV9dfd2sOtDZhutJUNuR2c26uF6IFaF1+W17fjvvNgWsEAusMeYUa/WrDtDSm/XLsCCbQNNnf9Br"
seoDescription: "Arduino project to encode serial messages into Morse code and display characters on an LCD screen."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/morse-encoder-displayer-9c3f74_cover.jpg"
lang: "th"