ในบทช่วยสอนนี้เราจะเชื่อมต่อกับปุ่มกดแบบสัมผัส 4x2 (8 ปุ่ม) กับไมโครคอนโทรลเลอร์ ATMEGA32A เราทุกคนทราบดีว่าปุ่มกดเป็นอุปกรณ์อินพุตที่สำคัญที่สุดอย่างหนึ่งที่ใช้ในวิศวกรรมอิเล็กทรอนิกส์ โมดูลนี้ไม่มีคีย์จริง แต่มีแผ่นโลหะแบบ capacitive ที่ออกแบบมาเป็นพิเศษและแผ่นอิเล็กโทรดเหล่านี้มีความไวมาก ดังนั้นเมื่อบุคคลสัมผัสกับหนึ่งในแผ่นอิเล็กโทรดจะมีการเปลี่ยนแปลง capacitive ในลูปที่สอดคล้องกันและการเปลี่ยนแปลงนี้จะรับรู้ได้โดยอิเล็กทรอนิกส์ควบคุมในโมดูล เนื่องจากการตอบสนองต่อการสัมผัสขาเอาต์พุตของแผ่นรองที่เกี่ยวข้องจะสูงขึ้น
สำหรับทัชแพดแปดปุ่มเราจะมีเอาต์พุตแปดตัว แม้ว่าจะมีคุณสมบัติอื่น ๆ ในโมดูลนี้ แต่เราจะไม่พูดถึงคุณสมบัติเหล่านี้ที่นี่
ส่วนประกอบที่จำเป็น
ฮาร์ดแวร์:ไมโครคอนโทรลเลอร์ ATMEGA32, พาวเวอร์ซัพพลาย (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16x2LCD), ตัวเก็บประจุ 100uF, ตัวเก็บประจุ 100nF, ตัวต้านทาน1KΩ (2 ชิ้น), โมดูลปุ่มกดแบบสัมผัส
ซอฟต์แวร์: Atmel studio 6.1 หรือ Atmel studio 6.2, progisp หรือ flash magic
แผนภาพวงจรและคำอธิบายการทำงาน
ในวงจร PORTB ของ ATMEGA32 เชื่อมต่อกับพอร์ตข้อมูล LCD ที่นี่อย่าลืมปิดการใช้งานการสื่อสาร JTAG ใน PORTC เป็น ATMEGA โดยการเปลี่ยนฟิวส์ไบต์หากต้องการใช้ PORTC เป็นพอร์ตการสื่อสารปกติ ในจอ LCD 16x2 จะมี 16 พินทั้งหมดหากมีไฟด้านหลังหากไม่มีไฟด้านหลังจะมี 14 พิน หนึ่งสามารถจ่ายไฟหรือปล่อยหมุดไฟด้านหลัง ตอนนี้ใน 14 พินมีพินข้อมูล 8 พิน (7-14 หรือ D0-D7), พินแหล่งจ่ายไฟ 2 พิน (1 & 2 หรือ VSS & VDD หรือ gnd & + 5v), พิน3 rdสำหรับควบคุมคอนทราสต์ (VEE- ควบคุมความหนาของตัวอักษร แสดง) และ 3 พินควบคุม (RS & RW & E)
ในวงจรคุณสามารถสังเกตได้ว่าฉันใช้พินควบคุมเพียงสองอันทำให้เกิดความยืดหยุ่นในการทำความเข้าใจที่ดีขึ้นไม่ได้ใช้บิตคอนทราสต์และ READ / WRITE บ่อยครั้งดังนั้นจึงสามารถลัดลงกราวด์ ทำให้ LCD มีคอนทราสต์สูงสุดและโหมดอ่าน เราต้องควบคุมพิน ENABLE และ RS เพื่อส่งอักขระและข้อมูลตามนั้น
การเชื่อมต่อที่ทำกับ LCD มีดังต่อไปนี้:
PIN1 หรือ VSS ลงกราวด์
PIN2 หรือ VDD หรือ VCC ถึง + 5v
PIN3 หรือ VEE กับพื้น (ให้ความเปรียบต่างสูงสุดที่ดีที่สุดสำหรับผู้เริ่มต้น)
PIN4 หรือ RS (Register Selection) ถึง PD6 ของ uC
PIN5 หรือ RW (อ่าน / เขียน) ลงกราวด์ (ทำให้ LCD อยู่ในโหมดอ่านช่วยให้การสื่อสารสำหรับผู้ใช้ง่ายขึ้น)
PIN6 หรือ E (เปิดใช้งาน) ถึง PD5 ของ uC
PIN7 หรือ D0 ถึง PB0 ของ uC
PIN8 หรือ D1 ถึง PB1 ของ uC
PIN9 หรือ D2 ถึง PB2 ของ uC
PIN10 หรือ D3 ถึง PB3 ของ uC
PIN11 หรือ D4 ถึง PB4 ของ uC
PIN12 หรือ D5 ถึง PB5 ของ uC
PIN13 หรือ D6 ถึง PB6 ของ uC
PIN14 หรือ D7 ถึง PB7 ของ uC
ในวงจรคุณจะเห็นว่าเราใช้การสื่อสาร 8 บิต (D0-D7) แต่นี่ไม่ใช่ภาคบังคับเราสามารถใช้การสื่อสาร 4 บิต (D4-D7) ได้ แต่ด้วยโปรแกรมการสื่อสาร 4 บิตจะซับซ้อนเล็กน้อย
ดังนั้นจากการสังเกตตารางด้านบนเรากำลังเชื่อมต่อ 10 พินของ LCD เข้ากับคอนโทรลเลอร์ซึ่ง 8 พินเป็นพินข้อมูลและ 2 พินสำหรับควบคุม
ก่อนที่จะดำเนินการต่อไปสิ่งสำคัญคือต้องรู้ว่าโมดูล capacitive ทำงานได้กับแรงดันไฟฟ้า 2.5V และกระแสที่ดึงโดยโมดูลสัมผัสก็ไม่สูง ดังนั้นสำหรับการรับ 2.5V สำหรับโมดูลจาก 5V เราจะใช้วงจรแบ่งแรงดันไฟฟ้า
วงจรแบ่งแรงดันไฟฟ้าเดิมโดยตัวต้านทานแสดงในรูปด้านล่าง
ตอนนี้วงจรแบ่งแรงดันไฟฟ้าให้แรงดันไฟฟ้าต่ำสำหรับโมดูลและข้อมูลอ้างอิงอื่น ๆ ดังแสดงในรูปแรงดันขาออกที่จุดกึ่งกลางเป็นอัตราส่วนของความต้านทาน ดังนั้นสำหรับการรับ 2.5v จาก 5V เราจะใช้ R1 = R2 = 1KΩดังนั้นสำหรับแรงดันไฟฟ้า 5V แรงดันไฟฟ้าจุดกึ่งกลางจะเป็น 2.5V เมื่อเทียบกับกราวด์ แรงดันไฟฟ้าจากวงจรแบ่งนี้เชื่อมต่อกับโมดูล ตัวเก็บประจุเชื่อมต่ออยู่เพื่อกรองฮาร์มอนิกดังแสดงในแผนภาพวงจร
พอร์ตเอาต์พุตของโมดูลสัมผัสเชื่อมต่อกับคอนโทรลเลอร์ atmega ดังนั้นเมื่อใดก็ตามที่สัมผัสกับแพดเอาต์พุตพินที่เกี่ยวข้องจะสูง การเปลี่ยนแปลงตรรกะนี้ถูกตรวจจับโดยคอนโทรลเลอร์ ตัวควบคุมจะแสดงตัวเลขบน LCD ตามพินซึ่งจะสูง
เพื่อความปลอดภัยเราสามารถดึงพินเอาต์พุตของโมดูลทั้งหมดลงกราวด์ผ่านตัวต้านทาน 10K แม้ว่าจะไม่บังคับก็ตาม
การทำงานของ TOUCH KEAYPAD INTERFACE อธิบายได้ดีที่สุดในทีละขั้นตอนของรหัส C ด้านล่าง