ใบงานรายวิชา พื้นฐานการอินเตอร์เฟส สัปดาห์ที่ 14
ใบงานประจำสัปดาห์ รายวิชาพื้นฐานการอินเตอร์เฟส
จงเขียนไมโครคอนโทรลเลอร์ โดยกำหนดให้เชื่อมต่อกับโมดูลการแสดงผล 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
ให้นักเรียนนักศึกษาต่ออุปกรณ์ดังต่อไปนี้แล้วทำให้ได้ตามข้อย่อยที่กำหนด โดยใบงานในสัปดาห์นี้เป็นในงานที่ต่อเนื่องกันทั้งหมด
รายการอุปกรณ์ดังต่อไปนี้
- ไมโครคอนโทรลเลอร์
- lcd 16x2 i2c
- สวิทช์ button 2 button ตัวต้านทาน 1k โอห์ม
ตัวอย่าง code สำหรับการเรียกใช้งาน lcd16x2 i2c ตัวอย่าง code สำหรับการเรียกใช้งาน ปุ่มกด button
ให้นักเรียนนักศึกษาทำไปทีละข้อย่อยแล้วเรียกตรวจ พร้อมอธิบาย
- 1 กำหนดให้นักเรียนนักศึกษาเชื่อมต่อไมโครคอนโทรลเลอร์เข้ากับโมดูล lcd1602 โดยให้แสดงผลเลขที่บรรทัดแรกแล้วกระพริบ 2 ครั้งแล้วหายไป (เลขที่2คน กรณีทำคู่) และแสดงผลชื่อนักเรียน(อังกฤษ)ผ่าน Serial monitor (ข้อย่อยที่ 1 จะต้องอยู่ในทุกๆข้อย่อยอื่นๆ ก่อนเริ่มการทำงาน)
- 2 กำหนดให้นักเรียนนักศึกษาเชื่อมต่อไมโครคอนโทรลเลอร์เข้ากับโมดูล lcd1602 และ button ปุ่มกด 1 ปุ่ม เมื่อทำการกดปุ่มแล้ว ให้แสดงผลสัญลักษณ์ดอกจัน (*) บนหน้าจอ lcd1602 และแสดงสัญลักษณ์ดอกจัน (*) ผ่าน Serial monitor (กดซ้ำแสดงเพิ่มขึ้น)
- 3 (ต่อ) จากข้อย่อยที่ 2 ให้ทำการเขียนโปรแกรมเพิ่มเติมโดยกำหนดให้เมื่อมีการกดปุ่มจะเป็นการเลื่อน สัญลักษณ์ดอกจัน(*) ไปทางด้านขวามือไปเรื่อยๆ หากสุดขอบด้านขวามือสุดให้ แสดงค้างไว้ (สัญลักษณ์ดอกจัน (*) ต้องแสดงเริ่มต้นที่ตำแหน่ง (0,0) และแสดงครั้งละ 1 ตัว(by รชต)
ดอกจัน ค้างไว้เท่านั้นห้ามเถียง
- 4 (ต่อ) จากข้อย่อยที่ 3 ให้ทำการเขียนโปรแกรมเพิ่มเติมโดยกำหนด เมื่อมีการกด button ตัวที่ 2 จะเป็นการ สั่งให้สัญลักษณ์ดอกจัน (*) กลับไปยังตำแหน่งจุดเริ่มต้นโดยการแสดงผลการกลับไปจุดเริ่มต้นนั้นจะต้องค่อยๆ เลื่อนตำแหน่งที่อยู่ในปัจจุบัน กลับไปทางซ้ายมือครั้งละ 1 วินาทีเท่านั้น (กล่าวคือ การกดปุ่มในข้อย่อยที่ 2 มากเท่าไรจำนวนการเลื่อนกลับตำแหน่งเดิมก็จะมากตามไปด้วย)
- 5 (เมื่อนักเรียนนักศึกษาเริ่มทำข้อที่ 5 แล้วให้เรียกครูผู้สอนตรวจในข้อที่ 4 ก่อน) กำหนดให้นักเรียนนักศึกษาเชื่อมต่อไมโครคอนโทรลเลอร์เข้ากับโมดูล lcd1602 และ button ปุ่มกด โดยกำหนดให้แสดงผลข้อความ "WellcomToTechcom" ที่จอ lcd1602 ในบรรทัดแรกค้างไว้ตลอด และแสดงผลข้อความ "WellcomToTechcom" ผ่าน Serial monitor 1 ข้อความ
- 6 (ต่อ) จากข้อย่อยที่ 5 ให้ทำการเขียนโปรแกรมเพิ่มเติมโดยกำหนด เมื่อมีการกด button ตัวที่ 1 จะเป็นการแสดงผลว่างเปล่า 1 ตัวอักษรใน ในบรรทัดแรก และเมื่อกดปุ่มซ้ำๆ จะเป็นการเลื่อนตำแหน่งค่าว่างนี้ไปเรื่อยๆทางขวามือ หากตำแหน่งที่ปรากฏอยู่ไม่ถูกแทนที่ด้วยค่าว่างให้แสดงผลข้อความดังเดิม และแสดงผลข้อความผ่าน Serial monitor ด้วยข้อความ " Index 1" หากค่าว่างนั้นอยู่ในตำแหน่งแรก แต่เมื่อตำแหน่งเปลี่ยนแปลงไป index จะต้องเปลี่ยนตามไปด้วยเช่น " Index 2" , " Index 3" (จากรูปตัวอย่างจะเป็นว่า ตำแหน่งตัวอักษร e หายไปเพราะถูกแทนที่ด้วยค่าว่างเปล่าแล้วจากการกดปุ่ม 1 ครั้ง เมื่อกดปุ่มซ้ำค่าว่างนั้นจะถูกเลื่อนไปทางขวา)
- 7 (ต่อ) จากข้อย่อยที่ 6 กำหนดให้เขียนโปรแกรมเพิ่มเติมโดยกำหนดให้การทำงานเหมือนข้อที่ 6 เพิ่มการกดปุ่มที่ 2 เพื่อเลื่อนตำแหน่งกลับไปทางซ้ายมือ
ความคิดเห็น
แสดงความคิดเห็น