ในเซสชั่นนี้เราจะออกแบบจอแสดงผลLED 8x8 พร้อมเมทริกซ์ LED 8x8 และไมโครคอนโทรลเลอร์ ATmega8ซึ่งสามารถแสดงตัวอักษรหรือชื่อได้ เมทริกซ์ led 8x8 ทั่วไปแสดงอยู่ด้านล่าง:
เมทริกซ์ LED 8x8 ประกอบด้วยไฟ LED 64 ดวง (ไดโอดเปล่งแสง) ซึ่งจัดเรียงในรูปแบบของเมทริกซ์ดังนั้นชื่อเมทริกซ์ LED เมทริกซ์เหล่านี้สามารถทำได้โดยการหมุนเวียนไฟ LED 64 ดวง อย่างไรก็ตามกระบวนการนั้นใช้เวลานาน วันนี้มีจำหน่ายในรูปแบบกะทัดรัดดังแสดงในรูป โมดูลขนาดกะทัดรัดเหล่านี้มีให้เลือกหลายขนาดและหลายสี สามารถเลือกได้ตามความสะดวก
ค่าใช้จ่ายของโมดูลนั้นเท่ากับต้นทุน 64 LED ดังนั้นสำหรับมือสมัครเล่นจึงเป็นเรื่องง่ายที่สุดในการทำงาน การกำหนดค่า PIN ของโมดูลดังแสดงในรูป PIN ควรเป็นหมายเลขตรงตามที่แสดงในภาพเพื่อหลีกเลี่ยงข้อผิดพลาด เราจะพูดถึงการกำหนดค่าวงจรภายในของโมดูลโดยละเอียดในรายละเอียด
ส่วนประกอบ
ฮาร์ดแวร์: ATMEGA8, แหล่งจ่ายไฟ (5v), AVR-ISP PROGRAMMER, ตัวเก็บประจุ 100 uF (เชื่อมต่อกับแหล่งจ่ายไฟ), ตัวต้านทาน1KΩ (8 ชิ้น)
ซอฟต์แวร์: Atmel studio 6.1, progisp หรือ flash magic
แผนภาพวงจรและการทำงาน
การเชื่อมต่อระหว่างATMEGA8 และโมดูลเมทริกซ์ LEDแสดงดังรูปด้านล่าง
PORTD, PIN0 ------------------ PIN13 ของโมดูล LED
PORTD, PIN1 ------------------ PIN03 ของโมดูล LED
PORTD, PIN2 ------------------ PIN04 ของโมดูล LED
PORTD, PIN3 ------------------ PIN10 ของโมดูล LED
PORTD, PIN4 ------------------ PIN06 ของโมดูล LED
PORTD, PIN5 ------------------ PIN11 ของโมดูล LED
PORTD, PIN6 ------------------ PIN15 ของโมดูล LED
PORTD, PIN7 ------------------ PIN16 ของโมดูล LED
PORTB, PIN0 ------------------ PIN09 ของโมดูล LED
PORTB, PIN1 ------------------ PIN14 ของโมดูล LED
PORTB, PIN2 ------------------ PIN08 ของโมดูล LED
PORTB, PIN3 ------------------ PIN12 ของโมดูล LED
PORTC, PIN0 ------------------ PIN01 ของโมดูล LED
PORTC, PIN1 ------------------ PIN07 ของโมดูล LED
PORTC, PIN2 ------------------ PIN02 ของโมดูล LED
PORTC, PIN3 ------------------ PIN05 ของโมดูล LED
วงจรของ 8x8 จอแสดงผล LED เมทริกซ์จะแสดงในรูปด้านล่าง
มี LED 64 ดวงจัดเรียงในรูปแบบเมทริกซ์ ดังนั้นเราจึงมี 8 คอลัมน์และ 8 แถวดังแสดงในรูป เหนือแถวและคอลัมน์เหล่านั้นขั้วบวกทั้งหมดในแถวจะถูกรวมเข้าด้วยกัน สำหรับแต่ละแถวจะมีขั้วบวกทั่วไปหนึ่งขั้วสำหรับ LED ทั้งหมด 8 ดวงในแถวนั้น ดังแสดงในรูปด้านล่าง
ดังนั้นสำหรับ 8 แถวเรามี 8 ขั้วบวกทั่วไปให้พิจารณาแถวแรก ดังที่เห็นในภาพไฟ LED จาก D1 ถึง D8 มีขั้วบวกทั่วไปและนำออกจาก LED MODULE เป็น PIN9
จะเห็นได้ว่าผลบวกทั่วไปทั้งหมดของแถวนั้นไม่ได้ถูกนำออกมาจาก LED MODULE อย่างเป็นระเบียบ มีความผิดปกติอย่างมากบนขั้วทั่วไปในทุกกรณี ควรคำนึงถึงสิ่งนี้ในขณะเชื่อมต่อเทอร์มินัล
สมมติว่าเราต้องการให้ LED ตัวใดตัวหนึ่งหรือทั้งหมดในแถวแรกของเมทริกซ์เปิดอยู่เราควรเปิด PIN9 ของ LED MATRIX MODULE ไม่ใช่ PIN0
สมมติว่าเราต้องการให้ LED ตัวใดตัวหนึ่งหรือทั้งหมดในแถวที่สามของเมทริกซ์เปิดอยู่เราควรเปิด PIN8 ของ LED MATRIX MODULE ไม่ใช่ PIN2
ดังนั้นเมื่อใดก็ตามที่เราต้องการให้ไฟ LED หนึ่งดวงหรือทั้งหมดในแถวเปิดอยู่จะต้องเปิดพินที่เกี่ยวข้องของโมดูล LED
นี่ยังไม่จบเพียงแค่ปล่อยให้ ROWS พลังงานไม่ได้ผลอะไรเลย เราต้องกราวด์อีกด้าน เราจะพูดถึงด้านล่าง
ตอนนี้สำหรับอินสแตนซ์นี้เราจะไม่สนใจแถวบวกทั่วไปและมุ่งเน้นไปที่คอลัมน์เชิงลบทั่วไป
ดังนั้นในโมดูลนั้นขั้วลบทั้งหมดของคอลัมน์แรกจะถูกรวมเข้ากับ PIN13 ดังแสดงในรูปด้านล่าง
นอกจากนี้ยังมีความผิดปกติของ PIN OUTAGE ของโมดูล LED คอลัมน์แรกที่เป็นลบทั่วไปจะถูกนำออกมาที่ PIN13 LED คอลัมน์ที่สองค่าลบทั่วไปถูกนำออกมาที่ PIN3
ควรใส่ใจกับหมุดขณะเชื่อมต่อ ตอนนี้ถ้า LEDS ตัวใดตัวหนึ่งหรือทั้งหมดในคอลัมน์แรกต้องต่อสายดินให้ต่อสายดิน PIN13 ของ MATRIX MODULE วิธีนี้จะไปยังคอลัมน์เชิงลบทั่วไปอีกเจ็ดคอลัมน์ เมื่อนำทั้งสองกรณีมารวมกันเราจะเจอวงจรดังที่แสดงด้านล่าง
วงจรด้านบนเป็นแผนภาพภายในที่สมบูรณ์ของ LED MODULE สมมติว่าเราต้องการเปิด LED D10 ในเมทริกซ์เราจำเป็นต้องจ่ายไฟให้ PIN14 ของโมดูลและต่อสาย PIN3 บนโมดูล ด้วยสิ่งนี้ D10 จะเปิดขึ้น ดังแสดงในรูปด้านล่าง ขั้นแรกควรตรวจสอบ MATRIX เพื่อให้ทราบทุกอย่างตามลำดับ
สมมติว่าเราต้องการเปิด D1 เราต้องจ่ายไฟ PIN9 ของเมทริกซ์และต่อสายดิน PIN13 ด้วย LED D1 นั้นจะเรืองแสง ทิศทางปัจจุบันสำหรับกรณีนี้แสดงไว้ในรูปด้านล่าง
ตอนนี้สำหรับส่วนที่ยุ่งยากให้พิจารณาว่าเราต้องการเปิดทั้ง D1 และ D10 พร้อมกัน ดังนั้นเราจึงจ่ายไฟทั้ง PIN9, PIN14 และกราวด์ทั้ง PIN13, PIN3 ด้วยเหตุนี้เราจะมี D2 และ D9 ON พร้อมกับ D1 และ D10 เป็นเพราะพวกเขาใช้เทอร์มินัลร่วมกัน ดังนั้นหากเราต้องการเปิดไฟ LED ตามแนวทแยงเราจะบังคับให้เปิดไฟ LED ทั้งหมดตลอดทาง ดังแสดงในรูปด้านล่าง
ดังนั้นเพื่อขจัดปัญหานี้เราจะเปิดครั้งละหนึ่งรายการเท่านั้น พูดที่ t = 0m SEC ไฟ LED D1 จะเปิด ที่ t = 1m วินาที LED D1 จะถูกปรับปิดและ LED D2 เปิดอยู่ อีกครั้งที่ t = 2 เมตรวินาที LED D2 จะปิดและ LED D1 เปิดอยู่ สิ่งนี้ดำเนินต่อไป
เคล็ดลับคือตาของมนุษย์ไม่สามารถจับความถี่ได้มากกว่า 30 HZ นั่นคือถ้า LED เปิดและปิดอย่างต่อเนื่องในอัตรา 30HZ หรือมากกว่า ตาจะมองเห็น LED เป็น ON อย่างต่อเนื่อง อย่างไรก็ตามนี่ไม่ใช่กรณี LED จะเปิดและปิดตลอดเวลา เทคนิคนี้เรียกว่าการมัลติเพล็กซ์
เมื่อใช้มัลติเพล็กซ์เราจะเลี้ยวทีละแถวเท่านั้นและจะมีการหมุนรอบ 8 แถวอย่างต่อเนื่อง สิ่งนี้มองเห็นได้ว่าเป็นเมทริกซ์ที่เปิดอย่างสมบูรณ์ด้วยตาเปล่า
ตอนนี้สมมติว่าเราต้องการแสดง“ A” บนเมทริกซ์
อย่างที่บอกเราจะเปิดหนึ่งแถวในทันที
ที่ t = 0m วินาที PIN09 ถูกตั้งค่าเป็น HIGH (พิน ROW อื่น ๆ อยู่ต่ำในขณะนี้) ในเวลานี้ PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 จะต่อสายดิน (พิน COLUMN อื่น ๆ จะสูงในขณะนี้)
ที่ t = 1m SEC PIN14 ถูกตั้งค่าเป็น HIGH (พิน ROW อื่น ๆ อยู่ต่ำในขณะนี้) ในเวลานี้ PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 จะมีการต่อสายดิน (พิน COLUMN อื่น ๆ จะสูงในขณะนี้)
ที่ t = 2m วินาที PIN08 ถูกตั้งค่าเป็น HIGH (พิน ROW อื่น ๆ อยู่ต่ำในขณะนี้) ในเวลานี้ PIN13, PIN3, PIN15, PIN16 จะต่อสายดิน (พิน COLUMN อื่น ๆ จะสูงในขณะนี้)
ที่ t = 3m วินาที PIN12 ถูกตั้งค่าเป็น HIGH (พิน ROW อื่น ๆ ต่ำในขณะนี้) ในเวลานี้ PIN13, PIN3, PIN15, PIN16 จะต่อสายดิน (พิน COLUMN อื่น ๆ อยู่ในระดับสูงในขณะนี้)
ที่ t = 4m SEC PIN01 ถูกตั้งค่าเป็น HIGH (พิน ROW อื่น ๆ ต่ำในขณะนี้) ในเวลานี้ PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 จะมีการต่อสายดิน (พิน COLUMN อื่น ๆ จะสูงในขณะนี้)
ที่ t = 5m SEC PIN07 ถูกตั้งค่าเป็น HIGH (พิน ROW อื่น ๆ อยู่ต่ำในขณะนี้) ในเวลานี้ PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 จะถูกต่อลงดิน (พิน COLUMN อื่น ๆ จะสูงในขณะนี้)
ที่ t = 6m SEC PIN02 ถูกตั้งค่าเป็น HIGH (หมุด ROW อื่น ๆ อยู่ในขณะนี้ต่ำ) ในเวลานี้ PIN13, PIN3, PIN15, PIN16 จะต่อสายดิน (พิน COLUMN อื่น ๆ อยู่ในระดับสูงในขณะนี้)
ที่ t = 7m วินาที PIN05 ถูกตั้งค่าเป็น HIGH (พิน ROW อื่น ๆ ต่ำในเวลานี้) ในเวลานี้ PIN13, PIN3, PIN15, PIN16 จะต่อสายดิน (พิน COLUMN อื่น ๆ ในขณะนี้สูง)
ด้วยความเร็วนี้จอแสดงผลจะแสดงเป็นอักขระ“ A” อย่างต่อเนื่อง ดังแสดงในรูป
นี่คือลักษณะที่แสดงอักขระทั้งหมดในหน้าจอ หลังจากเชื่อมต่อวงจรด้วยวิธีที่เหมาะสมดังแสดงในแผนภาพวงจร เราสามารถให้คำสั่งคอนโทรลเลอร์ได้โดยตรงเพื่อดำเนินการมัลติเพล็กซ์ตามลำดับสำหรับชื่อที่จะแสดง