STM32بسکامکدویژن

راه اندازی MAX7219 توسط stm32 – کدویژن – بسکام

راه اندازی ماژول MAX7219

5/5 - (10 امتیاز)

راه اندازی LED ماتریسی 8×8 با MAX7219

LED ماتریسی 8×8 یک آرایه LED دو بعدی است که برای نمایش کاراکترها، نمادها و تصاویر می توانیم از آن استفاده کنیم . تقریباً همه نمایشگرهای LED مدرن که در فضای باز استفاده می شود و به آنها تابلو روان نیز گفته می شود از LED ماتریس استفاده می کنند.

یک ماژول LED ماتریس تک رنگی معمولی 8×8 دارای 16 پین است که 8 پین برای هر سطر و 8 پین برای هر ستون دارد. دلیل سیم‌کشی تمام سطرها و ستون‌ها به هم، کاهش تعداد پین‌های مورد نیاز است. اگر اینطور نبود، یک واحد ماتریس 8×8  به 65 پین نیاز داشت، یعنی برای هر LED یک پین نیاز بود .

با سیم‌کشی ردیف‌ها و ستون‌ها به یکدیگر، تنها 16 پین مورد نیاز است. این تکنیک کنترل تعداد زیادی LED با پین های کمتر، Multiplexing نامیده می شود.

در این تکنیک هر ستون برای مدت زمان بسیار کوتاهی فعال می شود و همزمان LED های آن ستون با آدرس دادن به ردیف مربوطه روشن می شود. ستون ها آنقدر سریع جابجا می شوند (صدها یا هزاران بار در ثانیه) که تداوم چشم انسان، نمایشگر را کاملاً روشن می بیند. بنابراین تنها حداکثر هشت LED در یک زمان روشن می شود.

اما در کنار مزیت کاهش تعداد پین ها در روش Multiplexing ، معایبی نیز وجود دارد . در روش مالتی پلکس شما باید از 8 ترانزیستور قدرت برای درایور سطر یا ستون های led ماتریسی استفاده کنید و برای ثابت نگه داشتن تصویر بدون پرش ، باید دائماً نمایشگر را به رفرش کنید ، که باعث اضافه شدن بار پردازشی به میکروکنترلر می شود .

راه اندازی led ماتریسی 8x8
راه اندازی led ماتریسی 8×8

آی سی MAX7219

در این آموزش قصد داریم یک راه ساده و تا حدودی ارزان برای کنترل یک led ماتریس 8×8 معرفی کنیم .  آی سی MAX7219 گزینه ای بسیار مناسی برای کنترل یک ماتریس 8×8 می باشد .

آی سی قدرتمند MAX7219 می تواند تمام کارهای کنترلی و رفرش صفحه نمایش را برای شما انجام می دهد. تنها کاری که باید انجام دهید این است که دستورات سریال را از طریق رابط 4 پین SPI ارسال کنید و به طور خودکار بقیه موارد را انجام می دهد.

آی سی MAX7219 می تواند 64 LED جداگانه را به طور کامل کنترل کند ، از جمله حفظ روشنایی یکسان، و به شما امکان می دهد روشنایی LED ها را با سخت افزار یا نرم افزار (یا هر دو) تنظیم کنید.

هنگامی که صفحه نمایش توسط میکروکنترلر به روز می شود، MAX7219 تمام کارهای رفرش صفحه نمایش را با فرکانس 800 هرتز انجام می دهد. در نتیجه بار پردازشی را از میکروکنترلر خارج می کند و این امکان را به ما می دهد که به جای رفرش صفحه نمایش ماتریسی ، کارهای دیگری را با میکروکنترلر انجام دهیم .

حتی می‌توانید نمایشگر را برای حالت صرفه‌جویی در مصرف برق خاموش کنید، و همچنان در حالی که خاموش است، داده‌ها را ارسال کنید. و یکی دیگر از چیزهای خوب این است که هنگام روشن شدن، LED ها را خاموش نگه می دارد، بنابراین در ثانیه های اول کار هیچ سایه ای از نمایش قبلی وجود ندارد.

تراشه MAX7219 از طریق رابط SPI ارتباط برقرار می کند، بنابراین برای اتصال به یک میکروکنترلر فقط به 3 پین داده نیاز دارد، و علاوه بر این، می توانیم چندین ماژول را با هم برای نمایش بزرگتر با استفاده از همان 3 سیم به هم متصل و زنجیره کنیم.

چندین برد MAX7219 وجود دارد که دو مورد از آنها محبوب تر هستند ، یکی generic module و دیگری ماژول FC-16.

ماژول max7219
ماژول max7219

یک ماژول معمولی MAX7219 شامل یک نمایشگر ماتریس 8×8 و یک درایور نمایشگر LED MAX7219 است.

آی سی max7219
آی سی max7219

 

تنظیم حداکثر جریان و روشنایی آی سی MAX7219

آی سی MAX7219 به شما این امکان را می دهد که روشنایی نمایشگر را با سخت افزار یا نرم افزار (یا هر دو) تنظیم کنید. برای تنظیم روشنایی در سطح سخت افزار، برد  MAX7219 دارای یک مقاومت (RSet) است.

تنظیم نور MAX7219
تنظیم نور MAX7219

این مقاومت مسئول تنظیم حد بالای جریانی است که به LED ها وارد می شود و در نتیجه روشنایی کلی نمایشگر را تعیین می کند.

جدول زیر مقادیر مقاومتی را نشان می دهد که باید با توجه به ولتاژ و جریان پیشرو برای ماتریس LED خود استفاده کنید. به عنوان مثال، اگر یک LED 2V 20 mA دارید، مقدار مقاومت شما 28kΩ خواهد بود (مقادیر بر حسب kΩ هستند).

تنظیم حداکثر جریان و روشنایی آی سی MAX7219
تنظیم حداکثر جریان و روشنایی آی سی MAX7219

تنظیم روشنایی از طریق نرم افزار و توابع کتابخانه نیز امکان پذیر است .

پایه های (pinout) ماژول MAX7219

هر نوع ماژول را که انتخاب کنید، دو کانکتور روی آن ماژول وجود خواهد داشت.

پایه های ماژول max7219
پایه های ماژول max7219

کانکتور ورودی :
پین های در یک طرف ماژول برای ارتباط با میکروکنترلر استفاده می شود.

  • VCC : به 5 ولت وصل می شود. با توجه به جریان بالای نمایشگر (تا 1 آمپر، در صورتی که روشنایی تا آخر بالا باشد)، توصیه می شود تغذیه ماژول max7219 را از منبع تغذیه خارجی تامین کنید. در غیر این صورت اگر از تغذیه هدر بورد یا میکروکنترلر شما توان تامین تا 1 آمپر را ندارد ، حتما روشنایی را زیر 50 درصد نگه دارید تا رگولاتور ولتاژ  بیش از حد گرم نشود.
  • GND : به زمین متصل می شود.
  • DIN : ورودی داده است. آن را به هر پایه دیجیتالی میکروکنترلر می توانید وصل کنید.
  • CS/LOAD : پایه Chip Select است (گاهی اوقات به عنوان LOAD برچسب گذاری می شود). آن را به هر پایه دیجیتالی میکروکنترلر می توانید وصل کنید.
  • CLK : پین کلاک است. آن را به هر پایه دیجیتالی میکروکنترلر می توانید وصل کنید.

کانکتور خروجی :
پین های در انتهای دیگر ماژول زمانی استفاده می شوند که می خواهید نمایشگرها را با هم زنجیر کنید.

  • VCC : در ماژول بعدی به 5 ولت وصل می شود.
  • GND : در ماژول بعدی به GND متصل می شود.
  • DOUT : داده خروجی است و به پین ​​DIN ماژول بعدی متصل می شود.
  • CS/LOAD : به CS / LOAD در ماژول بعدی متصل می شود.
  • CLK : در ماژول بعدی به CLK متصل می شود.

 

راه اندازی سون سگمنت با MAX7219

ماژول نمایشگر SPI7SEGDISP8.56 مبتنی بر تراشه درایور صفحه نمایش MAXIM MAX7219 است که یک رابط سریال 3 سیم (SPI) برای هدایت نمایشگرهای 7segment  (نوع کاتدی مشترک) تا 8 رقم ارائه می دهد.

جریان آی سی max7219 برای همه LED ها از طریق مقاومت خارجی R1 تنظیم می شود و کمی قبل تر جدولی برای بدست آوردن مقدار مقاومت قرار داده شده است .

همچنین قادر به ارائه کنترل نرم افزاری روشنایی صفحه نمایش (16 مرحله از حداقل به حداکثر) از طریق یک مدولاتور داخلی pwm است. برای جزئیات بیشتر در مورد بلوک دیاگرام داخلی و عملکرد MAX7219 دیتاشیت را بخوانید.

راه اندازی سون سگمنت 8 دیجیت با max7219
راه اندازی سون سگمنت 8 دیجیت با max7219

پایه های ماژول سون سگمنت نیز همانند پایه های ماژول دات ماتریس می باشد .

راه اندازی ماژول MAX7219 با stm32

ما یک کتابخانه کارآمد و بهینه جهت راه اندازی ماژول سون سگمنت 8 دیجیت و دات ماتریس با MAX7219 تهیه کردیم . این کتابخانه قابلیت پشتیبانی از 8 عدد دات ماترس را دارد .

کتابخانه MAX7219 توسط توابع HAL نوشته شده است و تمامی تنظیمات با نرم افزار CubeMX انجام می شود .

توابع کتابخانه ماژول سون سگمنت 8 تایی و دات ماتریس با درایور MAX7219 برای STM32 , CODEVISION به شرح زیر است :

/* CHANGE THIS VALUE IF YOU ARE DASY CHAINING MORE THAN ONE DRIVER */
#define NUMBEROFDRIVERS 1


/* TO SAVE PROGRAM MEMORY COMMENT OUT ANY OF THE LINES BELOW FOR HARDWARE THAT'S
   NOT BEING USED */
#define SEVENSEGMENT //Seven segment display module HCMODU0082
#define DOTMATRIX //8x8 serial dot matrix module HCOPTO0014

/*****************************************************************************/


/* Defines the size of the output buffer */
#define DISPLAYBUFFERSIZE NUMBEROFDRIVERS * 8

/* MAX7219 register addresses */
#define MAX7219NOOP 0x00
#define MAX7219DIGIT1 0x01
#define MAX7219DIGIT2 0x02
#define MAX7219DIGIT3 0x03
#define MAX7219DIGIT4 0x04
#define MAX7219DIGIT5 0x05
#define MAX7219DIGIT6 0x06
#define MAX7219DIGIT7 0x07
#define MAX7219DIGIT8 0x08
#define MAX7219DECODE 0x09
#define MAX7219INTESITY 0x0A
#define MAX7219SCANLIMIT 0x0B
#define MAX7219SHUTDOWN 0x0C
#define MAX7219TEST 0x0F

/* MAX7219 register options */
#define TESTMODEOFF 0
#define TESTMODEON 1
#define MAX7219OFF 0
#define MAX7219ON 1

/* Other Options */
#define INVERTOFF 0
#define INVERTON 0xFF

  void MAX7219_Write(unsigned char Address, unsigned char Data, unsigned char Driver);
  void MAX7219_Shutdown(bool Mode, unsigned char Driver);
  void MAX7219_TestMode(bool Mode, unsigned char Driver);
  void MAX7219_SevenSegDigits(unsigned char Digits, unsigned char Driver);
  void MAX7219_Intensity(unsigned char Level, unsigned char Driver);
  void MAX7219_Clear(void);
  void MAX7219_Refresh(void);

#ifdef SEVENSEGMENT
  void MAX7219_print7Seg(const char *TextString, unsigned int Offset);
  void MAX7219_print7Seg_num(long number, unsigned int Offset);
  void MAX7219_print7Seg_num_p(long number, unsigned char decimalPlace, unsigned int Offset);
#endif  

#ifdef DOTMATRIX
  void MAX7219_printMatrix(char *TextString, unsigned int Offset);
  void MAX7219_printMatrix_num_p(long number, unsigned char  decimalPlace, unsigned int Offset);
  void MAX7219_printMatrix_num(long number, unsigned int Offset);
#endif

#ifdef DOTMATRIX
  void MAX7219_Invert(unsigned char InvertState);
#endif
 

  void MAX7219_Init(void);
  int  MAX7219_CalCharIndex(int Offset);

مثال همراه پروژه بصورت عملی بر روی بورد بلوپیل با چیپ STM32F103C8T6 تست شده است ، که در ادامه فیلم عملکرد آن قرار داده شده است . این کتابخانه قابلیت اضافه شدن به سایر میکروکنترلرهای STM32 را نیز دارد .

راه اندازی max7219 با stm32
راه اندازی max7219 با stm32

کتابخانه MAX7219 برای کدویژن ، قابلیت راه اندازی ماژول سون سگمنت 8 دیجیت و 8 عدد دات ماتریس را دارد .

کتابخانه MAX7219 برای بسکام فقط قابلیت راه اندازی ماژول سون سگمنت 8 دیجیت را دارد .

همچنین بخوانید : ساعت دیجیتال روی سون سگمنت + قابلیت تنظیم

  نویسنده : حسین غیاثوند
 خرید و دانلود در لحظه :

بعد از پرداخت ، لینک دانلود فایل برای شما نمایش داده می شود . همزمان لینک دانلود فایل به ایمیل شما ارسال می شود .
در صورت عدم دریافت لینک دانلود در قسمت Inbox ایمیل ، قسمت Spam ایمیل خود را بررسی کنید .
موبایل : 09120197955
واتساپ : wa.me/989120197955
آموزش خرید و دانلود فایل

Admin

در زمینه برنامه نویسی و اینترنت اشیاء (IOT) فعالیت می کنم . علاقمند به یادگیری و اشتراک گذاری آموخته های خود هستم .

نوشته های مشابه

guest
0 دیدگاه
بازخورد داخلی
مشاهده همه نظرات