
باتریهای قابل شارژ لیتیومی امروزه در بسیاری از وسایل الکترونیکی، از گوشی و لپتاپ گرفته تا پهپاد، اسپیکر، تجهیزات قابل حمل و پروژههای الکترونیکی استفاده میشوند. در میان مدلهای مختلف، باتری لیتیوم یونی و…
ادامه مطلب۲۷ اردیبهشت ۱۴۰۲

یکی از مرسومترین وسیلههایی که در بسیاری از گجتها و لوازم الکترونیکی از جمله ماکروفر، ساعت دیجیتال، اجاق گاز برقی و ... از آن برای نمایش اعداد استفاده میکنند سون سگمنت است. نمایشگر هفت بخشی یا سون سگمنت از 7 ال ای دی در ساختاری مشابه عدد 8 ساخته شده و از این دیودهای نوری بیشتر در نمایشگرهای 7 بخشی استفاده میکنند. در ادامه این مطلب با ما همراه شوید تا با نحوه راهاندازی سون سگمنت با آردوینو و پروژه تاس الکترونیکی بیشتر آشنا شوید.
یکی از رایجترین و پرمصرفترین نمایشگرها در جهان، سون سگمنت (Seven segment) است که اندازه و رنگهای بسیار متفاوتی دارد. رنگهای قرمز، آبی و سبز آن از رایجترین رنگها است.
اندازه سون سگمنت بین 0.56 اینچ تا 4 اینچ و 6.5 اینچ متغیر است و دارای نمایشگرهای تک رقمی، دو رقمی و چهار رقمی هستند. این نمایشگر دارای 8 ال ای دی به نام سگمنت است که به شکل عدد 8 مرتب شده و یک نقطه به صورت اعشار در سمت راست آن قرار دارد.
هر یک از سگمنتها با حرف A تا G و DP برای نقطه اعشار نامگذاری شدهاند، هر یک از سگمنتهای نامگذاری شده را میتوان به صورت جداگانه کنترل کرد.

یکی از مهمترین بخشها در زمان کار با سون سگمنت شناخت پایههای آن است، سون سگمنت با توجه به مدلهای مختلف، پایههای متفاوتی دارد. برای کار با آن بهتر است با تعداد پایههای سون سگمنت آشنا باشید:

ترتیب پایههای تکی سون سگمنت
سون سگمنت تکی از 8 ال ای دی ساخته شده و ال ای دی هشتم به عنوان اعشار شناخته میشود. پایههای A تا G مربوط به ال ای دی داخلی و DP مربوط به ممیز یا اعشار است.
هر ال ای دی دارای دو پایه است اما در سون سگمنت یک پایه از هر ال ای دی خارج میشود و در نهایت پایه همه آنها به یکدیگر متصل میشود که آن را پایه مشترک مینامند.
ترتیب پایههای دوتایی سون سگمنت
در این نوع سون سگمنت پایهها به صورت معمولی و مالتی پلکس است.
ترتیب پایههای سهتایی سون سگمنت
ترتیب پایهها در سون سگمنت به صورت مالتی پلکس است.
ترتیب پایههای چهارتایی سون سگمنت
ترتیب پایهها در سون سگمنت به صورت مالتی پلکس است.
هشت پایه سون سگمنت از A تا G به هشت پین دیجیتالی متصل شدهاند و با کنترل آنها میتوان اعداد مختلف را روی نمایشگر نشان داد. پین شماره 3 و 8 در سون سگمنت باید به یکدیگر متصل شوند تا یک پین مشترک را تشکیل دهند. این پین مشترک باید به زمین GND یا به آند مشترک متصل شود.

سون سگمنت با توجه کاربردش بردهای مختلفی دارد که هر یک از آنها با هدف خاصی مورد استفاده قرار میگیرند.
بردها دارای یک نمایشگر دیجیتال و یک خروجی همزمان سریال برای اتصال به بردهای دیگر و کامپیوتر دارند. واحد نمایش اندازه در این نمایشگر به صورت سانتیمتر است و عملیات پردازشی را با سرعت و دقت بالایی انجام میدهد. خطای اندازهگیری بردها حدود یک درصد است.
یکی از رایجترین و پرمصرفترین نمایشگرهای سون سگمنت، آند مشترک است که در آن تمام آندها به Vcc وصل میشوند. بخشهای جداگانه در این نمایشگر با سوئیچ کردن برق به کاتدها روشن و خاموش میشوند.
در این نوع نمایشگر تمامی اتصالات کاتدی قطعات ال ای دی به زمین متصل میشوند. بخشهای جداگانه در این نمایشگر با سوئیچ کردن برق به آندها روشن و خاموش میشود.
سون سگمنت با توجه به عددی که قصد نمایش آن را دارد، ال ای دی مورد نظر را روشن میکند. به عنوان مثال برای نمایش دادن عدد 5 باید ال ای دی a. f. g. c. d روشن شود. سون سگمنت قابلیت آن را دارد تا تمام اعداد بین 0 تا 9 را نمایش دهد.
در شکل زیر میتوانید جدول ارزش یا truth table را برای نمایش اعداد 0 تا 9 روی سون سگمنت ببینید. این جدول برای سون سگمنت کاتد مشترک تعریف شده و برای استفاده از سون سگمنت آند مشترک کافیست جای ۰ و ۱های جدول را باهم عوض کنید.

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

ابتدا سون سگمنت را روی برد قرار دهید، اگر نقطه اعشاری آن به سمت پایین باشد اعداد 1 تا 5 در سمت پایین و از سمت چپ به راست آن قرار میگیرد و پینهای 6 تا 10 هم در سمت بالا و از چپ به راست قرار میگیرند.
سون سگمنت تک رقمی
کابل USB
مینی برد
مقاومت 220 اهم
برای اتصال پایهها در راهاندازی سون سگمنت آردوینو از یک سون سگمنت آند مشترک استفاده میکنند. معمولا یکی از پینهای مشترک 3 یا 8 را به پین V5 متصل میکند و در سون سگمنت کاتد یکی از دو پین را به پین زمین آردوینو متصل میکند.
چهار پین بالایی سون سگمنت به پینهای دیجیتال 2 تا 5 آردوینو وصل میشود، چهار پین پایینی سون سگمنت را به پینهای دیجیتال 6 تا 9 آردوینو متصل میکنند.
در جدول زیر میتوانید روش اتصال را به اختصار مشاهده کنید:
توضیحات | پایههای آردوینو | پایههای سون سگمنت |
با مقاومت ۲۲۰ اهم | ۳ | a |
با مقاومت ۲۲۰ اهم | ۲ | b |
با مقاومت ۲۲۰ اهم | ۸ | c |
با مقاومت ۲۲۰ اهم | ۷ | d |
با مقاومت ۲۲۰ اهم | ۶ | e |
با مقاومت ۲۲۰ اهم | ۴ | f |
با مقاومت ۲۲۰ اهم | ۵ | g |
با مقاومت ۲۲۰ اهم | ۹ | DP |
فقط برای آند مشترک | 5V | COM |
فقط برای کاتد مشترک | GND | COM |
نصب کتابخانه سون سگمنت برای آردوینو
۱- در آردوینو IDE به مسیر Arduino IDE > Sketch > Include Library > Manage Libraries بروید
۲- از لیست کتابخانهها گزینه SevSeg را جستوجو کنید.
۳- کتابخانه SevSeg library by Dean Reading. را نصب کنید.
۴- پس از پایان نصب یک اسکچ جدید باز کنید و کدنویسی را شروع کنید
کد نمونه زیر را در محیط Arduini IDE وارد کنید:
#include "SevSeg.h"
SevSeg sevseg;
void setup()
{
//Set to 1 for single digit display
byte numDigits = 1;
//defines common pins while using multi-digit display. Left empty as we have a single digit display
byte digitPins[] = {};
//Defines arduino pin connections in order: A, B, C, D, E, F, G, DP
byte segmentPins[] = {3, 2, 8, 7, 6, 4, 5, 9};
bool resistorsOnSegments = true;
//Initialize sevseg object. Uncomment second line if you use common cathode 7 segment
sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins, resistorsOnSegments);
//sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90);
}
void loop()
{
//Display numbers one by one with 2 seconds delay
for(int i = 0; i < 10; i++)
{
sevseg.setNumber(i);
sevseg.refreshDisplay();
delay(2000);
}
}۱- ابتدا کتابخانه SevSeg را اضافه کردهایم و یک شی با نام sevseg ایجاد کرده ایم. ما از این شی برای کنترل نمایشگر با کمک کتابخانه SevSeg استفاده خواهیم کرد.
// Include library
#include "SevSeg.h"
// Create object
SevSeg sevseg;۲- سپس باید تعداد اعداد در نمایشگر را مشخص کنید، معمولا در این پروژهها برای نمایش اعداد از یک رقم استفاده میکنیم. به همین دلیل مقدار numDigits را روی 1 تنظیم کنید، البته این مقدار برای سون سگمنت تکی است و برای سون سگمنت چهارتایی باید این مقدار روی 4 تنظیم شود.
// Number of digits in display
byte numDigits = 1;۳- آرایهی Digitpins پینهای مشترک را مشخص میکند، اگر از سون سگمنت تکی استفاده میکنید باید این بخش را خالی رها کنید اما اگر از سون سگمنت چندتایی استفاده میکنید باید شماره پینهای آردوینو را که پینهای مشترک به آن وصل شدهاند در این بخش قرار دهید.
// Specifies the 'common pins' while using multi-digit display.
// If you have a single digit display, leave it blank.
byte digitPins[] = {};۴- بعد از این باید آرایهی Segmentpins را تعریف کنید که پینهای I/O آن به ترتیب به حروف A,B,C,D,E,F,G,DP روی سگمنت ال ای متصل میشوند.
// Display segment pins A,B,C,D,E,F,G,DP
byte segmentPins[] = {3, 2, 8, 7, 6, 4, 5, 9};۵- متغیر بولی <span style="font-weight: 400;">resistorsOnSegments</span>resistorsOnSegments تعریف میشود که به کتابخانه بگوید آیا از مقاومتهای کنترلکننده جریان استفاده میکنیم یا خیر.
// Dropping resistors used
bool resistorsOnSegments = true;۶- متغیر hardwareConfig نشان میدهد که از چه مدل سون سگمنتی استفاده میکنیم. این متغیر میتواند مقادیر COMMON ANODE و COMMON CATHODE را بگیرد. در کد نمونه ما از COMMON ANODE استفاده کردهایم.
// Display type
byte hardwareConfig = COMMON_ANODE;۷- در Setup، شیء نمایشگر را با آرگومان هایی که به تازگی تعریف کردیم، مقداردهی اولیه می کنیم. ما همچنین روشنایی صفحه نمایش را پیکربندی می کنیم که مقدار آن بین ۰ تا ۱۵۰ خواهد بود.
void setup() {
// Start display object
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
// Set brightness
sevseg.setBrightness(90);
}۸- از یک لوپ for استفاده میکنیم که برای شمارش از 0 تا 9 استفاده میشود. در هربار شمارش از توابع setNumber() و refreshDisplay() برای نمایش یک عدد استفاده میشود.
همچنین بین نمایش هر عدد یک تاخیر ۱ ثانیهای وجود دارد.
for(int i = 0; i < 10; i++)
{
sevseg.setNumber(i);
sevseg.refreshDisplay();
delay(1000);
}یکی از کاملترین پروژههای سون سگمنت با آردوینو، پروژه تاس الکترونیکی است. این پروژه کمک میکند تا بتوانید تاس بریزید و میتوانید بازیهای مختلفی چون یاتزی (Yahtzee)، لودو (ludo) را انجام دهید.
بخش آردوینو در این پروژه تقریبا مشابه با پروژههای قبلی است تنها تفاوت این پروژه در آن است که یک سوئیچ لمسی برای افزایش سرعت تاس استفاده میکنند.
سون سگمنت
دکمه فشاری
مقاومت 10 کیلو اهم
آردوینو
تک سوئیچ چهارپین
هدف از انجام این پروژه آن است که به صورت تصادفی یکی از اعداد 1 تا 6 نمایش داده شود. بهترین روش استفاده از تابعrandom(min,max) است و به دو تابع نیاز دارد.
این تابع هم دارای دو پارامتر کوچکترین عدد و بالاترین حد اعداد تصادفی است، بدین ترتیب طبق این دو پارمتر یک عدد بین min و max-1 مشخص میشود.
#include "SevSeg.h"
SevSeg sevseg;
const int buttonPin = 10; // the number of the pushbutton pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup(){
byte numDigits = 1;
byte digitPins[] = {};
byte segmentPins[] = {3, 2, 8, 7, 6, 4, 5, 9};
bool resistorsOnSegments = true;
sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop()
{
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH)
{
sevseg.setNumber(random(1,7));
sevseg.refreshDisplay();
}
}۱- ابتدا باید مشخص کنیم که کدام پین آردوینو به پوش باتن متصل شده که این کار را با تعریف متغیر buttonstate انجام میدهیم.
// the number of the pushbutton pin
const int buttonPin = 10;
// variable for reading the pushbutton status
int buttonState = 0;۲- buttonpin را به عنوان وروی تنظیم میکنیم.
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);۳- در لوپ، هر زمان که فشار دادن دکمه تشخیص داده شود، با استفاده از تابع داخلی تصادفی (min, max) یک عدد تصادفی تولید می کنیم که دو پارامتر را می گیرد: اولی کران پایینی مقدار تصادفی (از جمله این عدد) را مشخص می کند. دومی کران بالایی را مشخص می کند (به استثنای این عدد). به این معنی که یک عدد تصادفی بین min و max-1 ایجاد خواهد شد.
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
sevseg.setNumber(random(1,7));
sevseg.refreshDisplay();
}
}یک نمایشگر چهار رقمی معمولاً دارای ۱۲ پایه است که شامل ۸ پایه برای سگمنتها (A تا G به همراه ممیز یا DP) و ۴ پایه مشترک برای فعالسازی هر رقم (Digit) میشود. برای تست و شناسایی پایه های سون سگمنت و تشخیص نوع آند مشترک یا کاتد مشترک، میتوانید از یک مقاومت ۲۲۰ اهم سری با یک منبع تغذیه ۵ ولت استفاده کنید؛ با ثابت نگه داشتن قطب تغذیه روی یکی از پایهها و لمس سایر پینها، سگمنتهای متناظر روشن شده و ترتیب پایههای کنترلی و داده مشخص میشود.
در روش مستقیم راه اندازی سون سگمنت 4 تایی با آردوینو، پایههای متناظر هر سگمنت (A تا G) در تمام ارقام به صورت موازی به پایههای دیجیتال برد متصل میشوند و پایههای مشترک هر رقم نیز به پینهای مجزای کنترل اختصاص مییابند. برای جلوگیری از سوختن دیودها، قرار دادن مقاومتهای محدودکننده جریان الزامی است؛ سپس با کمک کتابخانههایی مانند SevSeg، برنامه با سادگی هر عدد اعشاری یا چندرقمی را روی صفحه مدیریت و نمایش میدهد.
اتصال مستقیم سونسگمنت ۱۲ پین تا ۱۲ پایه خروجی آردوینو را اشغال میکند که برای پروژههای بزرگ بهینه نیست. اجرای راه اندازی سون سگمنت با ای سی مانند آیسیهای شیفت رجیستر 74HC595 یا درایورهای اختصاصی نظیر MAX7219 و TM1637، پایههای مورد نیاز آردوینو را تنها به ۲ الی ۳ سیم ارتباطی کاهش میدهد. این شیوه به کدنویسی بهینهتر کمک کرده و منابع پردازشی میکروکنترلر را برای کنترل سایر ماژولها و سنسورها آزاد میگذارد.
تکنیک مالتیپلکسینگ (Multiplexing) بر پایه خطای دید انسان عمل میکند؛ به این صورت که در هر لحظه، تنها یکی از ارقام با دیتای مربوط به خودش روشن شده و بلافاصله خاموش میشود تا نوبت به رقم بعدی برسد. این چرخه سوئیچینگ با سرعتی بالاتر از ۵۰ هرتز (فاصله زمانی چند میلیثانیه بین هر رقم) تکرار میگردد، در نتیجه چشم انسان همه ۴ رقم را به طور همزمان و ثابت روشن میبیند بدون آنکه تداخل نوری یا افت نور محسوسی رخ دهد.
حتی در یک مدار سون سگمنت ساده، بهرهگیری از آیسیهای دیکدر یا درایور مانند BCD به Seven Segment (نظیر 7447 یا 7448) یا درایورهای سریالی، روش سیمکشی را بسیار تمیزتر میکند. در این پیکربندی، پایههای داده خروجی آیسی به سگمنتهای A تا G متصل شده و سیگنالهای کنترلی یا کلاک از میکروکنترلر به آیسی داده منتقل میشود؛ آیسی محاسبات منطقی روشن کردن سگمنتها را مدیریت کرده و بار جریانی را از روی پردازنده اصلی برمیدارد.
استفاده از سون سگمنت بسیار مقرون به صرفه است و میتوان با هزینه بسیار کمی آن را تهیه کرد. از سون سگمنت با توجه به کارایی بالایی که دارد در بخشهای مختلفی استفاده میکنند که ماکروفر، ساعت دیجیتال، اجاق گاز برقی بخش کوچکی از آن است. شما میتوانید برای خرید سون سگمنت و سایر قطعات الکترونیکی که برای ساخت پروژههای الکترونیکی به آن نیاز است از فروشگاه جم ترونیک دیدن کنید.
در کاتد مشترک، پایه مشترک منفی (GND) است و سگمنتها با ولتاژ ۵ ولت (HIGH) روشن میشوند، اما در آند مشترک پایه به مثبت (VCC) وصل شده و با سطح صفر (LOW) فعال میگردند.
آیسیهای 74HC595 (شیفت رجیستر) و درایور MAX7219 یا ماژول TM1637 بهترین گزینهها هستند و سیمهای ارتباطی را به ۲ یا ۳ پین کاهش میدهند.
سگمنتها دیودهای نورانی (LED) هستند و بدون مقاومت محدودکننده، عبور جریان بالا موجب سوختن سگمنتها یا آسیب به پینهای آردوینو میشود.
اگر تاخیر زمانی (Delay) سوئیچ بین ارقام بیش از حد طولانی باشد (کمتر از ۵۰ فریم بر ثانیه)، خطای دید شکل نگرفته و چشم متوجه خاموش و روشن شدن ارقام میشود.

نویز برق یکی از مشکلات رایج در مدارهای الکترونیکی است که میتواند به شکل صدای اضافی در سیستمهای صوتی، اختلال در عملکرد سنسورها، نوسان سیگنال، خطا در تجهیزات دیجیتال یا حتی عملکرد نامنظم یک…

باتریهای قابل شارژ لیتیومی امروزه در بسیاری از وسایل الکترونیکی، از گوشی و لپتاپ گرفته تا پهپاد، اسپیکر، تجهیزات قابل حمل و پروژههای الکترونیکی استفاده میشوند. در میان مدلهای مختلف، باتری لیتیوم یونی و…
ادامه مطلب
هوشمند شدن خانه دیگر فقط به سیستمهای گرانقیمت و پیچیده محدود نمیشود. امروزه با استفاده از ماژولهای الکترونیکی میتوان بسیاری از تجهیزات معمولی مانند چراغها، پنکه، سیستمهای تهویه، پرده برقی و حتی برخی لوازم…
ادامه مطلب
گرافیت یکی از شکلهای کربن است که به دلیل ویژگیهایی مانند رسانایی الکتریکی، مقاومت مناسب در برابر حرارت و ساختار لایهای، در صنایع مختلف کاربرد دارد. این ماده را میتوان در برخی قطعات الکترونیکی،…
ادامه مطلب
دیدگاه کاربران
تا کنون دیدگاهی برای این نوشته ثبت نشده است.