หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ แสดงผลการกด Key บน Serial Monitor

รับ Input จาก 16-key keypad และส่งข้อมูลไปยัง Serial Monitor ที่มีอยู่ใน IDE

โปรเจกต์ แสดงผลการกด Key บน Serial Monitor

วิดีโอสาธิต

Video

▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์

รายละเอียดและวิธีทำ

*******

กรุณาเยี่ยมชม https://proteshea.com/serial-monitor-and-keypad-with-arduino-uno/ สำหรับรายการอุปกรณ์ทั้งหมดที่จำเป็นสำหรับโปรเจกต์นี้

*******

บทนำ

หากคุณยังไม่ได้อ่าน Getting Started Guide หรือ Project 2 สำหรับ Arduino Uno Rev3 (Uno) กรุณาอ่านเนื้อหาส่วนนั้นก่อน มิฉะนั้น สามารถอ่านต่อได้เลย ในบทเรียนนี้ เราจะถอด LED Bar Graph จาก Project 2 ออก และส่งค่าปุ่มที่ถูกกดไปยัง Serial Monitor ที่มีมาให้ใน Arduino IDE ซึ่ง Serial Monitor นั้นสะดวกมากเพราะเราไม่จำเป็นต้องดาวน์โหลด Serial Terminal ภายนอกอย่าง RealTerm มาใช้งาน

16-Key Matrix Keypad

กรุณาดู Arduino Uno Rev3 Project 2 เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับแผนผังและวงจรของ 16-key keypad

Serial Terminal

Serial Terminal มีประโยชน์เมื่อคุณต้องการส่งและรับข้อมูล Serial ระหว่างแล็ปท็อปและ Arduino โดยใช้โปรโตคอล UART (Universal Asynchronous Receiver/Transmitter) ซึ่งประกอบด้วยสายสัญญาณสองเส้น คือสายส่ง (Tx) และสายรับ (Rx) ข้อมูลจะไหลจาก Tx -> Rx และในทางกลับกัน โดยจะใช้ Start Bit และ Stop Bit เพื่อกำหนดจุดเริ่มต้นและจุดสิ้นสุดของแพ็กเกจข้อมูลที่ส่งหรือรับ คุณสามารถตั้งค่า Baud Rate ซึ่งเป็นความเร็วในการรับส่งข้อมูลได้ โดยปกติคุณจะเห็น Baud Rate เช่น 1200, 2400, 4800, 9600, 19200, 38400, 57600 และ 115200 เพื่อให้แน่ใจว่าการสื่อสารจะสำเร็จ อุปกรณ์ทั้งสองที่คุยกันจะต้องตั้งค่า Baud Rate ให้ตรงกัน มิฉะนั้น อุปกรณ์ตัวหนึ่งจะสุ่มอ่านข้อมูลเร็วหรือช้าเกินไป ส่งผลให้ข้อมูลผิดพลาดได้

ตัวอย่างเช่น หากคุณตั้งค่า Baud Rate ในอุปกรณ์เครื่องหนึ่งเป็น 9600 อุปกรณ์อีกเครื่องที่สื่อสารด้วยก็ต้องตั้งเป็น 9600 เช่นกัน ในการตั้งค่า Baud Rate ของ Uno เราสามารถใช้ฟังก์ชัน Serial.begin().สิ่งที่คุณต้องทำคือใส่ค่า Baud Rate เป็นอาร์กิวเมนต์ สำหรับตัวอย่างข้างต้น เราจะใช้ Serial.begin(9600)

หากต้องการเปิด Serial Monitor ใน Arduino IDE ให้คลิกที่ Tools -> Serial Monitor ตามที่แสดงในรูปด้านล่าง

วิธีเปิด Serial Monitor

เมื่อหน้าต่าง Serial Monitor เปิดขึ้นมา เราต้องระบุ Baud Rate ซึ่งอยู่ที่มุมขวาล่างของหน้าต่าง ที่มุมซ้ายบน คุณจะเห็นว่ามีการเชื่อมต่อกับ COM Port ใดอยู่ ตรวจสอบให้แน่ใจว่าพอร์ตนี้ถูกตั้งค่าให้ตรงกับพอร์ตที่ Uno ของคุณเชื่อมต่ออยู่

การระบุ Baud Rate

Serial Terminal เป็นระบบแบบ Half-duplex ซึ่งหมายความว่าสามารถส่งและรับข้อมูลได้ แต่ไม่สามารถทำได้พร้อมกัน ตัวอย่างเช่น หากเราส่งข้อมูลจากคอมพิวเตอร์ไปยัง Uno เราจะไม่สามารถรับข้อมูลจาก Uno ได้ในขณะนั้น

Wiring

ผมใช้ Breadboard แทน Modulus ในการติดตั้ง Keypad และ Resistor Array

วางตัวต้านทาน 1.2k ohm Resistor Array ตามที่แสดงในรูปด้านล่าง เชื่อมต่อ Pin 1 ของตัวต้านทานเข้ากับ GND และตรวจสอบให้แน่ใจว่าไม่ได้เชื่อมต่อกับ Pins ใดๆ บน Keypad รูของ Breadboard ที่ตีกรอบสีฟ้า-เทาจะถูกเชื่อมต่อเข้ากับ Uno Pins 2-5 ตัวอย่างเช่น Pin 1 (Column 1) บน Keypad จะต่อสายเข้ากับ Uno Pin 2, Pin 2 (Column 2) บน Keypad จะต่อเข้ากับ Uno Pin 3 ไปเรื่อยๆ รูของ Breadboard ที่ตีกรอบสีเหลืองจะถูกต่อเข้ากับ Uno Pins 6-9 ตัวอย่างเช่น Pin 5 (Row 1) บน Keypad จะต่อสายเข้ากับ Uno Pin 6, Pin 6 (Row 2) บน Keypad จะต่อเข้ากับ Uno Pin 7 ไปเรื่อยๆ

Circuit Schematic

หากคุณยังไม่ได้ติดตั้ง Uno ลงบนพื้นที่ Prototyping ของ FuelCan ให้จัดการให้เรียบร้อย ผมวาง Breadboard ไว้ในช่องเก็บของด้านล่างเพื่อจำกัดความยาวของสาย Jumper เราจำเป็นต้องจ่าย GND ให้กับ Ground Rail บน Breadboard โดยใช้สาย Banana Jack to Test-lead Clip ที่ให้มา คุณจะต้องใช้ Male Header Pin หนึ่งตัวเพื่อยึด Test-lead Clip เข้ากับด้าน Breadboard เสียบหัว USB ด้าน Type A เข้ากับช่องเสียบ USB1 และด้าน Type B เข้ากับช่องเสียบของ Uno บนบอร์ด Uno มีชิป UART-to-USB อยู่ ดังนั้นข้อมูล Serial จะถูกส่งผ่านสาย USB เสียบสาย USB แบบ Type A to Type A เข้ากับพอร์ต USB ของคอมพิวเตอร์และตัวเชื่อมต่อ USB ภายนอกของ FuelCan จากนั้นจ่ายไฟให้ FuelCan ด้วยอะแดปเตอร์ AC-DC

Software

เมื่อต่อสายไฟเสร็จเรียบร้อยและจ่ายไฟให้ FuelCan แล้ว ตอนนี้เราสามารถโหลด Sketch ลงบน Uno ได้เลย โค้ด Sketch อยู่ด้านล่างนี้ หากคุณยังไม่ได้เปิด Serial Monitor ให้เปิดขึ้นมาและตรวจสอบให้แน่ใจว่าตั้งค่า Baud Rate เป็น 9600 จากนั้นลองกดแต่ละปุ่มบน Keypad และสังเกตการแสดงผลปุ่มที่ถูกกดบน Serial Terminal หากคุณสังเกตเห็นว่าตัวเลขหรือตัวอักษรแสดงผลสองครั้ง คุณสามารถเพิ่ม Delay เพื่อให้เวลากับการจัดการการสั่นของสวิตช์ได้มากขึ้น

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: displaying-key-pressed-on-serial-monitor-e9541b
16 บาท
PromptPay QR Code