آموزش آردوینو UNO ( سون سگمنت)

به آموزش آردوینو ( قسمت بیست و پنجم – سون سگمنت ) خوش اومدید.

بازبینی اول : در تاریخ ۱۴۰۰/۰۵/۲۸ انجام شد!

سون سگمنت

 علت اصلی نام گذاری این محصول این است که این قطعه از ۷ قسمت تشکیل شده است .

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

در کل دو نوع سون سگمنت داریم :

 1- سون سگمنت های کاتد مشترک(در صورتی که در سون سگمنت، کاتد کلیه ال ای دی ها به هم متصل شده باشد )
 2- سون سگمنت های آند مشترک(در صورتی که در سون سگمنت، آند کلیه ال ای دی ها به هم متصل شده باشد )

به صورت استاندارد هر یک از سگمنتهای سون سگمنتها را با حروف انگلیسی A تا G نام گذاری می کنند.

آرایش پایه های سون سگمنت:

a-g & Dp : از ۱۰ عدد پایه سون سگمنت ۷ پایه  یعنی پایه های a , b , c , d , e ,f ,g که برای نمایش اعداد و بعضی حروف به کار میروند و به پایه های دیجیتال برد آردوینو متصل میشوند.

پایه Dp هم که برای نمایش یک نقطه روشن روی سون سگمنت به کار میرود که باهاش میتوانیم اعداد اعشاری را هم نمایش بدیم.

COM : پایه های شماره ۳ و ۸ بعنوان پایه مشترک سون سگمنت استفاده میشوند.

سون سگمنت چطور کار میکند؟

در تصویر زیر میتونید ببینید که برای نمایش هر عدد و حروفی که بر روی سون سگمنت قابل نمایش هست باید کدوم ال ای دی رو روشن کنید:

پیاده سازی عملی پروژه

وقتی سون سگمنت رو میبیندید ال ای دی دات یا همون نقطه (ممیز) باید پایین و سمت راست تصویر باشد.

برای کنترل ولتاژ سر راه اتصال ها مقاومت قرار بدهید.

اگر از سون سگمنت کاتد مشترک استفاده میکنید شماتیک مداری شما مانند تصویر زیر میشود.

شبیه سازی پروژه در پروتئوس

یک برد آردوینو ، یک سون سگمنت را در پروتئوس از قسمت Devices به صفحه بیافزایید و آنها را مانند شکل وصل کنید.

نصب کتابخانه های ضروری

برای نصب کتابخانه سون سگمنت مراحل زیر رو طی میکنیم:

از منویSketck  گزینه Include Library و سپس روی Manage Library کلیک میکنیم .

در کادر عبارت SevSeg را تایپ میکنیم و Enter میزنیم تا لیست کتابخانه ها ظاهر بشه و آخرین ورژن کتابخانه مورد نظر را نصب میکنیم.

یا میتوانید آن را از سایت گیت دانلود کرده و از منوی Sketck  گزینه Include Library و سپس Add ZIP library اضافه کنید.

کد های دستوری

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

سپس یک شی از نوع SevSeg ایجاد میکنیم و در ادامه برنامه ازش برای نمایش اعداد استفاده میبریم.

#include "SevSeg.h"
SevSeg myDisplay;

در تابع setup نوع سون سگمنت رو مشخص میکنیم.

در این پروژه از سون سگمنت تکی استفاده میکنیم پس مقدار numDigits=1 قرار میگیرد.

byte numDigits = 1;

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

byte digitPins[] = {};

آرایه segmentPins مشخص میکنه که به ترتیب پین های A,B,C,D,E,F,G,DP به ترتیب به کدام پایه های برد آردوینو یونو قراره متصل بشوند.

//Defines arduino pin connections in order: A, B, C, D, E, F, G, DP
byte segmentPins[] = {3, 2, 8, 7, 6, 4, 5, 9};

بعد از ایجاد متغیر ها با استفاده از تابع ()sevseg.begin این تغییرات را به سون سگمنت منتقل میکینم.

sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins, resistorsOnSegments);

در loop برنامه در یک حلقه ()for شمارنده از مقدار ۰ شروع به کار میکند و هر بار مقدار ان شمارنده را روی نمایشگر سون سگمنت نمایش میدهد.

for(int i = 0; i < 10; i++)
{
     sevseg.setNumber(i);
     sevseg.refreshDisplay(); 
     delay(1000);
}

کد کامل پروژه

#include "SevSeg.h"
SevSeg sevseg;

void setup()
{
  byte numDigits = 1;

  byte digitPins[] = {};

  byte segmentPins[] = {3, 2, 8, 7, 6, 4, 5, 9};
  bool resistorsOnSegments = true;

  sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins, resistorsOnSegments);
  sevseg.setBrightness(90);
}

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

پایان آموزش آردوینو  ( قسمت بیست و پنجم – سون سگمنت )

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

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

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...