شمارندهها در الکترونیک دیجیتال به منظور شمارش استفاده میشوند و میتوانند رویداد خاصی را که در مدار اتفاق می افتد بشمارند. برای مثال، در شمارنده افزایشی (UP)، شمارنده برای هر لبه بالارونده کلاک، شمارش را افزایش میدهد.
اگر شما این مطلب از آسونیک را می خوانید به احتمال زیاد می دانید که شمارنده دیجیتال چیست و چه کاربرد هایی دارد و می خواهید با نحوه ساخت یک شمارنده دیجیتال آشنا شوید. پس تا انتهای این مطلب با ما باشید.
شمارندههای دیجیتال یک مدار منطقی متوالی است که دارای یک سیگنال ورودی ساعت و گروهی از سیگنال های خروجی است که یک مقدار شمارش عدد صحیح را نشان میدهد. بر روی هر لبه ساعت واجد شرایط، مدار شمارش را افزایش میدهد (یا کاهش می دهد).
نمایشگرهای سون سگمنت راه مناسبی را برای نمایش اطلاعات عددی از صفر تا نه فراهم میکنند، زیرا اساساً شامل باری از دیودهای ساطع کننده نور هستند که در یک بسته نشانگر واحد به هم متصل شدهاند.
این نوع نمایشگرها بیشتر در بانکها، بیمارستانها، سوپر مارکتها برای نمایش اعداد رمز و شماره پیشخوان استفاده میشوند. در این مقاله ما سعی کردهایم شما را با شمارندههای دیجیتال و سون سگمنت آشنا کنیم و همچنین با استفاده از نمایشگر سون سگمنت با Arduino Uno یک شمارنده دیجیتال طراحی کنیم؛ پس با ما همراه باشید.
مطالب پیشنهادی
نحوه ایجاد شمارنده دیجیتال با استفاده از 7 سگمنت با آردوینو Uno
برای طراحی یک شمارنده دیجیتال ابتدا باید یک مدار ایجاد کنیم و قبل از آن به اجزای مورد نیاز برای ایجاد مدار نیاز داریم. شماتیک مدار طراحی شده برای شمارنده دیجیتال را با لیستی از اجزای مورد استفاده برای ایجاد شمارنده دیجیتال ارائه کردهایم:
- آردوینو اونو (uno)
- کابل هایساتصال
- بردبورد
- سون سگمنت (7-segment)
- 3 دکمه فشاری
سون سگمنت (7-segment) چیست؟
صفحه نمایش 7 سگمنت همانطور که از نام آن پیداست از هفت بخش تشکیل شده است، به این معنی که از هفت دیود ساطع کننده نور یا LED تشکیل شده است و از a تا g نامگذاری میشود؛ که با هم میتوانند برای تشکیل یک رقم کامل روی نمایشگر استفاده شوند.
اکثر نمایشگرهای سون سگمنت حاوی هشت LED داخلی هستند که هشتمین آن برای نقطه اعشار استفاده میشود (معمولاً در یکی از گوشههای پایین نمایشگر). بنابراین، اگر یک نمایشگر سون سگمنت از هفت LED (نادیده گرفتن نقطه اعشار) برای هر بخش، و یک LED دارای دو پایانه آند و کاتد باشد.
در حالی که یک بخش LED می تواند به صورت جداگانه در صورت نیاز روشن شود، یک پایانه از هر LED داخلی به یک نقطه یا گره مشترک متصل میشود. بنابراین به جای داشتن 14 پین اتصال برای نمایشگر، فقط هشت پین (7 + 1) خواهیم داشت، هر کدام برای هفت LED جداگانه به اضافه یک پایه مشترک، و این “پایه مشترک” است که نوع و نام آن را مشخص میکند.
هنگامی که پایانههای کاتد تمام LED های استفاده شده در نمایشگر به یکدیگر متصل میشوند، نمایشگر به عنوان نمایشگر کاتد مشترک (CC) نامیده میشود. به همین ترتیب، هنگامی که تمام پایانههای آند LED های استفاده شده در نمایشگر به یکدیگر متصل میشوند؛ که به عنوان نمایشگر آند مشترک (CA) نامیده میشود. بنابراین یک نمایشگر سون سگمنت میتواند از نوع نمایشگر کاتد مشترک (CC) یا آند مشترک (CA) باشد.
چگونه یک شمارنده دیجیتال بسازیم؟
برای ساخت یک شمارنده دیجیتال از سه دکمه فشاری، یکی برای افزایش، یکی برای کاهش و دیگری برای تنظیم مجدد سون سگمنت استفاده میشود. برای اتصال دکمههای فشاری با آردوینو اونو از پینهای 11، 10 و 9 استفاده کردهایم.
برای اتصال نمایشگر 7 سگمنت با آردوینو، از مقاومت 220 اهم برای هر پایه نمایشگر و با استفاده از پایههای 2 تا 8 به ترتیب حروف الفبا به آردوینو متصل میشوند.
کد آردوینو برای ایجاد شمارنده دیجیتال با استفاده از 7 سگمنت با آردوینو Uno
برای برنامه ریزی کد آردوینو برای ایجاد شمارنده دیجیتال با استفاده از 7 سگمنت در زیر آورده شده است:
#include “SevSeg.h”// تعریف کتابخانه برای سومن سگمنت
SevSegsevseg;// مقداردهی اولیه متغیر برای سون سگمنت
int state1;/* متغیر برای ذخیره وضعیت دکمه افزایش */
int state2;/* متغیر برای ذخیره وضعیت دکمه کاهش */
int state3;/* متغیر برای ذخیره وضعیت دکمه RESET */
int count=0;/* متغیر برای ذخیره مقدار شمارنده */
#define button1 11/* اختصاص پین آردوینو برای دکمه افزایش */
#define button2 10/* اختصاص پین آردوینو برای دکمه کاهش */
#define button3 9/* اختصاص پین آردوینو برای دکمه RESET */
void setup()
{
/* تخصیص حالت های پین به دکمه های فشاری */
pinMode(button1,INPUT_PULLUP);
pinMode(button2,INPUT_PULLUP);
pinMode(button3,INPUT_PULLUP);
/*تعریف پیکربندی 7-segment*/
byte sevenSegments = 1;/* برای تعریف شمارش اعداد یک رقمی در اینجا ما فقط از یک سون سگمنت استفاده می کنیم */
byte CommonPins[] = {12};/* تعریف پین های رایج برای سون سگمنت */
byte LEDsegmentPins[] = {2, 3, 4, 5, 6, 7, 8 };/* تخصیص پایه های آردوینو برای هر سگمنت از a تا g */
bool resistorsOnSegments = true; /* تخصیص نوع بولین به رجیسترهای سون سگمنت */
sevseg.begin(COMMON_ANODE, sevenSegments, CommonPins, LEDsegmentPins, resistorsOnSegments);/* پیکربندی اولیه سون سگمنت */
sevseg.setBrightness(80);// دادن روشنایی به سون سگمنت
}
void loop()
{
/* خواندن حالات دکمه های فشاری */
state1=digitalRead(button1);
state2=digitalRead(button2);
state3=digitalRead(button3);
if (state1== LOW){ /* اگر دکمه افزایش فشار داده شود */
count++; /* افزایش یک در ارزش */
sevseg.setNumber(count);/* نمایش مقدار شمارش */
sevseg.refreshDisplay();/* به روز کردن سون سگمنت */
delay(200);
}
else if(state1==HIGH){ /* اگر دکمه افزایش فشار داده نشود */
sevseg.setNumber(count);/* نمایش مقدار شمارش */
sevseg.refreshDisplay();/* به روز کردن سون سگمنت */
}
delay(200);
if (state2==LOW){/* اگر دکمه کاهش فشار داده شود */
count–;/* کاهش یک در ارزش */
sevseg.setNumber(count);/* نمایش مقدار شمارش */
sevseg.refreshDisplay(); /* به روز کردن سون سگمنت */
delay(200);
}
else if(state2==HIGH){ /* اگر دکمه کاهش فشار داده نشود */
sevseg.setNumber(count);/* نمایش مقدار شمارش */
sevseg.refreshDisplay();/* به روز کردن سون سگمنت */
}
if (state3==LOW){/* اگر دکمه RESET فشار داده نشود */
count=0;/* تعداد را به صفر به روز کنید */
sevseg.setNumber(count);/* نمایش مقدار شمارش */
sevseg.refreshDisplay(); /* به روز کردن سون سگمنت */
delay(200);
}
}
برای ایجاد یک شمارنده دیجیتال با استفاده از یک سون سگمنت، ابتدا باید میکروکنترلر را برنامه ریزی کنیم. برای این کار ابتدا کتابخانه نمایشگر و برخی از متغیرهای لازم برای دکمه های فشاری و ذخیره مقادیر شمارنده را تعریف کردهایم. در قسمت تنظیمات نمایشگر سون سگمنت از سه دکمه فشاری در پیشخوان دیجیتال استفاده کردهایم. برای پیکربندی دکمههای فشاری، از شرایط if else که برای افزایش، کاهش و تنظیم مجدد مقادیر شمارنده استفاده میشود.
به طور خلاصه عملکرد برنامه آردوینو میتوان گفت که شمارنده بر اساس سه دکمه فشاری کار میکند. با استفاده از دکمههای فشاری میتوانیم مقادیر شمارنده را تغییر دهیم.
شمارنده های دیجیتال در کجا استفاده می شود؟
شمارندهها در تبدیل آنالوگ به دیجیتال استفاده میشود. همچنین در کاربردهای تایمر به عنوان مثال ماشین لباسشویی که در آن زمان را تنظیم میکنیم؛ از این شمارندهها استفاده میشود. با کمک این شمارندهها میتوان یک مولد امواج مثلثی دیجیتال طراحی کرد.
سخن پایانی
در این نوشته به شما گفتیم که شمارنده های دیجیتال چه کاربرد هایی دارند و همچنین گفتیم که یک نمایشگر سون سگمنت چیست و چگونه می توانیم یک شمارنده دیجیتال با نمایشگر سون سگمنت بسازیم.
اگر شما هم تجربه ساخت شمارنده های دیجیتال را دارید و در الکترونیک تخصص دارید می توانید مطالب مفید خود را در بخش نظرات برای ما ارسال کنید.