راه‌اندازی نمایشگر LED سون سگمنت + راه‌اندازی نمایشگرهای LED سون‌ سگمنت چندرقمی: مالتی‌پلکسینگ

قسمت 45
قسمت 45 راه‌اندازی نمایشگر LED هفت سگمنت + راه‌اندازی نمایشگرهای LED هفت‌سگمنت چندرقمی: مالتی‌پلکسینگ
مشاهده سایر جلسات آموزش
176 بازدید
۱۴۰۴-۱۱-۰۱
6 دقیقه
  • نویسنده: Arduino captain
  • درباره نویسنده: من کاپیتان آردوینو، اسمم میلاده و اینجا هستم تا تجربیاتم در رابطه با آردوینو رو با شما به اشتراک بزارم!

در قسمت 44 از آموزش آردوینو به بررسی نمایش تصاویر روی ماتریس LED و کنترل یک ماتریس LED: چارلی‌پلکسینگ (Charlieplexing) پرداختیم.

در این قسمت قصد داریم درباره راه‌اندازی نمایشگر LED سون سگمنت و راه‌اندازی نمایشگرهای LED هفت‌سگمنت چندرقمی: مالتی‌پلکسینگ و همچنین، راه‌اندازی نمایشگرهای LED سون‌سگمنت چندرقمی با کمترین تعداد پایه (پین) صحبت کنیم.

راه‌اندازی نمایشگر LED سون سگمنت

فرض کنید می‌خواهید با استفاده از یک نمایشگر عددی ۷-سگمنت، اعداد را نمایش دهید.اسکچ زیر اعداد ۰ تا ۹ را روی یک نمایشگر ۷-سگمنت تک‌رقمی نمایش می‌دهد.

شکل 1 اتصالات مربوط به یک نمایشگر آند مشترک (Common Anode) را نشان می‌دهد.

ممکن است تخصیص پایه‌های شما متفاوت باشد، بنابراین حتماً دیتاشیت نمایشگر خود را بررسی کنید.

همچنین بخوانید!

⚡ معرفی 12 مرجع برتر دانلود دیتاشیت  

اگر نمایشگر شما از نوع کاتد مشترک (Common Cathode) است، پایه کاتد مشترک را به GND متصل کنید. خروجی با روشن‌کردن ترکیب‌هایی از سگمنت‌ها که اعداد را نمایش می‌دهند، تولید می‌شود:

شکل 1: اتصال نمایشگر ۷-سگمنت

شکل 1: اتصال نمایشگر ۷-سگمنت

سگمنت‌هایی که باید برای هر عدد روشن شوند، در آرایه‌ای به نام numeral ذخیره شده‌اند. برای هر عدد یک بایت در نظر گرفته شده است که هر بیت از آن بایت نمایانگر یکی از سون سگمنت (یا نقطه اعشاری) است. آرایه‌ای به نام segmentPins پایه‌های مربوط به هر سگمنت را نگه می‌دارد. تابع showDigit بررسی می‌کند که عدد در بازهٔ ۰ تا ۹ باشد و در صورت معتبر بودن، هر بیت مربوط به سگمنت را بررسی می‌کند و اگر بیت مقدار ۱ داشته باشد، آن سگمنت را روشن می‌کند.

برای اطلاعات بیشتر درباره تابع bitRead به قسمت‌های قبلی مراجعه کنید.

همان‌طور که قبلاً اشاره شد، برای روشن‌کردن یک سگمنت در نمایشگر کاتد مشترک، پایه روی حالت HIGH قرار می‌گیرد و برای روشن‌کردن یک سگمنت در نمایشگر آند مشترک، پایه روی حالت LOW تنظیم می‌شود.

کد ارائه‌شده در اینجا مخصوص نمایشگر آند مشترک است، بنابراین مقدارها را معکوس می‌کند (۰ را به ۱ و ۱ را به ۰ تبدیل می‌کند) به‌صورت زیر:

شاید برای شما مفید باشد:
آموزش میکروکنترلر STM32 : واحد DMA در رابط سریال UART

علامت ! عملگر نقیض (NOT) است. اگر نمایشگر شما از نوع کاتد مشترک (Common Cathode) است، یعنی همه کاتدها به هم متصل شده‌اند؛ اگر مطمئن نیستید به دیتاشیت مراجعه کنید.

راه‌اندازی نمایشگرهای LED هفت‌سگمنت چندرقمی: مالتی‌پلکسینگ

فرض کنید می‌خواهید با استفاده از یک نمایشگر ۷-سگمنت که دو یا چند رقم را نمایش می‌دهد، اعداد را نشان دهید. نمایشگرهای ۷-سگمنت چندرقمی معمولاً از روش مالتی‌پلکسینگ (Multiplexing) استفاده می‌کنند.

در قسمت‌های قبلی، سطرها و ستون‌های مالتی‌پلکس‌شده LEDها به هم متصل می‌شدند تا یک آرایه تشکیل شود؛ در اینجا، سگمنت‌های متناظر از هر رقم به یکدیگر متصل می‌شوند.

(شکل 2 اتصال مربوط به نمایشگر Lite-On LTC-2623 را نشان می‌دهد، اما اگر نمایشگر شما متفاوت است، باید دیتاشیت آن را بررسی کنید)

نمودار سیم‌کشی نشان‌داده‌شده مربوط به نمایشگر Lite-On LTC-2623 است. اگر از نمایشگر دیگری استفاده می‌کنید، می‌توانید از همان پایه‌های آردوینو استفاده کنید، اما باید پایه‌های متناظر را در دیتاشیت نمایشگر خود پیدا کنید. نمایشگر LTC-2623 از نوع آند مشترک (Common Anode) است. اگر نمایشگر شما کاتد مشترک (Common Cathode) باشد، لازم است دو تغییر انجام دهید:

نحوه اتصال ترانزیستورها را تغییر دهید: همه امیترها را به هم و به زمین (GND) وصل کنید و کلکتور هر ترانزیستور را به پایهٔ متناظر روی نمایشگر متصل نمایید.

این خط کد را در اسکچ کامنت کرده یا حذف کنید:

شاید برای شما مفید باشد:
آموزش SDR و اجزای سیستم مخابراتی + بررسی RTL-SDR و HackRF
شکل 2: اتصال نمایشگر ۷-سگمنت چندرقمی (LTC-2623)

شکل 2: اتصال نمایشگر ۷-سگمنت چندرقمی (LTC-2623)

این اسکچ دارای تابع showDigit است؛ مشابه آنچه در قسمت‌های قبلی توضیح داده شد.

در اینجا، این تابع عدد (numeral) و موقعیت رقم را دریافت می‌کند. منطق روشن‌کردن سگمنت‌ها متناسب با عدد تغییری نکرده است، اما علاوه‌برآن، کد پایه‌ای را که مربوط به موقعیت رقم است روی حالت HIGH قرار می‌دهد تا فقط همان رقم فعال شده و نوشته شود. (برای توضیحات بیشتر به مباحث قبلی مربوط به مالتی‌پلکسینگ مراجعه کنید).

راه‌اندازی نمایشگرهای LED سون‌سگمنت چندرقمی با کمترین تعداد پایه (پین)

فرض کنید می‌خواهید چندین نمایشگر سون‌سگمنت (7-segment) را کنترل کنید، اما می‌خواهید تعداد پایه‌های موردنیاز آردوینو را به حداقل برسانید.

در این آموزش از یک برد مبتنی بر HT16K33 برای کنترل نمایشگرهای چهاررقمی کاتد مشترک استفاده می‌شود؛ مانند LuckyLight KW4-56NXBA-P یاBetlux BL-Q56C-43 . آی‌سی HT16K33 یک راه‌حل ساده‌تر ارائه می‌دهد، زیرا عمل مالتی‌پلکس‌کردن و کدگشایی ارقام را به‌صورت سخت‌افزاری انجام می‌دهد. می‌توانید بردهای مبتنی بر HT16K33 را از منابع مختلف تهیه کنید. شرکت Adafruit محصولی به نام 7-Segment LED Matrix Backpack (شماره قطعه 877) تولید می‌کند که برای کار با نمایشگرهای سون‌سگمنت چهاررقمی که خودش عرضه می‌کند طراحی شده است؛ همچنین این شرکت این بردها را همراه با خودِ نمایشگرها و در رنگ‌های متنوع نیز ارائه می‌دهد.

این اسکچ عددی بین ۰ تا ۹٬۹۹۹ را نمایش می‌دهد (شکل 3 اتصالات را نشان می‌دهد):

شکل 3: راه‌اندازی (درایو کردن) یک نمایشگر سون‌سگمنت چندرقمی با کاتد مشترک توسط HT16K33

شکل 3: راه‌اندازی (درایو کردن) یک نمایشگر سون‌سگمنت چندرقمی با کاتد مشترک توسط HT16K33

این روش از ارتباط I2C آردوینو برای برقراری ارتباط با تراشه HT16K33 استفاده می‌کند. کتابخانه Adafruit_LEDBackpack یک رابط برای سخت‌افزار فراهم می‌کند که از طریق یک نمونه از شیء Adafruit_7segment (که در این اسکچ «matrix» نام دارد) به آن دسترسی پیدا می‌شود.

این اسکچ درصورتی‌که عددی با حداکثر چهار رقم از طریق پورت سریال دریافت شود، آن را نمایش می‌دهد—برای توضیح کد سریال در تابع loop به قسمت‌های قبلی مراجعه کنید. تابع matrix.println مقادیر را به HT16K33 ارسال می‌کند و تابع matrix.writeDisplay نمایشگر را با آخرین مقدار ارسال‌شده به‌روزرسانی می‌کند.

برد Breakout از یک نمایشگر سون‌سگمنت چهاررقمی استفاده می‌کند، اما اگر یک برد HT16K33 عمومی‌تر (مانند قطعه شماره 1427 شرکت Adafruit) تهیه کنید، می‌توانید آن را با نمایشگرهای تک‌رقمی یا دو‌رقمی برای حداکثر هشت رقم به کار ببرید. هنگام ترکیب چند نمایشگر، هر پایه متناظر سگمنت باید به یکدیگر متصل شوند. لازم است به دیتاشیت نمایشگر سگمنت مورداستفاده و همچنین دیتاشیت برد HT16K33 که انتخاب کرده‌اید مراجعه کنید.

اطلاعات
176
0
0
اشتراک و حمایت
profile نویسنده: Arduino captain متخصص الکترونیک

من کاپیتان آردوینو، اسمم میلاده و اینجا هستم تا تجربیاتم در رابطه با آردوینو رو با شما به اشتراک بزارم!


ویراستار: محمد کبیر
مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله