สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
MAX7219 เป็นไอซีที่ใช้ขับเคลื่อน LED 7 ส่วน (สูงสุด 8 หลัก) บล็อกจอแสดงผล (แถบแสดง) และ LED 64 ดวงที่เป็นแคโทดร่วม ในการสื่อสารกับไมโครคอนโทรลเลอร์ MAX7219 ใช้ระบบสื่อสาร SPI ดังนั้นในการขับ 64 LEDs ต้องใช้ไมโครคอนโทรลเลอร์เพียง 3 พอร์ตเท่านั้น
ในบทความนี้ ผมจะแสดงวิธีการใช้โมดูล 7-Segement ที่ใช้ IC MAX7219 เป็นไดร์เวอร์
ส่วนประกอบที่จำเป็น:
- MAX7219 โมดูล 7 ส่วน
- Arduino นาโน
- จัมเปอร์ลวด
- USB มินิ
ห้องสมุดที่จำเป็น:
LedControl
ในบทช่วยสอนนี้ ฉันใช้บอร์ด Arduino Nano หากคุณไม่เคยใช้ ฉันแนะนำให้อ่านบทความก่อนหน้าของฉันเกี่ยวกับ "วิธีใช้ Arduino Nano"
ขั้นตอนที่ 1: ประกอบส่วนประกอบทั้งหมด
เชื่อมต่อบอร์ด Arduino กับโมดูล 7-Segment ดูภาพหรือคำแนะนำที่ฉันเขียนด้านล่าง:
Arduino ถึง 7-Segment
+5V => VCC
GND => GND
D12 => DIN
D11 => CLK
D10 => CS/โหลด
ขั้นตอนที่ 2: เพิ่มไลบรารี
หลังจากที่วงจรเสร็จสมบูรณ์ เพิ่มไลบรารี "LedControl" ลงใน Arduino IDE
หากต้องการเพิ่มไลบรารีลงใน Arduino คุณสามารถอ่านได้จากบทความ "วิธีเพิ่มไลบรารีภายนอกไปยัง Arduino" ที่ฉันทำไว้ก่อนหน้านี้
ขั้นตอนที่ 3: ฟังก์ชั่นเพิ่มเติม
หลังจากเพิ่มไลบรารี LedControl คุณสามารถใช้ฟังก์ชันเพิ่มเติมเพื่อควบคุมโมดูล 7-Segment
การโต้แย้ง
addr - ที่อยู่ของจอแสดงผล
digit - ตำแหน่งของตัวเลขบนจอแสดงผล (0.7.7)\ ค่า - ค่าที่จะแสดง (0x0..0x0F)
dp กำหนดจุดทศนิยม
การทำงาน
setChar(addr, ตัวเลข, value.dp); //เพื่อแสดงค่าประเภทถ่านสำหรับการเข้ารหัส ASCII 7 บิต
setDigit(addr, ตัวเลข, ค่า, bolean dp); //เพื่อแสดงตัวเลขและอักขระในฟังก์ชันเดียว setRow(addr, digit, value, boolean dp); //เพื่อแสดงวัตถุในตัวเลขที่ต้องการ
สำหรับรายละเอียดเพิ่มเติม โปรดอ่านที่นี่
ขั้นตอนที่ 4: อัปโหลด Sketch
ฉันได้ร่างสำหรับการทดลองใช้โมดูล 7-Segment นี้ คุณสามารถคัดลอกโค้ดด้านล่าง แล้ววางลงในสเก็ตช์ของคุณ
//เราต้องรวมห้องสมุดไว้ด้วย
#include "LedControl.h"
/*
ตอนนี้เราต้องการ LedControl เพื่อใช้งาน ***** หมายเลขพินเหล่านี้อาจไม่ทำงานกับฮาร์ดแวร์ของคุณ *****
พิน 12 เชื่อมต่อกับ DataIn
ขา 11 เชื่อมต่อกับCLK
พิน 10 เชื่อมต่อกับ LOAD
เรามี MAX72XX เพียงเครื่องเดียว
*/
LedControl lc=LedControl(12, 11, 10, 1);
/* เรามักจะรอเล็กน้อยระหว่างการอัปเดตการแสดงผล */
ความล่าช้านานที่ไม่ได้ลงนาม=500;
การตั้งค่าเป็นโมฆะ () {
/* MAX72XX อยู่ในโหมดประหยัดพลังงานเมื่อเปิดเครื่อง เราต้องปลุกเครื่อง */
lc.shutdown(0, เท็จ);
/* ตั้งค่าความสว่างเป็นค่ากลาง */
lc.setIntensity(0, 8);
/* และล้างหน้าจอ */
lc.clearDisplay(0);}
โมฆะ สวัสดี (){
lc.setChar(0, 7, 'H', เท็จ);
lc.setChar(0, 6, 'E', เท็จ);
lc.setChar(0, 5, 'L', เท็จ);
lc.setChar(0, 4, 'L', เท็จ);
lc.setChar(0, 3, '0', เท็จ);
lc.setChar(0, 2, '.', เท็จ);
lc.setChar(0, 1, '.', เท็จ);
lc.setChar(0, 0, '.', เท็จ);
ล่าช้า(เวลาล่าช้า+1000);
lc.clearDisplay(0);
ล่าช้า (ล่าช้า);
lc.setDigit(0, 7, 1, เท็จ);
ล่าช้า (ล่าช้า);
lc.setDigit(0, 6, 2, เท็จ);
ล่าช้า (ล่าช้า);
lc.setDigit(0, 5, 3, เท็จ);
ล่าช้า (ล่าช้า);
lc.setDigit(0, 4, 4, เท็จ);
ล่าช้า (ล่าช้า);
lc.setDigit(0, 3, 5, เท็จ);
ล่าช้า (ล่าช้า);
lc.setDigit(0, 2, 6, เท็จ);
ล่าช้า (ล่าช้า);
lc.setDigit(0, 1, 7, เท็จ);
ล่าช้า (ล่าช้า);
lc.setDigit(0, 0, 8, เท็จ);
ล่าช้า (1500);
lc.clearDisplay(0);
ล่าช้า (ล่าช้า);
}
วงเป็นโมฆะ () { สวัสดี ();
}
หรือดาวน์โหลดไฟล์ด้านล่าง:
ขั้นตอนที่ 5: ผลลัพธ์
เพลิดเพลินไปกับผลลัพธ์
หากมีคำถามเพียงแค่เขียนลงในคอลัมน์ความคิดเห็น
แล้วพบกันใหม่ในบทความหน้า