สารบัญ:

เมทริกซ์ LED ปุ่มกด: 4 ขั้นตอน
เมทริกซ์ LED ปุ่มกด: 4 ขั้นตอน

วีดีโอ: เมทริกซ์ LED ปุ่มกด: 4 ขั้นตอน

วีดีโอ: เมทริกซ์ LED ปุ่มกด: 4 ขั้นตอน
วีดีโอ: การใช้ keypad 4x4 ร่วมกับ Arduino 2024, พฤศจิกายน
Anonim
เมทริกซ์ LED ปุ่มกด
เมทริกซ์ LED ปุ่มกด

โปรเจ็กต์นี้ถือได้ว่าเป็นอีกหนึ่งโปรเจ็กต์ Arduino เบื้องต้นที่ล้ำหน้ากว่าโปรเจ็กต์ 'ไฟ LED กะพริบ' ทั่วไปของคุณเล็กน้อย โปรเจ็กต์นี้รวม LED matrix, ปุ่มกด, shift register (ซึ่งสามารถบันทึกพินบนบอร์ด Arduino ของคุณได้) และแนวคิดหลักที่เรียกว่ามัลติเพล็กซ์ ฉันหวังว่าคุณจะพบว่าบทช่วยสอนนี้ให้ความรู้และท้าทายตัวเองในการปรับปรุงให้ดีขึ้น!

เสบียง

(1x) Arduino Uno

(5x) ปุ่มกดสัมผัส

(2x) ตัวเก็บประจุ 0.1 ยูเอฟ

(2x) ตัวเก็บประจุ 1 ยูเอฟ

(8x) ตัวต้านทาน 1k

(5x) ตัวต้านทาน 10k

(2x) 74HC595 shift registers

สายจัมเปอร์

ลวดดำ

สายสีแดง

ขั้นตอนที่ 1: ขั้นตอนที่ 1: การสร้างเมทริกซ์ LED

ขั้นตอนที่ 1: การสร้างเมทริกซ์ LED
ขั้นตอนที่ 1: การสร้างเมทริกซ์ LED
ขั้นตอนที่ 1: การสร้างเมทริกซ์ LED
ขั้นตอนที่ 1: การสร้างเมทริกซ์ LED
ขั้นตอนที่ 1: การสร้างเมทริกซ์ LED
ขั้นตอนที่ 1: การสร้างเมทริกซ์ LED

บทช่วยสอนที่ฉันใช้สร้างเมทริกซ์ LED 8x8 ในโครงการนี้สามารถพบได้ที่นี่ มีการกำหนดค่าทั่วไปสำหรับเมทริกซ์ LED:

ก) แอโนดแถวทั่วไป

b) แคโทดแถวทั่วไป

เนื่องจากฉันใช้การจัดเรียง Common Row Cathode ของเมทริกซ์ ฉันจะพูดถึงมันที่นี่เป็นหลัก และคุณสามารถขยายตรรกะเดียวกันกับการจัดเรียง Common Row Anode ได้ ในการจัดเรียงแคโทดแถวทั่วไป แคโทดของ LED (หรือขั้วลบซึ่งเป็นขาที่สั้นกว่าบน LED) จะเชื่อมต่อกันเป็นแถวในขณะที่ขั้วบวก (หรือขั้วบวกซึ่งเป็นขาที่ยาวกว่าบน LED) เชื่อมต่อกันเป็นคอลัมน์. ในการกำหนดที่อยู่ LED เฉพาะ ให้ดึงแถวแคโทดที่แคโทด LED อยู่ต่ำ และดึงคอลัมน์แอโนดที่แอโนด LED อยู่สูง

หมายเหตุ: เมื่อสร้างเมทริกซ์ LED ที่แสดงในลิงก์ด้านบน ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อคอลัมน์แอโนดกับตัวต้านทาน 1k โอห์ม ก่อนใช้แรงดันไฟฟ้าใดๆ กับไฟ LED

ขั้นตอนที่ 2: ขั้นตอนที่ 2: การเดินสายปุ่มกดและ Shift Registers

ขั้นตอนที่ 2: การเดินสายปุ่มกดและ Shift Registers
ขั้นตอนที่ 2: การเดินสายปุ่มกดและ Shift Registers
ขั้นตอนที่ 2: การเดินสายปุ่มกดและ Shift Registers
ขั้นตอนที่ 2: การเดินสายปุ่มกดและ Shift Registers
ขั้นตอนที่ 2: การเดินสายปุ่มกดและ Shift Registers
ขั้นตอนที่ 2: การเดินสายปุ่มกดและ Shift Registers
ขั้นตอนที่ 2: การเดินสายปุ่มกดและ Shift Registers
ขั้นตอนที่ 2: การเดินสายปุ่มกดและ Shift Registers

การเดินสายไฟสำหรับปุ่มกดและตัวเปลี่ยนเกียร์แสดงไว้ด้านบน ฉันต้องการทราบว่าการลงทะเบียนกะในแผนภาพวงจรไม่แสดงขากราวด์ (พิน 8 ของ IC) และ Vcc หรือแหล่งจ่ายไฟ (พิน 16 ของ IC) สำหรับชิป ขากราวด์เชื่อมต่อกับพิน GND ของบอร์ด Arduino และ Vcc เชื่อมต่อกับพิน 5V ของบอร์ด Arduino Vcc pin ของ shift register แต่ละอันเชื่อมต่อกับตัวเก็บประจุ 0.1uF ที่เชื่อมต่อกับกราวด์

หมายเหตุ: ผลลัพธ์ของการลงทะเบียนกะแต่ละรายการจะแสดงเป็น QA ถึง QH (ละเว้น QH*) มีการระบุไว้ในแง่ของบิตที่มีนัยสำคัญน้อยที่สุด (LSB) (สำหรับ QA) ถึงบิตที่สำคัญที่สุด (MSB) (สำหรับ QH) เช่น QA จะควบคุมแถวหรือคอลัมน์ที่ 0 เป็นต้น

ขั้นตอนที่ 3: ขั้นตอนที่ 3: การอัปโหลดรหัส

โค้ดสำหรับควบคุมเมทริกซ์ LED แนบมากับบทช่วยสอนนี้ ฉันพยายามแสดงความคิดเห็นโค้ดให้มากที่สุดเท่าที่จะทำได้ เพื่อให้ชัดเจนว่าโปรแกรมทำงานอย่างไร พื้นฐานหลักของโปรแกรมคือมีเมทริกซ์ที่คอยติดตามว่าไฟ LED ใดควรเปิดหรือปิด เพื่อให้ LED ต่างๆ แสดงอย่างถูกต้องโดยไม่ต้องเปิดไดโอดที่ไม่ต้องการโดยไม่ได้ตั้งใจ คือการใช้แนวคิดที่เรียกว่ามัลติเพล็กซ์ การทำมัลติเพล็กซ์จะทำให้ไฟ LED แต่ละดวงสว่างขึ้นในแถวใดแถวหนึ่ง ในขณะที่ LED อื่นๆ ทั้งหมดในแถวอื่นๆ จะทำเช่นเดียวกันกับแถวที่เหลือ เคล็ดลับคือถ้าไฟ LED วนไปตามแถวต่างๆ เร็วพอ ดวงตาของคุณจะสามารถบอกได้ว่าแต่ละแถวจะติดสว่างทีละแถว หากคุณต้องการสำรวจวิธีการอื่นๆ ที่คุณสามารถหลอกตาด้วย LED ได้ คุณอาจต้องการพิจารณาแนวคิดเรื่องการคงอยู่ของการมองเห็น (ค้นหาได้ง่ายบน Google หรือ Instructables)

วิธีอัปเดตคอลัมน์แอโนดและแถวแคโทดโดยใช้ฟังก์ชันที่ผู้ใช้กำหนดเองที่เรียกว่า 'UpdateShiftRegisters' ฟังก์ชันนี้จะเปลี่ยนสลักสลักก่อน ซึ่งจะควบคุมว่าไบต์ใหม่ (8 บิต) ถูกส่งไปยังเอาต์พุตหรือไม่ โดยมีค่าต่ำ ดังนั้นจึงไม่มีการเปลี่ยนแปลงใดๆ กับเอาต์พุตในขณะที่กำลังเขียนบิตใหม่ไปยังชิป จากนั้นใช้ฟังก์ชัน Arduino ในตัวที่เรียกว่า 'ShiftOut' ซึ่งจัดการการส่งข้อมูลไปยัง shift register โดยเฉพาะ โปรแกรมจะเขียนแถวใด (แคโทด) ที่ต่ำ และคอลัมน์ (แอโนด) ใดควรสูง สุดท้าย สลักสลักถูกดึงขึ้นสูงเพื่ออัปเดตเอาต์พุต (ไฟ LED)

ขั้นตอนที่ 4: ข้อมูลเพิ่มเติม/แหล่งข้อมูล

นี่คือลิงค์ไปยังเว็บไซต์หรือหนังสือที่อาจให้ข้อมูลเพิ่มเติมเกี่ยวกับโครงการนี้:

learn.adafruit.com/adafruit-arduino-lesson-4-eight-leds/arduino-code

www.arduino.cc/en/tutorial/ShiftOut

www.ti.com/lit/ds/symlink/sn74hc595.pdf

www.youtube.com/watch?v=7VYxcgqPe9A

www.youtube.com/watch?v=VxMV6wGS3NY

เริ่มต้นใช้งาน Arduino รุ่นที่ 2 โดย Massimo Banzi

แนะนำ: