ผู้เขียน หัวข้อ: งานครั้งที่ 14 การแสดงผล 7-segment 8 digit Max7219 ด้วย HCMAX7219  (อ่าน 4942 ครั้ง)

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 688
    • ดูรายละเอียด
    • อีเมล์
การแสดงผล 7-segment 8 digit Max7219 ด้วยไลบรารี่ HCMAX7219

วงจรที่ใช้ทดลอง.
กรณีใช้บอร์ดรุ่น NodeMCU

กรณีใช้บอร์ดรุ่น WeMos D1 mini


ข้อดีของไลบรารี่ HCMAX7219
1. มีฟังก์ชั่นพิมพ์ข้อความให้ใช้งาน
2. มีฟังก์ชั่นแสดงตัวเลข(หลายหลักได้) ทั้งเลขจำนวนบวก/ลบ และแสดงทศนิยมได้
ข้อเสียของไลบรารี่ HCMAX7219
1. เนื่องจากใช้การสื่อสารด้วย SPI ดังนั้นขาเชื่อมต่อที่เป็น MOSI,SCLK จึงเปลี่ยนเป็นขาอื่นไม่ได้
2. การสร้างรูปแบบการติดสว่างของแต่ละเซกเมนต์ต้องเข้าไปแก้ในไลบรารี่

ไลบารี่ที่ใช้งาน
-SPI.h (มีมาพร้อมแล้วไม่ต้องหาดาวน์โหลดเพื่อติดตั้งเพิ่มเติม)
-HCMAX7219.h ดาวน์โหลดได้ที่ https://github.com/HobbyComponents/HCMAX7219

การเพิ่มไลบารี่ลงในโปรแกรม Arduino IDE จากไฟล์ Zip
1. ดาวน์โหลดไฟล์ Zip ดังรูป


2. ทำการเพิ่มไลบรารี่ลงในโปรแกรม Arduino IDE โดยการเพิ่มจากไฟล์ zip แล้วทำการหาไฟล์ zip ที่ได้จากการดาวน์โหลดในข้อ 1



ฟังก์ชั่นในไลบารี่ HCMAX7219.h
-HCMAX7219.Intensity(Level, Driver) //level 0-15
-HCMAX7219.Clear()   //Clears the contents of the output buffer.
-HCMAX7219.Refresh() //Update all connected drivers with the contents of the output buffer.
-HCMAX7219.print7Seg("TEXT STRING", Offset)
-HCMAX7219.print7Seg(Value, Offset)
-HCMAX7219.print7Seg(Value, Decimal_Position, Offset)

รายละเอียดเพิ่มเติมของไลบารี่
http://forum.hobbycomponents.com/viewtopic.php?f=58&t=1794

วงจรที่ใช้ทดลอง


ตัวอย่างโปรแกรม
โค๊ด: [Select]
/* 
PINOUT:
MODULE.....NodeMCU/WeMos D1 mini
VCC.............+5V
GND.............GND
DIN.............GPIO13(D7)(MOSI)
CS (LOAD).......GPIO12(D6)
CLK.............GPIO14(D5)(SCLK)
*/

#include <HCMAX7219.h>
#include "SPI.h"
#define LOAD 12             /* Set the LOAD (CS) GPIO12=D6 */
HCMAX7219 HCMAX7219(LOAD);
void setup()
{   
  HCMAX7219.Intensity(4, 0);    /*Sets the intensity of the LED 0 to 15 */
}
void loop()
{
  HCMAX7219.Clear();            /* Clear the output buffer */
  HCMAX7219.print7Seg("ABCD",8);/* Write some text to the output buffer */
  HCMAX7219.print7Seg(123,2,3); /* Write value to the output buffer */
  HCMAX7219.Refresh();          /* Send the output buffer to the display */
  while(1);
}
*เฉพาะขา CS สามารถเปลี่ยนไปใช้ขาอื่น ๆ ได้

รูปแบบการแสดงผล (จากโปรแกรมตัวอย่างข้างบน)


ผลการรัน

« แก้ไขครั้งสุดท้าย: กันยายน 04, 2019, 01:40:49 PM โดย admin »