نمایشگرهای سون سگمنت یکی از مهم ترین و پرکابردترین ابزارها در زمینه سیستم های دیجیتال به شمار می روند. به کمک این نمایشگرها می توانید داده های مختلفی را اعم از اعداد انگلیسی و برخی حروف لاتین، نمایش دهید. نمایشگرهای سون سگمنت به دلیل قیمت و درخشندگی بالای نور زمینه، همواره مورد علاقه طراحان دیجیتال بوده و هست. در سال های اخیر با رشد فناوری های دیجیتال، بردهای آردوینو به یکی از انتخاب های اصلی در طراحی ها بدل شده اند. در کنار این، نمایشگرهای سگمنت بسیاری قابلیت اتصال به بردهای آردوینو را دارا هستند. در این آموزش به بررسی یک کتابخانه کلیدی و کاربردی جهت راه اندازی نمایشگرهای سگمنت، خواهیم پرداخت. در ادامه بررسی کتابخانه AceSegment با مرجع تخصصی کتابخانه آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
نمایشگرهای سگمنت TM1637 و TM1638
نمایشگرهای سون سگمنت، آنطور که اطلاع دارید، یکی از ارزانترین و پرکاربردترین ابزارها جهت نمایش داده به کاربر است. اما یک اشکالی که به این نمایشگر وارد است، تعداد زیاد پایه جهت روشن شدن است. از انجاییکه نمایشگرهای سون سگمنت از ۷ ال ای دی تشکیل شده اند، بنابراین نیاز است تا برای هر LED یک پایه به میکرو متصل شود.
برای حل مشکل فوق، ماژول های سون سگمنت بسیار کاربردی هستند. این ماژول ها می توانند به دو پایه، تعداد زیادی سگمنت را راه اندازی کنند. به عنوان مثال ماژول TM1637 یک ماژول بسیار کاربردی بوده که می تواند ۴ سگمنت را تنها با دو پایه راه اندازی کند. در این ماژول به کمک پروتکل I2C، می توان ۴ سگمنت را راه اندازی کرد. در ادامه با ماژول TM1638 رو به رو هستیم. این ماژول دارای ۸ سگمنت بوده که می تواند به راحتی با ۳ پایه راه اندازی شود. این ماژول در حقیقت از ۲ TM1637 تشکیل شده است.
جهت راه اندازی و کار با ماژول های سگمنت، کتابخانه AceSegment توسعه یافته است. این کتابخانه به سادگی می تواند ارتباط بین آردوینو و TM1637 و TM1638 را راه اندازی کنید.
مراحل نصب کتابخانه AceSegment
پس از بررسی سگمنت های مختلف، نوبت به نصب کتابخانه می رسد. جهت نصب، ابتدا در منوی Tools گزینه Manage Libraries را انتخاب کنید. سپس در کادر جست و جو، مطابق تصویر زیر عبارت AceSegment را تایپ کنید. سپس کتابخانه مشخص شده در تصویر را نصب کنید.
در ادامه، زمان نصب کتابخانه نیاز است تا سایر کتابخانه های همراه نصب شود. به همین دلیل، با تصویر زیر رو به رو می شوید. در این جا با انتخاب گزینه INSTALL ALL، همه کتابخانه های مورد نیاز این کتابخانه را نصب کنید.
الزامات و نکات فنی کتابخانه AceSegment
پس از نصب کتابخانه، نوبت به بررسی الزامات و نکات فنی می رسد. در ابتدا کتابخانه AceSegment بر روی کلیه معماری های مورد پشتیبانی برد آردوینو قابلیت اجرا دارد. در حقیقت این کتابخانه می تواند روی بردهای آردوینو با معماری AVR یا بردهای ESP با معماری XTENSA، اجرا گردد. در کنار این، کتابخانه AceSegment می تواند طیف وسیعی از ماژول های نمایشگر را پشتیبانی کند. این نمایشگرهای عبارتند از:
- TM1637
- TM1638
- MAX7219
- MAX7221
- HT16K33
- ۷۴HC595
ماژول هایی درایور نداشته و سگمنت ها مستقیم به برد پردازشی متصل می گردند
توابع کلیدی و کاربردی کتابخانه
پس از بررسی الزامات و نکات فنی، نوبت به بررسی توابع کلیدی و کاربرد کتابخانه می رسد. در قدم اول، باید کتابخانه راه اندازی شود. جهت راه اندازی، ابتدا باید ارتباط بین برد و نمایشگر با تابع زیر راه اندازی شود.
begin
در قدم بعدی، setPatternAt تابع نمایش داده روی نمایشگر است. به کمک این تابع شما می توانید تعیین کنید که روی هر کانال سگمنت، چه عددی نوشته شود. به عنوان مثال فرض کنید در نمایشگر TM1637، می خواهید در اولین سگمنت، عدد ۰ را نمایش دهید. برای این مورد، به صورت زیر عمل می کنیم.
setPatternAt(0, 0b00111111)
عدد قرار گرفته در ورودی دوم در حقیقت نمایشگر عدد ۰ به فرمت سون سگمنت است. دردر ادامه، به کمک تابع flush می توانید داده ها را روی نمایشگر بنویسید. این تابع صبر کرده تا داده ها روی نمایشگر نمایش داده شود. همچنین به کمک تابع زیر می توانید میزان درخشندگی نمایشگر را تنظیم کنید.
setBrightness()
اجرای یک نمونه برنامه
پس از بررسی توابع کلیدی، نوبت به اجرای یک نمونه برنامه با کتابخانه AceSegment می رسد. در برنامه زیر روی نمایشگر TM1637، روی سگمنت ها اعداد ۰ الی ۳ به ترتیب از راست به چپ نمایش داده می شود.
//کتابخانه های زیر باید فراخوانی شوند. #include <Arduino.h> #include <AceTMI.h> // SimpleTmi1637Interface #include <AceSegment.h> // Tm1637Module //ساخت یک نمونه شی از کلاس کتابخانه using ace_tmi::SimpleTmi1637Interface; using ace_segment::Tm1637Module; //تنظیم پایه های ارتباطی و تعداد سگمنت ها که برای TM1637 4 سگمنت است. const uint8_t CLK_PIN = A0; const uint8_t DIO_PIN = 9; const uint8_t NUM_DIGITS = 4; //تعریف یک تاخیر برای نمایش داده ها روی نمایشگر const uint8_t DELAY_MICROS = 100; // مقدار دهی شی های تعریف شده using TmiInterface = SimpleTmi1637Interface; TmiInterface tmiInterface(DIO_PIN, CLK_PIN, DELAY_MICROS); Tm1637Module<TmiInterface, NUM_DIGITS> ledModule(tmiInterface); const uint8_t NUM_PATTERNS = 10; //10 رقم برای نمایش داریم const uint8_t PATTERNS[NUM_PATTERNS] = { //اعداد معادل سگمنت ها ا روی نمایشگر را مقدار دهی کردیم. ۰b00111111, // 0 ۰b00000110, // 1 ۰b01011011, // 2 ۰b01001111, // 3 ۰b01100110, // 4 ۰b01101101, // 5 ۰b01111101, // 6 ۰b00000111, // 7 ۰b01111111, // 8 ۰b01101111, // 9 }; void setup() { delay(1000); tmiInterface.begin(); //راه اندازی ledModule.begin(); ledModule.setPatternAt(0, PATTERNS[0]); //نمایش عدد صفر روی سگمنت اول ledModule.setPatternAt(1, PATTERNS[1]); //نمایش عدد یک روی سگمنت دوم ledModule.setPatternAt(2, PATTERNS[2]); //نمایش عدد دو روی سگمنت سوم ledModule.setPatternAt(3, PATTERNS[3]); //نمایش عدد ۳ روی سگمنت چهارم ledModule.setBrightness(2); ledModule.flush(); } void loop() {}
لوازم مورد نیاز
لینک خرید ماژول های سون سگمنت، کلیک کنید
لینک خرید انواع برد آردوینو، کلیک کنید
جمع بندی
در این آموزش به تحلیل و بررسی کتابخانه سون سگمنت AceSegment پرداختیم. همانطور که اطلاع دارید، سون سگمنت ها یکی از پرکابردترین نمایشگرها در سیستم های دیجیتال محسوب می شوند. به کمک کتابخانه AceSegment می توانید به سادگی انواع مختلفی از ماژول های سگمنت را با آردوینو راه اندازی کنید. این کتابخانه در حقیقت یک ابزار جامع برای راه اندازی و کار با سگمنت هاست.