نمایشگرها همواره یکی از مهم ترین اجزای یک پروژه به شمار می روند. در حقیقت نمایشگرها نقش رابط بین کاربر ودستگاه را بازی می کنند. یکی از مهم ترین نوع نمایشگرها، سون سگمنت ها هستند. این نمایشگرها در کنار قیمت بسیار مناسب، می توانند حروف و اعداد را نمایش دهند. از طرفی دیگر با توجه به نور پس زمینه این نمایشگرها، اعداد و حروف به سادگی نمایش داده می شوند. از آنجاییکه نمایشگرهای سگمنت پایه های بسیاری را جهت راه اندازی نیاز دارند، لذا جهت راه اندازی و کار با آن ها درایورهای مخصوص تعبیه شده است. به کمک این درایورها می توان تنها از طریق دو پایه، به تعداد زیادی سگمنت فرمان ارسال نمود. به عنوان مثال درایور TM1637، یک درایور کاربردی جهت راه اندازی سگمنت ها بوده که پیشتر در آموزشی به تحلیل و بررسی کتابخانه آن پرداخته ایم. این آموزش با کلیک بر روی این لینک قابل دسترسی است. در این آموزش اما به تحلیل و بررسی کتابخانه TM1638 می پردازیم. تراشه و ماژول TM1638 یک درایور کاربردی جهت راه اندازی و کار با سون سگمنت ها به شمار می رود. جهت راه اندازی و کار با این تراشه کتابخانه تحت آردوینو توسعه یافته که در این آموزش به آن می پردازیم. در ادامه تحلیل کتابخانه TM1638lite.h با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
ماژول درایور TM1638
همانطور که اطلاع دارید، سون سگمنت ها دارای تعداد زیادی پایه هستند. از این رو اتصال مستقیم آن ها به به میکروکنترلرها تعداد زیادی از پایه ها را اشغال می کند. به همین جهت، ماژول های درایور سون سگمنت با قیمتی مناسب، طراحی و توسعه یافته اند. این ماژول ها با پروتکل های ارتباطی سریال نظیر SPI و یا I2C، تعداد زیادی سگمنت را می توانند از طریق دو و یا ۴ پایه به میکروکنترلر متصل کنند.
جهت راه اندازی چندین سون سگمنت، دو درایور محبوب TM1637 و TM1638 در بازار موجود هستند. پیشتر با تراشه TM1637 در قالب تحلیل کتابخانه و اجرای پروژه های مختلف آشنا شده ایم. در این آموزش قصد داریم تا به تحلیل و بررسی کتابخانه تراشه TM1638 بپردازیم. تراشه TM1638 در حقیقت نوع پیشرفته تر TM1637 به شمار می رود. این تراشه می تواند تعداد بسیار بیشتری سگمنت را نسبت به مدل قبلی خود، پشتیبانی کند. جدول زیر به طور خلاصه به بررسی این دو تراشه می پردازد.
TM1637 | TM1638 |
پشتیبانی تا ۴ دیجیت | پشتیبانی تا ۸ دیجیت |
ارتباط با پروتکل I2C |
ارتباط با پروتکل SPI |
بدون قابلیت اتصال کلید | قابلیت اتصال کلید علاوه بر سگمنت ها |
در این آموزش به تحلیل و بررسی کتابخانه تراشه TM1638 برای پلتفرم آردوینو می پردازیم. مطابق رویه تحلیل کتابخانه ها، در قسمت بعد نصب کتابخانه را خواهیم دید. پس از آن الزامات و نکات فنی کتابخانه مور بررسی قرار خواهد گرفت. در ادامه نیز به تحلیل و بررسی توابع کلیدی کتابخانه خواهیم پرداخت. در نهایت نیز با اجرای یک نمونه برنامه، نحوه استفاده از توابع را مشاهده خواهیم نمود.
نصب کتابخانه TM1638lite.h
به منظور استفاده از کتابخانه TM1638lite.h، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.
مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارت TM1638lite.h را تایپ کنید. پس از چند لحظه با تصویر زیر رو به رو می شوید. در این مرحله، کتابخانه را با کلیک بر روی گزینه install، نصب کنید.
الزامات و نکات فنی کتابخانه TM1638
پس از نصب کتابخانه، نوبت به بررسی الزامات و نکات فنی آن می رسد. این کتابخانه برای بردهای آردوینو مبتنی بر تراشه AVR طراحی و توسعه یافته است. بدین تریب این کتابخانه می تواند بر روی بردهای آردوینو UNO، میکرو، لئوناردو و میکرو قابل اجراست. در طرف دیگر، به نظر می رسد که این کتابخانه بر روی بردهای ESP تست نشده است. توجه داشته باشید که این کتابخانه برای ارتباط، از سه پایه استفاده می کند. طبق توصیه توسعه دهنده، این سه پایه بهتر است از پایه های ۴ و ۷ و ۸ انتخاب گردد.
پس از بررسی الزامات و نکات فنی کتابخانه TM1638lite.h، نوبت به تحلیل و بررسی توابع کلیدی می رسد. قسمت بعد به این موضوع اختصاص می یابد.
توابع کلیدی و کاربردی کتابخانه TM1638lite.h
پس از بررسی الزامات فنی، نوبت به تحلیل و بررسی توابع کلیدی کتابخانه می رسد. جدول زیر لیست توابع این کتابخانه را نمایش می دهد. توجه داشته باشید که این کتابخانه بر مبنای ماژول راه انداز تراشه TM1638 که از کلید و سگمنت بهره می برد؛ توسعه یافته است.
شرح | ورودی ها | تابع |
این تابع در حقیقت تابع سازنده کلاس کتابخانه است. به کمک این تابع پایه ها جهت ارتباط با ماژول تعیین می گردد. | strobe: پایه جهت فعال سازی ماژول
clock: پایه جهت تعیین سیگنال کلاک data: پایه جهت تعیین سیگنال دیتا |
TM1638lite (uint8_t strobe, uint8_t clock, uint8_t data) |
این تابع صفحه نمایش را پاک می کند. | بدون ورودی | void reset () |
این تابع در صورت فشرده شده کلید، شماره کلید فشرده شده را از یک تا ۸ در خروجی خود قرار می دهد. | بدون ورودی | uint8_t readButtons () |
به کمک این تابع می توان LED را با تعیین موقعیت خاموش و یا روشن نمود. ورودی position موقعیت led و ورودی value با مقدار ۱ روشن و با مقدار ۰ LED مورد نظر را خاموش می کند. | position: تعیین موقعیت سگمنت
value: تعیین وضعیت روشن و خاموش سگمنت |
void setLED (uint8_t position, uint8_t value) |
به کمک این تابع و از طریق ورودی قرار گرفته، می توان رشته بر روی نمایشگر نمایش داد. | ورودی از نوع رشته | void displayText (String text) |
پس از بررسی توابع کلیدی و کاربردی کتابخانه، نوبت به اجرای یک نمونه برنامه می رسد. قسمت بعد را به این مورد اختصاص می دهیم.
اجرای یک نمونه برنامه
پس از بررسی توابع کلیدی و کاربردی، نوبت به اجرای یک نمونه برنامه می رسد. در این برنامه متنی بر روی نمایشگر نمایش داده می شود. سپس وضعیت کلید ها خوانده سده و متناسب با آن وضعیت LED ها روشن یا خاموش می گردد.
#include <TM1638lite.h> //کتابخانه tm1638 // تعیین پایه ها جهت ارتباط //تغذیه را بهتر است به ۳٫۳ متصل کنید. TM1638lite tm(4, 7, 8); //تابع سازنده و ایجاد یک شی void setup() { tm.reset(); tm.displayText("Eh"); //نمایش متن tm.setLED(0, 1); delay(2000); delay(2000); tm.displayText("buttons"); } void loop() { uint8_t buttons = tm.readButtons(); doLEDs(buttons); //بررسی وضعیت کلید ها } // خواندن کلیدها void doLEDs(uint8_t value) { for (uint8_t position = 0; position < 8; position++) { tm.setLED(position, value & 1); value = value >> 1; } }
لوازم مورد نیاز
جمع بندی
نمایشگرهای سون سگمنت یکی از مهم ترین و پرکابردترین نمایشگرها در صنعت و پروژه های مختلف به شمار می روند. به کمک این نمایشگرها می توانید اعداد و برخی از حروف انگلیسی را نمایش دهید. از آنجاییکه این نمایشگرها نیاز به تعداد زیادی پایه جهت راه اندازی دارند، بنابراین درایورهای سون سگمنت جهت کاهش سیم کشی و اشغال شدن پایه های GPIO میکروکنترلر توسعه یافته اند. یکی از این درایورها، درایور TM1638 است. این درایور که به شکل ماژول در بازار یافت می شود، دارای ۸ دیحیت و ۸ کلید است. بدین ترتیب یک نمایشگر و تعدادی کلید در اختیار خواهید داشت. از آنجاییکه جهت راه اندازی و کار با این ماژول کتابخانه تحت آردوینو توسعه یافته است؛ این آموزش را به تحلیل و بررسی کتابخانه اختصاص دادیم. در ابتدا به معرفی تراشه و ماژول TM1637 پرداختیم. پس از آن نصب کتابخانه و بررسی بردهای مورد پشتیبانی این کتابخانه، در دستور کار قرار گرفت. در ادامه توابع کلیدی و کاربردی کتابخانه تحلیل شده و در نهایت با ارائه مثال، نحوه استفاده از توابع در برنامه های کلیدی و کاربردی را مشاهده نمودیم.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.