آردوینو نمایشگر Segment پروژه های آردوینو

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

segment max7219-arduino-digispark
نوشته شده توسط پریسا پوربلورچیان
آی سی MAX7219 یک آی سی کنترلر درایور LED است که برای کنترل ماتریس های LED 7-سگمنت و نمایشگرهای ۸-رقمی استفاده می‌شود. این آی سی از سری آی سی‌های MAX72xx شرکت Maxim Integrated است و ویژگی‌های بسیاری را برای کنترل و نمایش داده‌ها در LED‌ها فراهم می‌کند.MAX7219 از طریق پروتکل SPI با میکروکنترلرها و سایر دستگاه‌ها ارتباط برقرار می‌کند.برنامه‌نویسی و کنترل آی سی MAX7219 نیز بسیار آسان است و شرکت Maxim Integrated نیز نمونه‌های کد و کتابخانه‌هایی برای میکروکنترلرها ارائه کرده است که می‌توانید از آنها برای شروع به کار استفاده کنید.

آی سی MAX7219


آی سی MAX7219 یک آی سی کنترلر درایور LED است که برای کنترل ماتریس های LED 7-سگمنت و نمایشگرهای ۸-رقمی استفاده می‌شود. این آی سی از سری آی سی‌های MAX72xx شرکت Maxim Integrated است و ویژگی‌های بسیاری را برای کنترل و نمایش داده‌ها در LED‌ها فراهم می‌کند.ویژگی‌های آی سی MAX7219 عبارتند از:
  • قابلیت کنترل تا ۶۴ LED 7-سگمنت یا ۸ نمایشگر ۷-سگمنت رقمی.
  • پشتیبانی از ورودی سریال سه سیمه (داده، ساعت، تنها یک سیم انتخاب).
  • قابلیت تنظیم درخشندگی LED‌ها به صورت نرمال یا فلش.
  • امکان تنظیم شدت روشنایی هر LED یا نمایشگر به صورت مستقل.
  • قابلیت آپدیت همزمان تمامی LED‌ها با ارسال داده‌ها به صورت سریع.
  • امکان زنجیره‌سازی تعداد زیادی MAX7219 برای کنترل بیشترین تعداد LED‌ها.
  • پشتیبانی از ولتاژ کاری ۵ ولت.
MAX7219 از طریق پروتکل SPI با میکروکنترلرها و سایر دستگاه‌ها ارتباط برقرار می‌کند. برنامه‌نویسی و کنترل آی سی MAX7219 نیز بسیار آسان است و شرکت Maxim Integrated نیز نمونه‌های کد و کتابخانه‌هایی برای میکروکنترلرها ارائه کرده است که می‌توانید از آنها برای شروع به کار استفاده کنید.

 


دات ماتریس MAX7219


ماژول MAX7219 یک ماژول آماده است که شامل آی سی MAX7219 و قسمت‌های مربوطه برای کنترل LED‌ها و نمایش داده‌ها است. این ماژول با سیستم‌های میکروکنترلر و بردهای توسعه مختلف قابل استفاده است و نیازی به طراحی مدار یا ساخت PCB ندارد.ماژول MAX7219 شامل یک آی سی MAX7219 است که به یک برد PCB حاوی پین‌ها و اتصالات لازم برای اتصال LED‌ها و سایر قطعات است. برد ماژول دارای پایه‌های ورودی و خروجی است که به شکل زیر می‌تواند باشد:
  • VCC: ورودی تغذیه با ولتاژ ۵ ولت (از یک منبع جداگانه تامین می‌شود).
  • GND: زمین مشترک.
  • DIN (Data In): ورودی داده برای ارسال اطلاعات به MAX7219 از طریق پروتکل SPI.
  • CS (Chip Select): ورودی انتخاب آی سی MAX7219 برای فعال‌سازی آن.
  • CLK (Clock): ورودی ساعت برای هماهنگی انتقال داده‌ها در پروتکل SPI.
  • DOUT (Data Out): خروجی داده از MAX7219 برای اتصال به ماژول‌های دیگر در حالت زنجیره‌سازی (اختیاری).
علاوه بر این، ماژول MAX7219 ممکن است دارای پین‌ها و اتصالاتی برای اتصال مستقیم به LED‌ها و نمایشگرها باشد. برخی از ماژول‌ها از ماتریس‌های LED 8×8 یا نمایشگرهای ۷-سگمنت پشتیبانی می‌کنند و برخی دیگر دارای سوکت‌هایی برای اتصال LED‌های خارجی هستند.

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


برای راه اندازی ماژول MAX7219 با آردوینو، مراحل زیر را دنبال کنید:
اتصال سخت‌افزاری:
  • اتصال پایه VCC ماژول به پایه ۵ ولت آردوینو.
  • اتصال پایه GND ماژول به پایه GND آردوینو.
  • اتصال پایه DIN (Data In) ماژول به پایه دیجیتال آردوینو انتخابی (مثلاً پایه ۱۱).
  • اتصال پایه CS (Chip Select) ماژول به پایه دیجیتال آردوینو انتخابی (مثلاً پایه ۱۰).
  • اتصال پایه CLK (Clock) ماژول به پایه دیجیتال آردوینو انتخابی (مثلاً پایه ۱۳).

نصب کتابخانه MAX7219


از منو نرم افزار وارد قسمت “Sketch” و انتخاب “Include Library” و سپس “Manage Libraries” شوید. جستجو برای “LedControl” و نصب کتابخانه با همین نام که برای کنترل MAX7219 استفاده می‌شود.با استفاده از کتابخانه LedControl، می‌توانید کدهایی برای نمایش متن، اعداد و الگوهای ساده روی LED‌ها بنویسید. به طور مثال، می‌توانید کد زیر را استفاده کنید:

 

#include <LedControl.h>
// تعریف شیء LedControl برای کنترل MAX7219
LedControl lc = LedControl(10, 11, 13, 1); // پین‌های CS, DIN, CLK
void setup() {
  // شروع کار با MAX7219 با تعداد ماژول‌ها ۱
  lc.begin(0, 1);
  // تنظیم شدت روشنایی LED‌ها (مقدار بین ۰ و ۱۵)
  lc.setIntensity(0, 8);
  // پاک کردن تمام داده‌های قبلی در MAX7219
  lc.clearDisplay(0);
}
void loop() {
  // نمایش متن “Hello” روی LED‌ها
  lc.setChar(0, 0, ‘H’, false); // (شماره ماژول، شماره رقم، کاراکتر، فلش)
  lc.setChar(0

 


اجرای پروژه دوم با MAX7219


کتابخانه‌ای که برای تراشه MAX7219 دراین آموزش درنظر گرفته‌ایم؛ توانایی نمایش اعداد و متن را دارد. همچنین می‌توان چند عدد از این ماژول‌ها را به صورت سری به همدیگر متصل کرد. در این حالت چنانچه متن از اندازه‌ی صفحه نمایش بزرکتر باشد کتابخانه به صورت پیش فرض ادامه متن را در نمایشگر دوم به نمایش در می‌آورد. در حالتی که دو ماژول را به صورت سری به هم وصل کنیم. بلوک اول از نمایشگر اول شماره ۱ و بلوک اول از نمایشگر دوم شماره ۹ آدرس دهی می شود. جهت فراخانی و نصب کتابخانه در نرم افزار آردوینو به آموزش نصب کتابخانه آردوینو که توسط همکارم نوشته شده است، مراجعه کنید.

لینک دانلود کتابخانه HCMAX7219 در صفحه محصول سون سگمنت در لینک محصول قرار دارد. برای دانلود از آنجا میتوانید اقدام کنید.

پایه ی VCC را به پایه ی ۵ ولت آردوینو وصل میکنیم.

پایه GND به زمین یا پین GND آردوینو وصل میکنیم.

پایه DIN به پایه ۱۱ آردوینو وصل میکنیم.

پایه ی CS را به پبن ۱۰ آردوینو وصل میکنیم.

پایه ی CLK به پبن شماره ی ۱۳ وصل میکنیم.

اتصال پین سگمنت به برد آردوینو - Digispark

 

نمایشگر سگمنت 8 دیجیت با آردوینو - Digispark

 

در ادامه ۲ نمونه کد در اختیار شما قرار میدهم.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

استفاده همزمان از دو ماژول :

همانطور که پیش تر توضیح دادم با این کتابخانه میتوان بیش از یک نمایشگر را مدیریت کرد. به این منظور درکد زیر کافیست عدد ۱ را تغییر دهیم.

#define&amp;nbsp;NUMBEROFDRIVERS&amp;nbsp;1

نمایش نوشته

برای نمایش نوشته از تابع print استفاده میکنیم. در کد زیر مقدار دوم که با offset مشخص شده است. تعداد بلوک های سگمنت را مشخص میکند.

HCMAX7219.print7Seg("متن نمونه", Offset)

نمایش به صورت متحرک

برای نمایش نوشته به صورت متحرک از تابع Loop counter استفاده میکنیم. برای نمایش متن متحرک مانند کد زیر عمل خواهیم کرد.

HCMAX7219.print7Seg("digispark.ir ",Position);

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.

 

 

 

درباره نویسنده

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۲ دیدگاه

    • با سلام
      با کلیه بردهای آردینو می توان عملیات نشان دادن اعداد با انواع ۷Seg را انجام داد

      • سلام

        بله با آردوینو مگا arduino mega2560 و آردوینو نانو nano نیز قابل راه اندازی خواهد بود.

    • سلام
      بله امکان پذیر می باشد.
      برای اینکار باید به ترتیب زیر پایه های سون سگمنت را به آردوینو mega2560 اتصال دهید:
      ۱:پایه VCC را به پایه ی ۵ ولت آردوینو مگا وصل کنید.
      ۲:پایه GND را به زمین یا پین GND آردوینو مگا وصل کنید.
      ۳: پایه DIN را به پایه ۵۱ آردوینو مگا وصل کنید.
      ۴: پایه SC را به پایه ۱۰ آردوینو مگا وصل کنید.
      ۵: پایه CLK را به پایه ۵۲ آردوینو مگا وصل کنید.

    • سلام
      تیم دیجی اسپارک نیز تمام انرژی و انگیزه ش رو از وجود کاربرهای با استعداد و وفاداری مثل شما داره ، مطمئنا هرروز با وجود شما پبشرفت خواهیم کرد.
      ممنونم از شما

  • سلام ممنون از زحماتی که در سایت مفیدتون میکشید .برنامه جالبی بود یه سوال داشتم و اونم این بود هر دفعه که بخوایم این اعداد رو روی سون سگمنت تغییر بدیم باید برنامه جدید رو آپلود کنیم. حالا من اگه بخوام این کار به صورت آنلاین انجام بشه یعنی از طریق یه ماژول وای فای این کار رو انجام بدم چیکار بایستی بکنم؟!؟!؟!

  • سلام
    وقتتون بخیر
    من میخام یک فانکشن ژنراتور ۰٫۰۱ هرتز تا ۱۰۰ کیلو هرتز که متغیر باشه بسازم
    خروجی موج سینوسی و مربعی هم داشته باشه
    دامنه رو هم بتونم تغییر بدم
    اگه میتونین واسم طراحی و برنامشو بنویسین ، ممنون میشم
    هزینش رو هم پرداخت میکنم
    خودم با آی سی های cmos ساختم . ولی چون میخام به lcd وصل کنم ، در آخر باید برنامه نویسی بشه
    مرسی

    • سلام
      با تشکر از توجه شما، سعی میکنم در برنامه های آینده آموزش های مرتبط را کار کنم.

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

  • من می خوام یه عدد ۶ رقمی رو از سنسور بگیرم و تو یه متغیر بریزم و بعد رو این صفحه نمایش نشونش بدم چطور باید این کارو انجام بدم ممنون می شم اگه راهنمایی کنید

    • سلام
      تشکر بابت کامنت شما، قبل از هرچیزى اگر انتقادى دارید، لطفا صراحتا و شفاف بیان کنید. اگر هم به هر دلیلى شیوه نوشتن و انتشار محتوا بنده براى شما قابل نبوده است، باز هم خوشحال میشوم که از نظر شما ایرادات را بدانم.
      اینکه صرفا با واژه هاى زشت و به هدف تخریب موضوعى را مطرح کنید، هیچ کمکى به پیشرفت این جامعه نخواهد کرد.

      با تشکر

  • سلام… خدائی من آدمی نیستم که بخوام بی جهت تعریف بکنم از افراد و یا از این لوس بازیها و غیره و ذالک …. اما واقعیتو باید قبول کرد … خانومها نسبت به آقایون خیلی با حوصله تر ، و با جزئیات کامل مطالب رو آموزش میدن.. این موضوع رو، منی که بیش از بیست مؤسسه ی زبان مختلف از، ایرانمهر و کیش و آریانپور گرفته تا IELTS Center و مؤسسه ی کردستی و…. رفتم هر ترمی که استاد خانوم داشتیم خیلی بهتر مطالب رو فرا میگرفتیم کاملا” تأیید میکنم،،، و اما سؤالی که ازتون داشم سرکار خانوم اگه اجازه بدین در پیام بعدی خدمتتون مطح میکنم،،،
    BesT RigdRD

    • سلام
      از دقت نظر و توجه شما بسیار ممنونم.
      امیدوارم از آموزش ها بهترین استفاده را برده و ایده بگیرید. برای سوالات هم در هر پست مرتبط با سوالتان، مشکل خود رامطرح نمایید تا پاسخگو باشم.
      سپاس

  • سایت زیر آموزش شما رو موبه مو کپی کرده :
    https://elec….98.com/%D8%A2%D8%B1%D8%AF%D9%88%DB%8C%D9%86%D9%88/%D8%B3%D9%88%D9%86-%D8%B3%DA%AF%D9%85%D9%86%D8%AA-max7219-%D8%A2%D8%B1%D8%AF%D9%88%DB%8C%D9%86%D9%88/

    • با سلام
      ضمن تشکر، از پیگیری شما سپاسگزاریم. متاسفانه این مورد طی چند سال گذشته توسط افراد غیر متخصص صورت گرفته است.

  • سلام خسته نباشد
    میخواستم این ماژول رو روی Raspi و node-red استفاده کنم لطفا راهنمایی کنید