فهرست مطالب:

مونتاژ و آزمایش ماتریس نقطه ای MAX7219 LED: 6 مرحله (همراه با تصاویر)
مونتاژ و آزمایش ماتریس نقطه ای MAX7219 LED: 6 مرحله (همراه با تصاویر)

تصویری: مونتاژ و آزمایش ماتریس نقطه ای MAX7219 LED: 6 مرحله (همراه با تصاویر)

تصویری: مونتاژ و آزمایش ماتریس نقطه ای MAX7219 LED: 6 مرحله (همراه با تصاویر)
تصویری: کارخانه تولید انبوه آچار ضربه ای بادی 2024, جولای
Anonim
Image
Image
بسته را بررسی کنید
بسته را بررسی کنید

Dot-Matrix Display یک دستگاه نمایشگر است که شامل دیودهای تابش نور است که به صورت ماتریس تراز شده اند. این نمایشگرهای ماتریس نقطه ای در برنامه هایی استفاده می شود که در آنها نمادها ، گرافیک ها ، کاراکترها ، حروف ، اعداد و شماره ها باید به صورت ایستا و همچنین نمایش داده شوند. حرکت پیمایش. صفحه نمایش ماتریس در ابعاد مختلف مانند 5x7 ، 8x8 ، 16x8 ، 128x16 ، 128x32 و 128x64 ساخته می شود که اعداد نشان دهنده LED در ردیف ها و ستون ها هستند ، همچنین این نمایشگرها در رنگ های مختلف مانند قرمز ، سبز ، زرد ، آبی ، نارنجی ، سفید.

در این دستورالعمل ، من با یک نقطه ماتریس 8x8 که دارای درایور MAX7219 با Arduino Uno است ارتباط برقرار می کنم. بیایید شروع کنیم.

تدارکات

MAX7219

مرحله 1: بسته را بررسی کنید

همانطور که می بینید من یک نسخه smt از درایور دارم ، بسیار مهم است که هر یک از اجزای مورد نیاز را بررسی کنید زیرا قطعات smd بسیار کوچک هستند و می توانید آنها را به راحتی از دست بدهید. نسخه smt نسبت به اندازه آن

مرحله 2: کمی در مورد این ماتریس نقطه ای خاص

کمی درباره این ماتریس نقطه خاص
کمی درباره این ماتریس نقطه خاص

یک ماژول می تواند یک کاتد مشترک با ماتریس نقطه 8x8 را هدایت کند.

ولتاژ کار: 5 ولت

ابعاد: طول 3.2 سانتی متر X 3.2 سانتی متر عرض X 1.3 سانتی متر ارتفاع ، سوراخ های چهار پیچ ، قطر 3 میلی متر

ماژول هایی با رابط ورودی و خروجی ، پشتیبانی از آبشاری چندین ماژول.

پایانه های داده IN و OUT روی ماژول مشخص شده است.

مرحله 3: درایور MAX7219

درایور MAX7219
درایور MAX7219
درایور MAX7219
درایور MAX7219

MAX7219 یک IC است که برای کنترل ماتریس LED 8x8 طراحی شده است. IC درایورهای ورودی سریال معمولی-کاتدی (Common Negative) است که از ریزپردازنده ها (یا میکروکنترلر) به نمایشگرهای عددی LED 7 قسمتی تا 8 رقم ، نمایشگرهای میله ای یا 64 LED جداگانه رابط می دهد.

ویژگی ها و مشخصات

محدوده ولتاژ کار: +4.0 تا +5.5V

ولتاژ کار توصیه شده: +5V

حداکثر ولتاژ تغذیه: 6 ولت

حداکثر جریان مجاز برای عبور از طریق هر پین بخش: 100 میلی آمپر

حداکثر جریان مجاز از طریق هر پایه زمین DIGIT: 500 میلی آمپر

مصرف برق کم

زمان تأخیر داده به بخش: 2.2 متر ثانیه

دمای کار: 0 تا 70 درجه سانتی گراد

دمای ذخیره سازی: -65 درجه سانتیگراد تا +150 درجه سانتی گراد

مرحله 4: مدار

مدار
مدار
مدار
مدار

این مدار بسیار ساده است و می تواند با استفاده از سیم های بلوز نر به ماده ساخته شود. کافی است pinout را دنبال کرده و مدار را بسازید. اگر یک برنامه دائمی برای ماتریس دارید ، بعداً می توانید آن را روی PCB مونتاژ کنید.

پیکربندی پین به شرح زیر است:

  • Vcc تا 5V پین آردوینو.
  • Gnd to Gnd پین آردوینو.
  • DIN به پین دیجیتال 12 آردوینو.
  • CS به پین دیجیتال 11 آردوینو
  • روی پین دیجیتال 10 آردوینو کلیک کنید.

مرحله 5: کد

در اینجا در این دستورالعمل دو کد متفاوت به شما ارائه می دهم. یکی تعدادی الفبای انگلیسی و شکلک در ماتریس ایجاد می کند. یکی دیگر از همه 64 LED را یکی یکی روشن می کند. برای کارکردن باید از کتابخانه lledcontrol استفاده کنید.

این کد الفبای انگلیسی و لبخندها است

#شامل int DIN = 12؛ int CS = 11؛ int CLK = 10 ؛ بایت e [8] = {0x7C ، 0x7C ، 0x60 ، 0x7C ، 0x7C ، 0x60 ، 0x7C ، 0x7C} ؛ بایت d [8] = {0x78 ، 0x7C ، 0x66 ، 0x66 ، 0x66 ، 0x66 ، 0x7C ، 0x78} ؛ بایت u [8] = {0x66 ، 0x66 ، 0x66 ، 0x66 ، 0x66 ، 0x66 ، 0x7E ، 0x7E} ؛ بایت c [8] = {0x7E ، 0x7E ، 0x60 ، 0x60 ، 0x60 ، 0x60 ، 0x7E ، 0x7E} ؛ بایت هشت [8] = {0x7E ، 0x7E ، 0x66 ، 0x7E ، 0x7E ، 0x66 ، 0x7E ، 0x7E} ؛ بایت s [8] = {0x7E ، 0x7C ، 0x60 ، 0x7C ، 0x3E ، 0x06 ، 0x3E ، 0x7E} ؛ بایت نقطه [8] = {0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x18 ، 0x18} ؛ بایت o [8] = {0x7E ، 0x7E ، 0x66 ، 0x66 ، 0x66 ، 0x66 ، 0x7E ، 0x7E} ؛ بایت m [8] = {0xE7 ، 0xFF ، 0xFF ، 0xDB ، 0xDB ، 0xDB ، 0xC3 ، 0xC3} ؛ LedControl lc = LedControl (DIN ، CLK ، CS ، 0) ؛ void setup () {lc.shutdown (0 ، false) ؛ // MAX72XX در هنگام صرفه جویی در مصرف برق هنگام راه اندازی lc.setIntensity (0 ، 15) ؛ // روشنایی را روی حداکثر مقدار lc.clearDisplay (0) تنظیم کنید ؛ // و صفحه نمایش} void loop () {byte smile [8] = {0x3C ، 0x42 ، 0xA5 ، 0x81 ، 0xA5 ، 0x99 ، 0x42 ، 0x3C} را پاک کنید ؛ بایت خنثی [8] = {0x3C ، 0x42 ، 0xA5 ، 0x81 ، 0xBD ، 0x81 ، 0x42 ، 0x3C} ؛ اخم بایت [8] = {0x3C ، 0x42 ، 0xA5 ، 0x81 ، 0x99 ، 0xA5 ، 0x42 ، 0x3C} ؛ printByte (لبخند) ؛ تاخیر (1000) ؛ printByte (خنثی) ؛ تاخیر (1000) ؛ printByte (اخم) ؛ تاخیر (1000) ؛ printEduc8s ()؛ lc.clearDisplay (0) ؛ تاخیر (1000) ؛ } void printEduc8s () {printByte (e)؛ تاخیر (1000) ؛ printByte (d) ؛ تاخیر (1000) ؛ printByte (u) ؛ تاخیر (1000) ؛ printByte (c) ؛ تاخیر (1000) ؛ printByte (هشت) ؛ تاخیر (1000) ؛ printByte (s)؛ تاخیر (1000) ؛ printByte (نقطه) ؛ تاخیر (1000) ؛ printByte (c) ؛ تاخیر (1000) ؛ printByte (o) ؛ تاخیر (1000) ؛ printByte (متر) ؛ تاخیر (1000) ؛ } void printByte (نویسه بایت ) {int i = 0؛ برای (i = 0 ؛ i <8؛ i ++) {lc.setRow (0 ، i ، کاراکتر ) ؛ }}

و کد تست همه 64 LED

// ما همیشه باید کتابخانه#شامل "LedControl.h" را وارد کنیم

/*

اکنون ما برای کار با یک LedControl نیاز داریم. ***** این شماره های پین احتمالاً با سخت افزار شما کار نمی کنند ***** پین 12 به DataIn وصل است 10 پین به CLK متصل است 11 پین متصل به LOAD ما فقط یک MAX72XX واحد داریم. */ LedControl lc = LedControl (12 ، 11 ، 10 ، 1) ؛

/ * ما همیشه بین به روز رسانی صفحه نمایش کمی صبر می کنیم */

تاخیر طولانی بدون امضا = 100؛

void setup () {

/ * MAX72XX هنگام راه اندازی در حالت صرفه جویی در مصرف برق است ، ما باید یک تماس بیدار شویم */ lc.shutdown (0 ، false) ؛ / * روشنایی را روی مقادیر متوسط */ lc.setIntensity (0 ، 8) تنظیم کنید ؛ / * و صفحه را پاک کنید */ lc.clearDisplay (0) ؛ }

/*

این روش کاراکترهای کلمه "Arduino" را یکی پس از دیگری روی ماتریس نمایش می دهد. (برای مشاهده کل کاراکترها حداقل به LED های 5x7 احتیاج دارید) */ void writeArduinoOnMatrix () {/ *در اینجا داده های کاراکتر */ بایت a [5] = {B01111110، B10001000، B10001000 ، B10001000 ، B01111110} است ؛ بایت r [5] = {B00111110، B00010000، B00100000، B00100000، B00010000}؛ بایت d [5] = {B00011100 ، B00100010 ، B00100010 ، B00010010 ، B11111110} ؛ بایت u [5] = {B00111100، B00000010، B00000010، B00000100، B00111110}؛ بایت i [5] = {B00000000، B00100010، B10111110، B00000010، B00000000}؛ بایت n [5] = {B00111110 ، B00010000 ، B00100000 ، B00100000 ، B00011110} ؛ بایت o [5] = {B00011100 ، B00100010 ، B00100010 ، B00100010 ، B00011100} ؛

/ * اکنون آنها را یک با یک تاخیر کوچک نمایش دهید */

lc.setRow (0 ، 0 ، a [0]) ؛ lc.setRow (0 ، 1 ، a [1]) ؛ lc.setRow (0 ، 2 ، a [2]) ؛ lc.setRow (0 ، 3 ، a [3]) ؛ lc.setRow (0 ، 4 ، a [4]) ؛ تاخیر (زمان تاخیر) ؛ lc.setRow (0 ، 0 ، r [0]) ؛ lc.setRow (0 ، 1 ، r [1]) ؛ lc.setRow (0 ، 2 ، r [2]) ؛ lc.setRow (0 ، 3 ، r [3]) ؛ lc.setRow (0 ، 4 ، r [4]) ؛ تاخیر (زمان تاخیر) ؛ lc.setRow (0 ، 0 ، d [0]) ؛ lc.setRow (0 ، 1 ، d [1]) ؛ lc.setRow (0 ، 2 ، d [2]) ؛ lc.setRow (0 ، 3 ، d [3]) ؛ lc.setRow (0 ، 4 ، d [4]) ؛ تاخیر (زمان تاخیر) ؛ lc.setRow (0 ، 0 ، u [0]) ؛ lc.setRow (0 ، 1 ، u [1]) ؛ lc.setRow (0 ، 2 ، u [2]) ؛ lc.setRow (0 ، 3 ، u [3]) ؛ lc.setRow (0 ، 4 ، u [4]) ؛ تاخیر (زمان تاخیر) ؛ lc.setRow (0 ، 0 ، i [0]) ؛ lc.setRow (0 ، 1 ، i [1]) ؛ lc.setRow (0 ، 2 ، i [2]) ؛ lc.setRow (0 ، 3 ، i [3]) ؛ lc.setRow (0 ، 4 ، i [4]) ؛ تاخیر (زمان تاخیر) ؛ lc.setRow (0 ، 0 ، n [0]) ؛ lc.setRow (0 ، 1 ، n [1]) ؛ lc.setRow (0 ، 2 ، n [2]) ؛ lc.setRow (0 ، 3 ، n [3]) ؛ lc.setRow (0 ، 4 ، n [4]) ؛ تاخیر (زمان تاخیر) ؛ lc.setRow (0 ، 0 ، o [0]) ؛ lc.setRow (0 ، 1 ، o [1]) ؛ lc.setRow (0 ، 2 ، o [2]) ؛ lc.setRow (0 ، 3 ، o [3]) ؛ lc.setRow (0 ، 4 ، o [4]) ؛ تاخیر (زمان تاخیر) ؛ lc.setRow (0 ، 0 ، 0) ؛ lc.setRow (0 ، 1 ، 0) ؛ lc.setRow (0 ، 2 ، 0) ؛ lc.setRow (0 ، 3 ، 0) ؛ lc.setRow (0 ، 4 ، 0) ؛ تاخیر (زمان تاخیر) ؛ }

/*

این تابع برخی از Leds ها را در یک ردیف روشن می کند. این الگو در هر سطر تکرار می شود. الگو همراه با شماره ردیف چشمک می زند. ردیف شماره 4 (index == 3) 4 بار چشمک می زند و غیره */ void سطرها () {for (int row = 0؛ row <8؛ row ++) {delay (delaytime)؛ lc.setRow (0 ، ردیف ، B10100000) ؛ تاخیر (زمان تاخیر) ؛ lc.setRow (0 ، سطر ، (بایت) 0) ؛ برای (int i = 0 ؛ i

/*

این تابع برخی از Leds را در یک ستون روشن می کند. این الگو در هر ستون تکرار می شود. الگو همراه با شماره ستون چشمک می زند. ستون شماره 4 (index == 3) 4 بار چشمک می زند و غیره */ void column () {for (int col = 0؛ col <8؛ col ++) {delay (delaytime)؛ lc.setColumn (0 ، col، B10100000) ؛ تاخیر (زمان تاخیر) ؛ lc.setColumn (0 ، col ، (بایت) 0) ؛ برای (int i = 0 ؛ i

/*

این تابع هر Led روی ماتریس را روشن می کند. led همراه با شماره ردیف چشمک می زند. ردیف شماره 4 (index == 3) 4 بار چشمک می زند و غیره * */ void single () {for (int row = 0؛ row <8؛ row ++) {for (int col = 0؛ col <8؛ col ++) { تاخیر (زمان تاخیر) ؛ lc.setLed (0، row، col، true)؛ تاخیر (زمان تاخیر) ؛ برای (int i = 0 ؛ i

حلقه خالی () {

writeArduinoOnMatrix ()؛ ردیف () ؛ ستون ها()؛ تنها()؛ }

مرحله 6: خروجی

Image
Image
خروجی
خروجی
خروجی
خروجی
خروجی
خروجی

ویدئوی کامل را اینجا مشاهده کنید: -MAX7219 8x8 LED MATRIX ASMBLY and TESTING با استفاده از ARDUINO

خوب این همه کار سخت ، مطمئناً وقتی نتیجه را می بینید بسیار خوب جواب می دهد. ارزشش را دارد !!

در کانال یوتیوب من مشترک شوید: -Creative Stuff

توصیه شده: