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

راه اندازی سون سگمنت با آردوینو (آموزش کامل)

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

سون سگمنت چیست؟

سون سگمنت ها در اندازه ها و رنگ های بسیار متنوعی عرضه می شوند. قرمز، آبی و سبز مرسوم ترین رنگ ها هستند. اندازه سون سگمنت ها از کوچک 0.56 اینچی تا نمایشگرهای بزرگ 4 اینچی و حتی 6.5 اینچی متغیر است. برخی از نمایشگرها تک رقمی و برخی دیگر دارای دو یا چهار رقم هستند.سون سگمنت و آردوینو

نمایشگر سون سگمنت شامل 7 ال ای دی به نام سگمنت هستند که به شکل “8” مرتب شده اند. اکثر نمایشگرهای 7 قسمتی در واقع دارای 8 بخش هستند که یک نقطه در سمت راست آن ها قرار گرفته است که به عنوان نقطه اعشار عمل می کند. هر سگمنت با یک حرف A تا G و DP برای نقطه اعشار نامگذاری شده است:

سون سگمنت چیست؟

هر سگمنت را می توان به صورت جداگانه کنترل کرد، درست مانند یک LED معمولی.

دو نوع نمایشگر 7 سگمنت وجود دارد :

  • کاتد مشترک: همه کاتدها به زمین متصل می شوند و بخش های جداگانه با سوئیچ کردن برق به آندها روشن و خاموش می شوند.
  • آند مشترک: تمام آندها به Vcc متصل هستند و بخش‌های جداگانه با سوئیچ کردن برق به کاتدها روشن و خاموش می‌شوند.

برای درک کامل سون سگمنت ها، مقاله سون سگمنت چیست را بخوانید.

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

سون سگمنت های تک رقمی معمولاً 10 پین دارند. دو پین به زمین و 8 پایه دیگر به هر یک از سگمنت ها متصل می شوند. در اینجا یک نقشه پین از نمایشگر کاتد مشترک 5161AS آمده است:

سون سگمنت کاتد مشترک 5161AS

اتصال سون سگمنت به آردوینو بسیار آسان است. شماتیک زیر نحوه اتصال یک نمایشگر تک رقمی 5161AS را نشان می‌دهد (به مقاومت محدودکننده جریان 1K اهم که به صورت سری با پین‌های مشترک متصل شده است توجه کنید):

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

قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

در این پروژه، اتصالات پایه های سون سگمنت به آردوینو با توجه به جدول زیر انجام میشود:

جدول اتصالات سون سگمنت به آردوینو

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

در مرحله اول باید کتابخانه سون سگمنت را نصب کنید. ما از کتابخانه ای به نام SevSeg برای کنترل نمایشگر استفاده خواهیم کرد. کتابخانه SevSeg با نمایشگرهای سون سگمنت تک رقمی و چند رقمی کار می کند. کد های پروژه همراه با سورس کد در انتهای صفحه در فایل دانلودی قرار داده شده اند.

نمایش اعداد در سون سگمنت

این برنامه عدد “4” را در یک صفحه نمایش سون سگمنت تک رقمی چاپ می کند.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

در این برنامه در یک شی sevseg ایجاد می کنیم. برای استفاده از نمایشگرهای اضافی می توانید یک شی دیگر ایجاد کنید و توابع مربوطه را برای آن شیء فراخوانی کنید. صفحه نمایش با تابع sevseg.begin() مقداردهی اولیه می شود. سایر توابع در زیر توضیح داده شده اند:

#include "SevSeg.h" // فراخوانی کتابخانه سون سگمنت
SevSeg sevseg; // ایجاد یک آبجکت

void setup(){
    byte numDigits = 1; // تعیین تعداد رقم های سون سگمنت
    byte digitPins[] = {}; // پین رقم ها (در نوع تک رقمی نیازی نیست)
    byte segmentPins[] = {6, 5, 2, 3, 4, 7, 8, 9}; // پین های سگمنت ها a-g
    bool resistorsOnSegments = true; // تعیین مقاومت متصل به سگمنت ها

    byte hardwareConfig = COMMON_CATHODE;  // تعیین کاتد مشترک
    sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
    sevseg.setBrightness(90); // تعیین روشنایی سون سگمنت
}
  • hardwareConfig = COMMON_CATHODE – این نوع سون سگمنت را تعیین می کند. من از یک سون سگمنت کاتد مشترک استفاده می کنم، اما اگر از یک سون سگمنت آند مشترک استفاده می کنید، به جای آن از COMMON_ANODE استفاده کنید.
  • byte numDigits = 1 – این تعداد ارقام روی سون سگمنت شما را تعیین می کند. من از سون سگمنت تک رقمی استفاده می کنم، بنابراین آن را روی 1 تنظیم کردم. اگر از نمایشگر 4 رقمی استفاده می کنید، آن را روی 4 تنظیم کنید.
  • Byte digitPins[] = {} – آرایه ای ایجاد می کند که پایه های زمین را هنگام استفاده از نمایشگر 4 رقمی یا چند رقمی مشخص می کند. اگر سون سگمنت تک رقمی دارید آن را خالی بگذارید. به عنوان مثال، اگر صفحه نمایش 4 رقمی دارید و می خواهید از پین های 10، 11، 12، و 13 آردوینو به عنوان پایه های زمین استفاده کنید، باید از این حالت استفاده کنید: byte digitPins[] = {10, 11, 12, 13}
  • Byte segmentPins[] = {6, 5, 2, 3, 4, 7, 8, 9} – آرایه ای را ایجاد می کند که مشخص می کند کدام پایه های آردوینو به هر سگمنت از نمایشگر متصل است. این آرایه به ترتیب حروف الفبا است (A، B، C، D، E، F، G، DP که DP نقطه اعشار است). بنابراین در این حالت، پایه آردوینو ۶ به سگمنت A، پایه ۵ به سگمنت B، پایه ۲ به سگمنت C و … متصل می شود.
  • resistorsOnSegments = true – اگر مقاومت های محدود کننده فعلی شما با پین های سگمنت سری هستند، باید روی true تنظیم شود. اگر مقاومت ها با پین های رقمی سری هستند، آن را روی false قرار دهید. هنگام استفاده از نمایشگرهای چند رقمی، این را روی true تنظیم کنید
  • sevseg.setBrightness(90) – این تابع روشنایی نمایشگر را تنظیم می کند. از 0 تا 100 قابل تنظیم است.
void loop(){
        sevseg.setNumber(4); // نمایش عدد 4
        sevseg.refreshDisplay(); // رفرش کردن و ثبت تغییرات روی سون سگمنت
}
  • sevseg.setNumber() – این تابع عدد را در صفحه نمایش چاپ می کند. به عنوان مثال، sevseg.setNumber(4) عدد “4” را در صفحه نمایش چاپ می کند. همچنین می توانید اعداد را با اعشار چاپ کنید. به عنوان مثال، برای چاپ شماره “4.999”، از sevseg.setNumber (4999, 3) استفاده کنید. پارامتر دوم (3) تعیین می کند که نقطه اعشار در کجا قرار دارد. در این حالت 3 رقم از سمت راست ترین رقم فاصله دارد. در یک صفحه نمایش تک رقمی، تنظیم پارامتر دوم روی “0” نقطه اعشار را روشن می کند، در حالی که با تنظیم آن روی “1” آن را خاموش می کند.
  • sevseg.refreshDisplay() – این تابع در انتهای بخش حلقه برای ادامه نمایش عدد مورد نیاز است.

شمارشگر با سون سگمنت

اگر قسمت loop کد بالا را به شکل زیر بنویسیم، برنامه خیلی ساده از 0 تا 9 را میشمارد و روی سون سگمنت نمایش میدهد.

void loop(){
    for(int i = 0; i < 10; i++){
        sevseg.setNumber(i, i%2);
        delay(1000);
        sevseg.refreshDisplay(); 
        }
}

موارد موجود در فایل : سورس ها و کتابخانه

4.6 (5 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *