[2/2567] ใบงานรายวิชาการประยุกต์ไมโครคอนโทรลเลอร์ สัปดาห์ที่ 13

ใบงานประจำสัปดาห์ รายวิชาการประยุกต์ไมโครคอนโทรลเลอร์


จงเขียนไมโครคอนโทรลเลอร์ โดยกำหนดให้เชื่อมต่อกับโมดูลการแสดงผล lcd16x2 เพื่อควบคุมการแสดงผลให้ได้ตามโจทย์ที่กำหนด. โดยใช้ความรู้ในการเขียนโปรแกรมพื้นฐานที่เรียนในสัปดาห์ที่ผ่านมา นำมาประยุกต์ใช้งาน if , if else , while ,for , switch case

ในสัปดาห์นี้เราจะทำการเรียนรู้ การเขียนโปรแกรมควบคุมการแสดงผลผ่านจอ led 16x2 ซึ่งเป็นโมดูลที่นิยมนำมาใช้ในการเขียนเพื่อแสดงผลตัวอักษรหรือค่าต่างๆ สำหรับไมโครคอนโทรลเลอร์ ซึ่งจะมีวิธีการต่อใช้งานเพื่อส่งข้อมูลหากัน อยู่สองวิธีการด้วยกัน คือ

การต่อตรงเข้ากับ lcd โดยใช้สายทั้งหมด 8 เส้น (รวมขอ Vcc , Gnd ), และการต่อด้วยโมดูลไดร์โดยสื่อสารผ่าน บัส I2C

ณ ที่นี้ผู้เขียนเลือกวิธีการต่อจอ lcd ด้วยโมดูลไดร์ I2C เนื่องจากมีข้อดีคือใช่สายในการต่อใช้งานเพียงแค่ 4 เส้น ทำให้เรายังมีขา pin ที่คงเหลือใช้งานสำหรับการเชื่อมต่อกับอุปกรณ์อิเล็กทรอนิก หรือโมดูลอื่นๆ หากนักเรียนนักศึกษาต้องการเรียนรู้เกี่ยวกับการต่อใช้งานด้วย lcd16x2 แบบต่อตรงให้ หาข้อมูลเพิ่มเติมการต่อใน internet หรือลิ้งดังต่อไปนี้ คลิก!!

ความแตกต่างระหว่างการต่อตรงกับแบบมีโมดูลไดร์

หากพิจารณาตามรูปจะเห็นได้ว่าการต่อสายสัญญาณระหว่าง ไมโครคอนโทรลเลอร์กับ lcd1602 แบบชนิดต่อตรงนั้น จะต้องใช้งานสายไฟถึง 8 เส้น (รวม Vcc,Gnd) ถือว่าเป็นการใช้ pin ในการสื่อสารเยอะมากสำหรับการต่อเพื่อใช้งานโมดูลแค่โมดูลเดียว ทำให้เราเหลือสายไฟหรือ pin อื่นๆที่จะใช้เชื่อมต่อกับโมดูลอื่นๆ หรืออุปกรณ์อิเล็กทรอนิกส์อื่นๆนั้นน้อยลง แต่มีข้อดีคือการสื่อสารแบบนี้จะเป็นการรับส่งข้อมูลที่เร็วมากๆ *แต่การแสดงผลนั้นอาจจะไม่จำเป็นต้องใช้งานคุณสมบัติความเร็วในการรรับส่งข้อมูล.

การใช้งานจอ lcd16x2 แบบต่อตรง


การใช้งานจอ lcd16x2 แบบโมดูลไดร์ I2C

ในการต่อใช้งานจอแสดงผล lcd16x2 เข้ากับไมโครคอนโทรลเลอร์ด้วยโมดูลไดร์ I2C มีการเชื่อมต่อดังต่อไปนี้
  • Vcc -- > Vcc (5v)
  • Gnd --> Gnd
  • SCL --> A5
  • SDA -- >A4
เมื่อนักเรียนทำการเชื่อมต่อโมดูลไดร์ I2Cเข้ากับ ไมโครคอนโทรลเลอร์แล้ว การเขียนคำสั่งเพื่อใช้งานจอ lcd นั้นต้องพึ่งพาชุดคำสั่งที่ซับซ้อน เราสามารถเขียนเพื่อเรียกใช้งานคำสั่งเหล่านั้นได้ เพราผู้พัฒนาได้ทำการเตรียมชุดคำสั่งเหล่านั้นไว้แล้ว เราต้องทำคือการเรียกใช้งานไลบรารี่ การที่เราจะเรียกใช้งานไลบรารี่ได้นั้นก็ต้องทำการติดตั้งไลบรารี่ก่อน การติดตั้งไลบรารี่ให้ทำตามขั้นตอนไปพร้อมๆกัน (ทำพร้อมครูผู้สอน)





ให้นักเรียนนักศึกษาต่ออุปกรณ์ดังต่อไปนี้ใน โปรแกรม Tinkercad แล้วทำให้ได้ตามข้อย่อยที่กำหนด โดยใบงานในสัปดาห์นี้เป็นในงานที่ต่อเนื่องกันทั้งหมด

รายการอุปกรณ์ดังต่อไปนี้

  • ไมโครคอนโทรลเลอร์
  • lcd 16x2 i2c
  • สวิทช์ button 2 button ตัวต้านทาน 1k โอห์ม
  • led จำนวน 1 ดวงที่ตำแหน่งขา 13 ของบอร์ด Arduino uno r3

ตัวอย่าง code สำหรับการเรียกใช้งาน ปุ่มกด button




ให้นักเรียนนักศึกษาทำไปทีละข้อย่อยแล้วเรียกตรวจ พร้อมอธิบาย

  • 1 กำหนดให้นักเรียนนักศึกษาเชื่อมต่อไมโครคอนโทรลเลอร์เข้ากับโมดูล lcd1602 โดยให้แสดงผลชื่อของนักเรียนนักศึกษาบรรทัดแรก และเลขที่บรรทัดที่สองค้างไว้ 3 วินาทีแล้วหายไป (เลขที่2คน กรณีทำคู่) (ข้อย่อยที่ 1 จะต้องอยู่ในทุกๆข้อย่อยอื่นๆ ก่อนเริ่มการทำงาน)
  • 2 (ต่อ) กำหนดให้นักเรียนนักศึกษาเชื่อมต่อไมโครคอนโทรลเลอร์เข้ากับโมดูล lcd1602 โดยให้แสดงผลคำว่า "step 1" ในบรรทัดแรกและ "step 2" ในบรรทัดที่สอง
  • 3 (ต่อ) กำหนดให้นักเรียนนักศึกษาเชื่อมต่อไมโครคอนโทรลเลอร์เข้ากับโมดูล lcd1602 โดยให้แสดงผลเครื่องหมาย "น้อยกว่า" ไว้หลังคำว่า "step 1" ที่บรรทัดแรก และเขียนให้สามารถกด button 1 แล้วสามารถสั่งให้เครื่องหมายน้อยกว่าทำการเลื่อน จากบรรทัดที่ 1 ไปยังบรรทัดที่ 2 ได้ที่ index เดี่ยวกัน และสามารถเลื่อนกลับบรรทัดที่ 1 ได้ (เสมือนการเขียนเมนู ใช้ปุ่ม 1 ปุ่มเดียวเท่านั้น)
  • 4 (ต่อ) กำหนดให้นักเรียนนักศึกษาเขียนไมโครคอนโทรลเลอร์ เมื่อเครื่องหมายน้อยกว่าอยู่หลังคำว่า "step 1" แล้วกดปุ่มที่ 2 (เสมือนการเลือก เมนูแรก) กำหนดให้ led แสดงผลแบบไฟกระพริบ led 1 ดวง ติดและดับสลับกันแบบไม่กำหนดรอบ(กระพริบช้า)
  • 5 (ต่อ) กำหนดให้นักเรียนนักศึกษาเขียนไมโครคอนโทรลเลอร์ เมื่ออยู่ในการทำงานของเมนู "step 1" แล้ว การกดปุ่ม 2 จะเป็นการหยุดการกระพริบและกดซ้ำจะเริ่มกระพริบ และการกดปุ่ม 1 จะเป็นการหยุดการทำงานของ led และเลื่อนตำแหน่งการแสดงผลเครื่องหมายน้อยกว่าไปยังบรรทัดที่ 2
  • 6 (ต่อ) กำหนดให้นักเรียนนักศึกษาเขียนไมโครคอนโทรลเลอร์ เมื่อเครื่องหมายน้อยกว่าอยู่หลังคำว่า "step 2" แล้วกดปุ่มที่ 2 (เสมือนการเลือก เมนูที่สอง) กำหนดให้ led แสดงผลโดยการกระพริบเร็ว แบบไม่กำหนดรอบ
  • 7 (ต่อ) กำหนดให้นักเรียนนักศึกษาเขียนไมโครคอนโทรลเลอร์ เมื่ออยู่ในการทำงานของเมนู "step 2" แล้ว การกดปุ่ม 2 จะเป็นการหยุดการกระพริบค้างไว้ ณ ตำแหน่งปัจจุบัน (ต้องมี led ติดค้างไว้ 1 ดาง ที่ led วิ่งแบบดาวตก) และกดซ้ำ led จะวิ่งแบบดาวตกต่อไป และการกดปุ่ม 1 จะเป็นการหยุดการทำงานของ led
ทุกข้อย่อยทำงานต่อเนื่องกัน เมื่อทำถึงข้อสุดท้ายแล้วจะเป็นโปรแกรมที่มีฟังชันการทำงานตามลำดับ สามารถเลือกเมนูการแสดงผลได้

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

[16/07/67] ใบงานรายวิชาไมโครโปรเซสเซอร์และ ไมโครคอนโทรลเลอร์ สัปดาห์ที่ 9

[11/08/2567] ใบงานรายวิชาไมโครคอนโทรลเลอร์และโปรเซส สัปดาห์ที่ 13

[04/08/2567] ใบงานรายวิชาไมโครคอโทรเลอร์และโปรเซส สัปดาห์ที่ 12