سون سگمنتها (Seven Segment ) یکی از پرکاربردترین ، ارزانترین و پرمصرفترین نمایشگرها در دنیاست.از سون سگمنتها برای نشان دادن اعداد در ساعتهای دیجیتالی، چراغ راهنما، ماشین حساب، ترازوی دیجیتالی و …استفاده میشود. در ادامه آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید. هر سون سگمنت در حقیقت از چند LED در کنار هم به شکل زیر تشکیل شده است.
شناخت سون سگمنت
سون سگمنت (Seven Segment) یک نوع نمایشگر است که برای نمایش اعداد استفاده میشود. این نوع نمایشگر از هفت بخش جداگانه تشکیل شده است که هر بخش یک سگمنت به شکل عمودی یا افقی است. هر سگمنت میتواند روشن یا خاموش شود، و با ترکیب روشن یا خاموش بودن این سگمنتها، اعداد مختلف قابل نمایش هستند.نامگذاری سگمنتها از a تا g است، که هر سگمنت با یک حرف نامگذاری میشود. به عنوان مثال، سگمنت a بالایی را نشان میدهد، سگمنت b یک خط افقی در وسط را نشان میدهد و سگمنت g پایینی را نشان میدهد.با استفاده از نمایشگر سون سگمنت، میتوان اعداد از ۰ تا ۹ را نمایش داد. همچنین برخی از نمایشگرهای سون سگمنت قابلیت نمایش برخی از حروف الفبا را نیز دارند.سون سگمنتها در انواع مختلفی از جمله نمایشگرهای LED و LCD وجود دارند و در بسیاری از دستگاهها و بردهای الکترونیکی مورد استفاده قرار میگیرند، از جمله ساعتها، کالکتورها، ترمومترها دستگاههای دیجیتال دیگر.سون سگمنت همچنین میتواند در نمایشگرهای چند رقمی استفاده شود. در این حالت، هر رقم از اعداد ۰ تا ۹ به صورت جداگانه در یک سگمنت قرار میگیرد. این روش نمایشگرهای هفت رقمی را فراهم میکند که میتوان اعداد بزرگتر را نمایش داد.برای مثال، در یک نمایشگر سون سگمنت چهار رقمی، هر رقم در یک قسمت مجزا از نمایشگر قرار میگیرد. با روشن و خاموش کردن مجموعهای از سگمنتها، اعداد چهار رقمی را نمایش میدهد.نمایشگرهای سون سگمنت به دلیل سادگی و قابلیت استفادهی آنها در برنامههای مختلف، رایج و مورد استفاده گسترده قرار میگیرند. علاوه بر استفاده در دستگاههای الکترونیکی، آنها نیز در صنعت، تجارت و خانهها استفاده میشوند.
ساختار سون سگمنت
ساختار نمایشگر سون سگمنت (Seven Segment) بستگی به نوع نمایشگر (مانند LED یا LCD) دارد. اما در اغلب موارد، ساختار سون سگمنت شامل هفت بخش یا سگمنت است که هر بخش برای نمایش یک بخش از اعداد ۰ تا ۹ و برخی حروف الفبا به کار میرود.در ساختار سون سگمنت LED، هر سگمنت تشکیل شده است از یک یا چند LED کوچک. سگمنتها با توجه به شکل مورد نظر ساخته شدهاند. به عنوان مثال، سگمنت a که بالایی است، ممکن است شامل یک یا چند LED کوچک در شکل عمودی باشد. هر LED در هر سگمنت میتواند به صورت مستقل روشن یا خاموش شود.در ساختار سون سگمنت LCD (صفحه نمایش مایع کریستالی) نیز، هر سگمنت معمولاً شامل یک بخشی از صفحه نمایش مایع کریستالی است. این بخشها با ترکیب روشن یا خاموش بودن هر بخش، اعداد و حروف را نمایش میدهند.هرگاه نیاز به نمایشگر سون سگمنت چند رقمی باشد، بخشهای مختلف (سگمنتها) به طور جداگانه برای هر رقم در نظر گرفته میشوند. این سگمنتها معمولاً به صورت متوالی قرار داده میشوند تا تشکیل یک نمایشگر چند رقمی را بدهند.در هر صورت، ساختار نمایشگر سون سگمنت مبتنی بر استفاده از سگمنتهای مجزا است که با ترکیب روشن یا خاموش کردن آنها، اعداد و حروف مختلف را نمایش میدهند.
نمایشگر سون سگمنت آند مشترک
نمایشگر سون سگمنت آند مشترک (Common Anode) یک نوع نمایشگر است که در آن، آنود (Anode) سگمنتها مشترک است. در این نوع نمایشگر، هر سگمنت به طور مستقل به کاتد (Cathode) وصل شده و آنود سگمنتها به صورت مشترکی در نمایشگر استفاده میشود.در نمایشگر آند مشترک، هنگامی که برای روشن کردن یک سگمنت خاص نیاز است، آنود مشترک به ولتاژ بالا (مثبت) متصل شده و کاتد آن سگمنت به گراند (صفر ولت) متصل میشود. به عبارت دیگر، با برقراری جریان بین آنود مشترک و کاتد سگمنت مورد نظر، آن سگمنت روشن میشود.سایر سگمنتها که در آنها نیاز به روشن شدن است، همچنین به طور مستقل به کاتد متصل میشوند و با برقراری جریان بین آنود مشترک و کاتد هر سگمنت، سگمنت مورد نظر روشن میشود. این روش به صورت ترتیبی برای روشن کردن سگمنتها به کار میرود و با سرعت بسیار بالا به ترتیب اعداد یا حروف را نمایش میدهد.نمایشگر سون سگمنت آند مشترک در بسیاری از بردها و دستگاههای الکترونیکی استفاده میشود، به خصوص در نمایشگرهای چند رقمی. در این حالت، هر رقم به طور جداگانه به سگمنتهای مختلف وصل شده و آنود مشترک برای تمام رقمها مشترک است. با ترتیبی که سگمنتها روشن میشوند و تغییر جریان بین آنود مشترک و کاتد سگمنتها، اعداد مختلف با اعداد مختلف به ترتیب روی نمایشگر سون سگمنت آند مشترک نمایش داده میشوند. برای مثال، برای نمایش عدد ۱۲۳۴ در یک نمایشگر سون سگمنت چهار رقمی آند مشترک، هر رقم به صورت جداگانه بر روی سگمنتها قرار میگیرد.
فرض کنید که رقم اول، رقم ده ها (۱) است. در این صورت، سگمنتهای مورد نیاز برای نمایش عدد ۱ روشن میشوند و سایر سگمنتها خاموش میمانند. سپس، رقم دوم (۲) به همین شکل نمایش داده میشود و سگمنتهای مربوطه روشن میشوند. این روند برای رقم سوم (۳) و رقم چهارم (۴) نیز ادامه دارد.به طور خلاصه، با تغییر جریان بین آنود مشترک و کاتد سگمنتها در هر لحظه، رقم مورد نظر روی نمایشگر سون سگمنت آند مشترک نمایش داده میشود. این فرآیند به سرعت بسیار بالا تکرار میشود تا تمام اعداد یا حروف مورد نظر را به ترتیب نمایش دهد.نمایشگر سون سگمنت آند مشترک از آن دلیل که سگمنتها را به صورت مستقل کنترل میکند و آنودها را مشترک دارد، به نسبت سادهتر در کنترل الکترونیکی است و معمولاً برای نمایشگرهای چند رقمی که نیاز به کنترل متوالی رقمها دارند، استفاده میشود.
نمایشگر سون سگمنت کاتد مشترک
نمایشگر سون سگمنت کاتد مشترک (Common Cathode) نوعی نمایشگر است که در آن کاتد (Cathode) سگمنتها مشترک است. در این نوع نمایشگر، هر سگمنت به صورت مستقل به آنود (Anode) وصل شده و کاتد سگمنتها به صورت مشترکی در نمایشگر استفاده میشود.در نمایشگر کاتد مشترک، هنگامی که برای روشن کردن یک سگمنت خاص نیاز است، کاتد مشترک به گراند (صفر ولت) متصل شده و آنود آن سگمنت به ولتاژ بالا (مثبت) متصل میشود. به عبارت دیگر، با برقراری جریان بین کاتد مشترک و آنود سگمنت مورد نظر، آن سگمنت روشن میشود.سایر سگمنتها که نیاز به روشن شدن دارند، نیز به طور مستقل به آنود متصل میشوند و با برقراری جریان بین کاتد مشترک و آنود هر سگمنت، سگمنت مورد نظر روشن میشود. این روش به صورت ترتیبی برای روشن کردن سگمنتها به کار میرود و با سرعت بسیار بالا به ترتیب اعداد یا حروف را نمایش میدهد.نمایشگر سون سگمنت کاتد مشترک نیز در بسیاری از بردها و دستگاههای الکترونیکی استفاده میشود، به خصوص در نمایشگرهای چند رقمی. در این حالت، هر رقم به طور جداگانه به سگمنتهای مختلف وصل شده و کاتد مشترک برای تمام رقمها مشترک است. با ترتیبی که سگمنتها روشن میشوند و تغییر جریان بین کاتد مشترک و آنود سگمنتها، اعداد مختلف به ترتیب نمایش د
نمایشگر سون سگمنت کاتد مشترک برای نمایش اعداد و حروف مختلف، هر رقم را به طور جداگانه نمایش میدهد. به عنوان مثال، برای نمایش عدد ۱۲۳۴ در یک نمایشگر سون سگمنت چهار رقمی کاتد مشترک، هر رقم به صورت جداگانه بر روی سگمنتها قرار میگیرد.فرض کنید که رقم اول، رقم ده ها (۱) است. در این صورت، سگمنتهای مورد نیاز برای نمایش عدد ۱ روشن میشوند و سایر سگمنتها خاموش میمانند. سپس، رقم دوم (۲) به همین شکل نمایش داده میشود و سگمنتهای مربوطه روشن میشوند. این روند برای رقم سوم (۳) و رقم چهارم (۴) نیز ادامه دارد.با تغییر جریان بین کاتد مشترک و آنود سگمنتها در هر لحظه، رقم مورد نظر روی نمایشگر سون سگمنت کاتد مشترک نمایش داده میشود. این فرآیند به سرعت بسیار بالا تکرار میشود تا تمام اعداد یا حروف مورد نظر را به ترتیب نمایش دهد.نمایشگر سون سگمنت کاتد مشترک نسبت به نمایشگر آند مشترک کمی پیچیدهتر در کنترل الکترونیکی است. اما با استفاده از آی سی (IC) های کنترلر مناسب و توانایی برنامهریزی صحیح، میتوان به راحتی از این نمایشگر استفاده کرد و اعداد و حروف مورد نظر را نمایش داد.
مالتی پلکس (Multiplexing) و ارتباط با سون سگمنت
مالتی پلکس (Multiplexing) یک تکنیک در ارتباطات الکترونیکی است که در آن از یک کانال یا منبع اطلاعات برای انتقال دادههای متعدد استفاده میشود. در این تکنیک، اطلاعات مختلف در زمان متفاوتی ارسال میشوند و در نقاط مقصد جداگانه بازیابی میشوند.اصل مالتی پلکس این است که از منابع مختلفی با سرعت کمتر استفاده شود و این دادهها در زمان متفاوتی در کانال ارسال شوند. به این ترتیب، از منابع کمتر استفاده میشود و منابع بیشتری در یک کانال ارتباطی قابل استفاده خواهند بود.
در مالتی پلکس، دو نوع رایج تکنیک وجود دارد: مالتی پلکس زمانی (Time Division Multiplexing) و مالتی پلکس فرکانسی (Frequency Division Multiplexing).
- در مالتی پلکس زمانی (TDM)، دادهها به طور متوالی و در بازههای زمانی کوتاه در کانال ارسال میشوند. هر منبع داده به صورت متوالی در زمانهای مشخصی به کانال وصل میشود و دادهها در این زمانهای مشخص منتقل میشوند. در مقصد، دادهها مجدداً به ترتیب دریافت میشوند و از هر منبع جداگانه بازیابی میشوند.
- در مالتی پلکس فرکانسی (FDM)، فرکانسهای مختلف برای منابع مختلف استفاده میشود. هر منبع داده یک بازهٔ فرکانسی مشخص را در کانال ارتباطی تخصیص میدهد و دادهها بر روی این بازههای فرکانسی منتقل میشوند. در مقصد، دادهها از بازههای فرکانسی مشخص استخراج و جداگانه بازیابی میشوند. این روش از جداسازی فرکانسهای مختلف برای جداکردن دادهها استفاده میکند.
در هر دو تکنیک مالتی پلکس زمانی و مالتی پلکس فرکانسی، ارتباط بین فرستنده و گیرنده به صورت همزمان و جداگانه برای هر منبع داده برقرار میشود. این به معنای این است که در یک لحظه زمانی، تنها یک منبع داده ارتباط برقرار میکند و سایر منابع در انتظار نوبت خود قرار میگیرند.مالتی پلکس به طور گسترده در سیستمهای ارتباطی استفاده میشود، به خصوص در شبکههای تلفنی و شبکههای ارتباطی داده. با استفاده از مالتی پلکس، میتوان چندین کانال ارتباطی را در یک منبع فیزیکی به کار برد و از منابع محدود بهرهبرداری کرد.به طور مثال، در شبکههای تلفنی، از مالتی پلکس زمانی استفاده میشود. چندین مکالمه به صورت همزمان در یک خط ارتباطی قرار میگیرند و با استفاده از تقسیم زمان، صداهای مختلف در زمانهای مشخصی منتقل میشوند و در مقصد جداگانه بازیابی میشوند.مالتی پلکس یک روش کارآمد برای بهرهبرداری از منابع موجود و ارتقای کارایی شبکههای ارتباطی است. با استفاده از این تکنیک، امکان انتقال همزمان دادههای متعدد در یک کانال ارتباطی فراهم میشود و منجر به افزایش ظرفیت و سرعت ارتمالتی پلکس نمایشگرهای سون سگمنت همچون سون سگمنت کاتد مشترک و سون سگمنت آند مشترک را نیز تحت تأثیر قرار میدهد.در نمایشگرهای سون سگمنت، هر سگمنت به صورت جداگانه قابل کنترل است و نیاز به جریان مستقل برای روشن شدن دارد. اما با استفاده از تکنیک مالتی پلکس، میتوان چندین سگمنت را در زمانهای متفاوت به ترتیب روشن کرد و اعداد و حروف مختلف را به صورت متوالی نمایش داد.به عنوان مثال، در یک نمایشگر سون سگمنت کاتد مشترک، هر رقم اعداد در یک زمان مشخص روشن میشود و با تغییر رقم، به سگمنتهای دیگر تبدیل میشود. این ترتیب روشنایی سگمنتها به سرعت بالا انجام میشود، به طوری که چشم انسان احساس میکند که همه سگمنتها همزمان روشن هستند و اعداد به ترتیب نمایش داده میشوند.با استفاده از مالتی پلکس، تعداد بیشتری از سگمنتها در یک نمایشگر سون سگمنت میتوانند استفاده شوند، زیرا هر سگمنت به ترتیب و در زمان مشخصی نمایش داده میشود. این روش به نمایشگر اجازه میدهد تا اعداد و حروف بیشتری را نمایش دهد و به طور کلی عملکرد و کارایی نمایشگر را بهبود بخشد.
پایه های سون سگمنت
سون سگمنت دارای هفت پایه است که به طور معمول با حروف A تا G نمایش داده میشوند. پایههای سون سگمنت را به شکل زیر مشخص میکنم:
A
—
F | | B
—
E | | C
—
D
در این نمایش، هر پایه با یک حرف نمایش داده میشود. پایه A معمولاً بالاترین سگمنت در نمایشگر سون سگمنت است و پایهها B تا G سگمنتهای دیگر را نمایش میدهند. همچنین، بین پایههای مختلف شمارهگذاری شده است و از اعداد ۱ تا ۷ برای شمارهگذاری استفاده میشود. این شمارهگذاری معمولاً برای استفاده در دیاگرامها و طرحهای مدار استفاده میشود.
به طور خلاصه، پایههای سون سگمنت به ترتیب عبارتند از:
پایه A: سگمنت بالایی
پایه B: سگمنت راست بالا
پایه C: سگمنت راست
پایه D: سگمنت راست پایین
پایه E: سگمنت چپ پایین
پایه F: سگمنت چپ
پایه G: سگمنت وسط
علاوه بر پایههای A تا G که سگمنتهای خود نمایشگر سون سگمنت را تشکیل میدهند، نیاز به پایههای دیگری نیز وجود دارد. این پایهها برای ارتباط با سیستم کنترلی استفاده میشوند. پایههای اضافی عبارتند از:
- پایه Common Anode (آند مشترک): این پایه به عنوان پایه مشترک برای تمام سگمنتها عمل میکند. وقتی به این پایه جریان بدهید، سگمنتها که به پایههای مختلف A تا G متصل هستند، روشن میشوند.
- پایه Common Cathode (کاتد مشترک): در این حالت، پایه مشترک به عنوان پایه منفی برای تمام سگمنتها عمل میکند. وقتی به این پایه جریان بدهید، سگمنتها که به پایههای مختلف A تا G متصل هستند، خاموش میشوند.
بسته به نوع سون سگمنت مورد استفاده (آند مشترک یا کاتد مشترک)، از یکی از پایههای مشترک برای کنترل روشنایی سگمنتها استفاده میشود. این پایهها نقش بسیار مهمی در کارکرد و کنترل نمایشگر سون سگمنت ایفا میکنند.
-
انواع سون سگمنت Segment
سون سگمنت (Seven Segment) در اصل به نوعی نمایشگر دیجیتال اشاره میکند که از سگمنتهای مجزا برای نمایش اعداد و برخی حروف استفاده میکند.
- سگمنت آند مشترک (Common Anode): در این نوع سون سگمنت، سگمنتها به پایههای آند A تا G وصل میشوند، و یک پایه مشترک به عنوان مثبت (آند) استفاده میشود.
- سگمنت کاتد مشترک (Common Cathode): در این نوع سون سگمنت، سگمنتها به پایههای آند A تا G وصل میشوند، و یک پایه مشترک به عنوان منفی (کاتد) استفاده میشود.
- سگمنت مستقل (Independent Segment): در این نوع سون سگمنت، هر سگمنت دارای پایههای جداگانهای است و هیچ پایه مشترکی وجود ندارد. این نوع سگمنتها برای کاربردهای خاصی مانند نمایش حروف فارسی و علائم خاص استفاده میشوند.
به علاوه، در برخی نمایشگرهای سون سگمنت پیشرفته، سگمنتهایی با اشکال و رنگهای مختلفی استفاده میشوند که به عنوان سگمنتهای دوگانه (Dual Segment) و سگمنتهای چندگانه (Multi-Segment) شناخته میشوند.سگمنتهای یک نمایشگر سون سگمنت به صورت زیر ار حروف A تا G به صورت ساعتگرد نامگذاری میشوند.
-
سون سگمنت کاتد مشترک
در این نوع سون سگمنتها کاتدهای تمام LED های موجود در سون سگمنت به یکدیگر متصل میباشند.به این معنی که برای روشن کردن هر کدام از سگمنتهای سون سگمنت کافیاست پایهی متناظر آن را یک منطقی کنیم و پین مشترک سون سگمنت را به GND ( صفر منطقی ) متصل کنیم. برای مثال برای نشان دادن عدد ۱ بر روی اینگونه سونسگمنتها کافی است پین سگمنت متناظر B و C را یک منطقی کنیم و پین مشترک سونسگمنت را به زمین متصل کنیم.
-
سون سگمنت آند مشترک
در این نوع سونسگمنتها تمام LEDهای موجود در سون سگمنت به یکدیگرمتصل میباشند.به این معنی که برای روشن کردن هر کدام از سگمنتهای سونسگمنت کافی است پایهی متناظر آن را صفر منطقی کنیم و پین مشترک سون سگمنت را به VCC ( یک منطقی) متصل کنیم. برای مثال برای نشان دادن عدد ۱ بر روی اینگونه سون سگمنتها کافی است پین سگمنت متناظر B , C را صفر منطقی کنیم و پین مشترک سون سگمنت را به VCC متصل کنیم
جدول نمایش اعداد روی سون سگمنت
Decimal Digit | Individual Segments Illuminated | ||||||
a | b | c | d | e | f | g | |
۰ | × | × | × | × | × | × | |
۱ | × | × | |||||
۲ | × | × | × | × | × | ||
۳ | × | × | × | × | × | ||
۴ | × | × | × | × | |||
۵ | × | × | × | × | × | ||
۶ | × | × | × | × | × | × | |
۷ | × | × | × | ||||
۸ | × | × | × | × | × | × | × |
۹ | × | × | × | × | × |
نمایش اعداد روی سگمنت چهارتایی
همانطور که مطالب فوق ذکر شد هر سون سگمنت از LED هایی متصل به هم تشکیل شده است.در سون سگمنتهای تکی مانند شکل زیر از ۸ عدد LED استفاده شده است بری راه اندازی آن به ۸ پین از آردویتو نیاز داریم.
اکنون فرض کنید نیاز به راهاندازی یک عدد سون سگمنت چهارتایی داریم ، اگر بخواهیم مطابق روش فوق پیش برویم باید از ۳۲ پین آردوینو(۸*۴=۳۲) استفاده کنیم که این عمل کاملا غیر عاقلانه میباشد پس باید از روشی به نام مالتی پلکسینگ به همراه خطای دید انسان استفاده نمود. در این روش تمام سگمنتهای مشابه به هم دیگر متصل میباشند یعنی تمام a ها به یکدیگر ، تمام bها به یکدیگر و….. به هم دیگر متصل میباشند و پین مشترکه هر کدام نیز به هم دیگر متصل هستتند.
البته در ماژولهای سون سگمنت ( همانند تصویر زیر) نیازی به اتصال سگمنتهای مشابه به یکدیگر به صورت دستی نمیباشد و تمام سگمنتهای مشابه در داخل ماژول به یکدیگر متصل هستند.
سخت افزار مورد نیاز
راه اندازی سون سگمنت با آردوینو
سون سگمنتها یکی از ماژولهای محبوب در پروژههای آردوینو هستند. کاربردهای متعددی برای سون سگمنت در آردوینو وجود دارد. سون سگمنتها به طور عمده برای نمایش اعداد در پروژههای آردوینو استفاده میشوند. با استفاده از سون سگمنت و کنترل آن در آردوینو، میتوانید اعداد را به صورت دیجیتال نمایش دهید، مانند نمایش ساعت و تاریخ، دما، فشار و غیره.سون سگمنتها همچنین قابل استفاده برای نمایش حروف الفبا یا حروف فارسی هستند. با تنظیم مناسب سگمنتها و کنترل آنها در آردوینو، میتوانید کلمات و عبارات مختلف را به صورت دیجیتال نمایش دهید. با استفاده از سون سگمنتها و کنترل آنها در آردوینو، میتوانید الگوها، آرمها و نمادهای مختلف را نمایش دهید. این کاربرد میتواند در پروژههایی که نیاز به نمایش آرم یا نماد خاصی دارند، مفید باشد.با استفاده از سون سگمنتها و آردوینو، میتوانید اعلانها و هشدارهای مختلف را به صورت دیجیتال نمایش دهید. این میتواند در سیستمهای هوشمند، ساعتهای زنگدار، سیستمهای اعلان و غیره استفاده شود.
برای راهاندازی سون سگمنت با آردوینو، نیازمند چند قطعه مورد نیاز هستید:
- آردوینو: برد آردوینو (مانند Arduino Uno) که به عنوان میکروکنترلر اصلی استفاده میشود.
- سون سگمنت: یک سون سگمنت با پایههای آند یا کاتد مشترک (بسته به نوع سون سگمنتی که دارید).
- مقاومتها: برای محافظت از سون سگمنت و محافظت در برابر جریان بیش از حد.
- متغیرها (اختیاری): میتوانید از متغیرها (potentiometer) استفاده کنید تا روشنایی سون سگمنت را تنظیم کنید.
- بردهای توصیه شده (اختیاری): برخی از بردهای الکترونیکی آماده وجود دارند که مجهز به سون سگمنت و مدارهای کنترلی هستند.
حالت کلی برای راهاندازی سون سگمنت با آردوینو به صورت زیر است:
- متصل کردن سون سگمنت به آردوینو: اگر سون سگمنت آند مشترک دارید، پایههای A تا G را به پایههای آند متناظر در آردوینو متصل کنید. اگر سون سگمنت کاتد مشترک دارید، پایههای A تا G را به پایههای کاتد متناظر در آردوینو متصل کنید.
- متصل کردن مقاومتها: برای محافظت از سون سگمنت، میتوانید مقاومتها را در سری با هر یک از پایههای آن متصل کنید. مقاومتهای ۲۲۰ اهم مناسب هستند.
- متصل کردن متغیرها (اختیاری): اگر میخواهید روشنایی سون سگمنت را تنظیم ک
- متصل کردن متغیرها (اختیاری): اگر میخواهید روشنایی سون سگمنت را تنظیم کنید، میتوانید از یک متغیر (potentiometer) استفاده کنید. برای این منظور، یک پایه از متغیر را به پایه VCC آردوینو، یک پایه را به پایه GND آردوینو و پایه میانی (متغیر) را به پایه روشنایی سون سگمنت متصل کنید. سپس با چرخش متغیر، میتوانید روشنایی سون سگمنت را تنظیم کنید.
- کد برنامهنویسی: با استفاده از کد برنامهنویسی آردوینو، میتوانید سون سگمنت را کنترل کنید و اعداد، حروف و الگوهای مورد نظر را نمایش دهید. برای این منظور، باید کتابخانههای مربوطه را در برنامه آردوینو خود استفاده کنید. بسته به نوع سون سگمنت و اتصالاتی که انجام دادهاید (آند مشترک یا کاتد مشترک)، باید کد را مطابق با آن تنظیم کنید.آپلود و اجرا: پس از نوشتن کد، آن را به برد آردوینو خود آپلود کنید. سپس میتوانید برنامه را اجرا کرده و نتیجه را روی سون سگمنت مشاهده کنید.
آرایش پینهای سون سگمنت ۴ تایی آند مشترک به صورت زیر است.
در این آموزش به جای استفاده از کدهای پیچیده به منظور راهاندازی سون سگمنت از کتابخانه مخصوص آن استفاده میکنیم که لینک دانلود آن در زیر قرار داده شده است ، پس از دانلود کتابخانه آن را به نرمافزار آردوینو اضافه کنید. دانلود کتابخانه سون سگمنت اگر هم شیوه نصب کتابخانه را نمیدانید، به آموزش نصب کتابخانه در آردوینو مراجعه کنید. در ابتدا کتابخانه سون سگمنت را باید طبق دستور زیر به برنامه فراخوانی کنیم. کتابخانه SevSeg.h یک کتابخانه معروف برای کنترل سون سگمنت در پلتفرم آردوینو است. این کتابخانه حاوی چند کلاس است که برای کنترل سون سگمنت به کار میروند. در زیر کلاسهای اصلی موجود در کتابخانه SevSeg.h را برای شما ذکر میکنم:
- SevSeg: این کلاس اصلی است که برای کنترل سون سگمنت استفاده میشود. این کلاس توابعی را برای تنظیم ارقام، حروف و نمادها روی سون سگمنت فراهم میکند. همچنین، توابعی برای تنظیم روشنایی، مقاومتها و دیگر تنظیمات نیز وجود دارد.
- SevSegShift: این کلاس برای استفاده با رجیسترهای شیفت میباشد. این کلاس به همراه SevSeg استفاده میشود تا بتواند سون سگمنت را به وسیله رجیسترهای شیفت کنترل کند.
- SevSegSPI: این کلاس برای استفاده با رابط SPI (Serial Peripheral Interface) استفاده میشود. این کلاس نیز به همراه SevSeg استفاده میشود تا بتواند سون سگمنت را از طریق رابط SPI کنترل کند.
- SevSegI2C: این کلاس برای استفاده با رابط I2C (Inter-Integrated Circuit) استفاده میشود. این کلاس نیز به همراه SevSeg استفاده میشود تا بتواند سون سگمنت را از طریق رابط I2C کنترل کند.
این کلاسها و توابع مربوطه را میتوانید در کتابخانه SevSeg.h پیدا کنید. با استفاده از این کتابخانه و کلاسهای آن، میتوانید به راحتی سون سگمنت را در پروژههای آردوینو کنترل کنید.
#include <SevSeg.h>
سپس باید از کلاس SevSeg یک آبجکت بسازیم:
SevSeg sevseg;
سپس نوبت به تعریف تعداد بلاکها ، پینهای مشترک و پینهای سگمنتها میباشد:
byte numDigits = 4; //تعریف تعداد بلاک ها byte digitPins[] = { 9, 10, 11, 12 };// تعریف پین های مشترک byte segmentPins[] = { 2, 3, 4, 5, 6, 7, 8, 13 };// تعریف پین های متصل به سگمنت
اتصالات سون سگمنت به آردوینو
روش اتصال سون سگمنت به آردوینو به دو شکل آند مشترک و کاتد مشترک متفاوت است.
- سون سگمنت آند مشترک:
اتصال پایهها:
پایههای A تا G سون سگمنت را به پایههای آند (Anode) متناظر در آردوینو متصل کنید. برای مثال، پایه A سون سگمنت را به پایه ۲ آردوینو، پایه B را به پایه ۳ و الی آخر.
پایه کاتد (Common Cathode) سون سگمنت را به پایه GND آردوینو متصل کنید.
اتصال مقاومتها:
برای محافظت از سون سگمنت، مقاومتهای حدوداً ۲۲۰ اهم را به صورت سری با هر یک از پایههای سون سگمنت متصل کنید.
تغذیه:
متصل کردن پایه VCC سون سگمنت به پایه ۵V آردوینو.
متصل کردن پایه GND سون سگمنت به پایه GND آردوینو.
- سون سگمنت کاتد مشترک:
اتصال پایهها:
پایههای A تا G سون سگمنت را به پایههای کاتد (Cathode) متناظر در آردوینو متصل کنید. برای مثال، پایه A سون سگمنت را به پایه ۲ آردوینو، پایه B را به پایه ۳ و الی آخر.
پایه آند (Common Anode) سون سگمنت را به پایه ۵V آردوینو متصل کنید.
اتصال مقاومتها:
برای محافظت از سون سگمنت، مقاومتهای حدوداً ۲۲۰ اهم را به صورت سری با هر یک از پایههای سون سگمنت متصل کنید.
تغذیه:
سون سگمنت به پایه GND آردوینو.متصل کردن پایه VCC سون سگمنت به منبع تغذیه خارجی، مانند ۵ ولت، اگر آردوینو شما قادر به تأمین آن نیست.
متصل کردن مقاومتها (اختیاری):
در برخی مواقع، میتوانید مقاومتهای حدوداً ۲۲۰ اهم را به صورت سری با هر یک از پایههای سون سگمنت و به طور مشترک بین پایههای آن و آردوینو متصل کنید. این مقاومتها به عنوان محافظ برای سون سگمنت عمل میکنند و از خرابی آن در نتیجه افزایش جریان جلوگیری میکنند.
با اتصال درست سون سگمنت به آردوینو، میتوانید با استفاده از کد برنامهنویسی مربوطه، اعداد، حروف و الگوهای مورد نظر را روی سون سگمنت نمایش دهید و کنترل کنید.
در این پروژه از عملیات دیبانسینگ کلید استفاده شده است که برای اطلاعات بیشتر میتوانید به لینک زیر مراجعه نمایید: آموزش دیبانسینگ در آردوینو
کدهای پروژه سون سگمنت با آردوینو
کدهای زیر را در نرم افزار آردوینو وارد کنید. اگر روش این کار را نمیدانید، به پست آموزش کار با نرم افزار آردوینو IDE مراجعه کنید.
#include <Bounce2.h> #include <SevSeg.h> Bounce debouncer1=Bounce(); Bounce debouncer2=Bounce(); SevSeg sevseg; //Instantiate a seven segment controller object float number=0.0; void setup() { Serial.begin(9600); byte numDigits = 4; byte digitPins[] = {9,10,11,12}; byte segmentPins[] = {2,3,4,5,6,7,8,13}; sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins); sevseg.setBrightness(100); pinMode (A0,INPUT_PULLUP); debouncer1.attach(A0); debouncer1.interval(50); pinMode(A1,INPUT_PULLUP); debouncer2.attach(A1); debouncer2.interval(50); } void loop() { debouncer1.update(); debouncer2.update(); if(debouncer1.fell()) { number+=0.1; } if(debouncer2.fell()) { number-=0.1; } sevseg.setNumber(number,1); sevseg.refreshDisplay(); }
معرفی چند تابع سون سگمنت برای آردوینو
sevseg.begin (Type, NumberOFBlock, CommenPin, segmentPins)
توسط این تابع کانفیگ سون سگمنت انجام میشود. آرگمان اول نوع سون سگمنت را مشخص میکند ، اگر آند مشترک باشد به جای آرگمان Type از COMMON_ANODE ، اگر کاتد مشترک باشد از COMMON_CATHODE استفاده میشود ، هچنین میتواند دارای مقادیر زیر باشد:
N_TRANSISTORS ، P_TRANSISTORS ، NP_COMMMON_CATHODE و NP_COMMMON_ANODE
به جای آرگمان دوم تعداد بلاکهای سون سگمنتمان را وارد میکنیم. به چای CommenPin ، آرایهای از پینهای مشترک که در ابتداری برنامه تعریف کردیم قرار میدهیم.به جای آرگمان چهارم نیز آرایهای از سگمنتهایی که در ابتدای برنامه تعریف کردیم قرار میدهیم.
sevseg.setNumber (your number, DP location)
توسط این تابع میتوان عدد دلخواه خود را برای نمایش بر روی سون سگمنت مشخص کنیم.آرگمان اول ، عدد مورد نظر ما میباشد و آرگمان دوم تعداد رقم اعشاری است که به عددمان نسبت میدهیم .برای مثال برای نمایش عدد ۱۵٫۷۵ باید مطابق قطعه کد زیر عمل کنیم:
sevseg.setNumber(1575,2);
همچنین اگر بخواهیم عددی را بدون ممیز نمایش دهیم باید به جای آرگمان دوم عدد ۰ نوشته شود.
sevseg.refreshDisplay ()
بعد از مشخص کردن عدد مورد نظر توسط تابع sevseg.setNumber ، به وسیله تابع فوق ، عدد مورد نظر را بر روی سون سگمنت به نمایش در میآوریم. در قسمت زیر با استفاده از توابع فوق ، یک عدد را به صورت اعشاری بر روی سون سگمنت نمایش میدهیم به طوری که با فشردن کلید متصل به پینA0 ، به عدد ۰٫۱ اشافه میشود و در صورت فشرده شدن کلید متصل به پین A1 ، از عدد ۰٫۱ کم میشود.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
با سلام خدمت شما و خسته نباشید خدمتتون شما که اینقدر کارتون خوبه و زحمت میکشید این مطالب رو تهیه میکنید حیف نیست تو نوشتن و قرار دادن عکسهای مطالب دقت کنید و متناسب باقالبتون نوشته ها رو تنظیم کنید. قالب خیلی بهم ریخته هست و اگه بتونید درستش کنید عالی میشه من اول فکر کنم مشکل از لپ تاپه و با دو سیستم دیگه هم تست گرفتم بازم مشکل داره یا عکسا خیلی بزگن یا متن از صفحه میزنه بیرون مثلا عکس اول این مطلب هم بزرگه هم ۱۱۶ کیلو بایت هست.قصدم فقط نقد سازنده هست و این کار ها هیچ ارزش از کار و وقتتی که برای ما میزارید کم نمیکنه. من خودم هم سایت دارم می دونم چقدر تهیه مطلب سخته باید روش وقت گذاشت اگه نظر رو منتشر نکردید مهم نیست مهم برام این هست که بخونید نظر منو. با آرزوی موفقیت در تمام مراحل زندگیتون. و پیشا پیش سال نو شما مبارک باشه.
سلام
خیلی ممنون از نظرتون
سعی میکنیم هر چه زود تر این مشکلات را رفع کنیم
سپاس فراوان
نه. تو اپتاپ من همچین مشکلی نداره
مهندس جان وقتی که برنامه جدیدی در آردینو مینویسیم ، یا از جایی کپی میگیریم ، آیا برای اجرا باید پشتوانه ای بنام کتابخانه داشته باشد ؟
پس چرا مدار ساده ای مثل ال ای دی چشمک زن را که تایپ میکنیم کامپایلر میشه ولی سون سگمنت نمیشه و خطا میده.
با وجود کپی ، پایه ها تعریف و متغیرها مقدار دهی شدند .
خطا در خط اول دارم که میگه نام نامشخصه برام.تغییر هم دادم ولی هیچ تاثیری نداشت.
ممنون میشم راهنمایی کنید.
با سلام
لطفا ارور دریافتی را ارسال کنید. توجه داشته باشید اگر کدی را کپی میکنید از نصب کتابخانه های صحیح و مرتبط با کد برنامه اطمینان داشته باشید.
بابــــــــــــــــــــــــــــــــــــــــــــــا …
سایتتون خیلی توپه مـــــــــــــــــــــــــــــــــــــــــــــرد …
سلام. فک کنم که تنضیمات سایتتون به هم خورده.
ابعادش قاطی شده و متن از اواسط خط نمایش داده میشه. لطفا درستشون کنید
با تشکر فراوان
سلام مشکل حل شد
با سلام و تشکر از مطالب مفید شما.
جهت اطلاع ، تصویر شماتیک مدار لود نمی شود. درصورت امکان اصلاح بفرمایید.
با سپاس
سلام آقای قربانی با چه دستوری کارکترها رو میشه نشون داد.(مثال a,b,c,..).باتشکر از سایت خوبتون.
سلام.
هم نرم افزار آردینو انو برا اندروید باز نشد و هم این پروژه خطا میده و در قسمت دانلود مشکل دارم.
میگه این نام برا قابل فهم نیست که بنظرم باید کتابخانه را دانلود کنم که نمیدونم از کجا؟
خلاصه که نتونستم یه سون سگمنت مولتی پلکس چهارتایی را روشن کنم.
بیشتر آموزشهای شما رو هم دیدم .عالی بود و بسیار استادانه بیان کردین .اما من در مورد این تفاوت اسمهای کتابخانه ها مشکل دارم.
با سلام
هر کتابخانه به گونه ای توسعه داده شده است که از یک سری تابع و کلاس مشخص برای انجام عمل خاصی است. به عنوان مثال از منو نرم افزار بر روی library manager کلیک کنید. چندین کتابخانه سرچ کنید برای هر کدام توضیحاتی نوشته شده است که مشخص میکند این کتابخانه مناسب است یا خیر همچنین فایل هگز و cpp را مطالعه کنید تا با کلاس های هر کتابخانه آشنا شوید.
سلام خسته نباشد.من می خوام حروف رو ی سون سگمنت نمایش بده.چه دستوری داره؟مثال( a,b,c,d )
تشکر از سایت خوبتون.
سلام ببخشید مینین بگین سون سگمنت رو با گیت ها اصلی چجوری میشه پیاده سازی کرد?
آرایش پین ها عکسش نیست . امکانش هست یکبار دیگه آپلود کنید داخل سایت .
خسته نباشید.
من چهارتا سون سگمنت دارم که میخوام اینارو به هم متصل کنم
مداری که شما گذاشتید قطعاتش رو ذکر کنید لطفا
سلام ممنون از آموزش خوبتون
ببخشید چرا کتابخانه رو نمیشناسه من حتی تمام کتابخانه سون سگمتمم آپدیت کردم ولی هنوز همون خط رو ارور میده اگه راهنمایی کنید ممنون میشم
ومیشه سیم کشی رو هم یک توضیح بدید ممنون
در سطرهای ۱۳، ۱۴، ۱۵ راجع به سیم کشی توضیح داده شده است. عددهای سطر ۱۵ مربوطه به اتصالات سون سگمنت است.
با سلام و تشکر از توجه شما
مشکلی در این کدها بود که رفع شد. لطفا ارور دریافتی را کپی و در اینجا ارسال کنید تا دقیقتر بررسی کنم.
سلام
این که دستورات کتابخانه را با جزییات توضیح دادید خیلی خوبه.چون تو بعضی از سایتها فقط کلیات را میگن که واسه ادمای تازه کار گیج کننده است.با سپاس
با سلام
از توجه شما سپاسگزارم. لطفا به صفحه حمایت از دیجی اسپارک مراجعه کنید.
سلام
پینهای d1,d2,d3,d4 در سون سگمنت چیه وچه کاری انجام میده
سلام مجدد
هر کدام مربوط به یکی از دیاگرامها میباشد. مانند تصویر داخل آموزش مشاهده میکنید که سگمنت ۴ رقمی دارای ۴ دیاگرام میباشد.
سلام
یه سوال دیگه هم دارم. اینکه چطور میشه یه عدد تک رقمی را در یه دیاگرام مشخص در یه سون سگمنت ۴ تایی نمایش داد.مثلا به جای اینکه عدد ۵ را در دیاگرام ۴ نمایش بده اون را در دیاگرام ۲ نمایش بده. اصلا شدنیه؟
عالی بود دوست عزیز .من یه سوال دارم ازتون میخوام توسط آرداینو و ۷ سگمنت اعداد رو برروی ۷ سگمنت نشون بدم منتها نیاز ندارم که میکرو خودش شماره ها رو بشموره بلکه خودم با فشاردادن همون دکمه برروی ۷ سگمنت عددش روبخونم .یعنی برفرض میخوام برروی سون سگمن ۸ شماره نوشته بشه و برای هرکدومشون هم یک سویچ مجزا گذاشته بشه که بافشتردادن سویچ ۱ برروی ۷ سگمنت عدد ۱ و بافشار دادن سویچ ۲ عدد ۲ و الی آخر نمایش دده بشه .میتونید دراین زمینه کمکی بهم بکنید .باتشکر از شما
با سلام و تشکر ازشما
این مورد مشکلی ندارد، کافیست برای هر میکروسوئیج یک مقدار تعریف کنید و سپس مقدار مشخص شده را در سگمنت نمایش دهید. متاسفانه درباره برنامه نویسی فرصت اینکه از صفر راهنمایی کنم را ندارم. شما موارد را اجرا کنید و برای رفع عیب از این طریق اقدام کنید.
سلام
من نیاز دارم به غیر از نمایش اعداد با این کتابخانه یک سری حروف هم نمایش دهم چطور میتونم با استفاده از تابع های این کتابخانه یک سری حروف را نمایش دهم ؟؟؟
سلام
در این خصوص باید از کد باینری حروف استفاده کنید.
سلام و تشکر از پست خوبتون
پین a سون سگمنت من تو هر چهار دیاگرامش روشنه ….خاموش نمیشه و این که دات ها ینی همون dp ها هم روشن نمیشن مشکل از سون سگمنت هستش؟
و این که من lm35 استفاده کردم و مقدارشو نشون میده….ولی میخام که هر ۵۰۰ میلی ثانیه عددم ریفرش بشه چیکار کنم؟
سلام
بنده در این خصوص تجربه کار با سگمنت بدون درایور را ندارم. از دیگر کاربران که تخصص کافی دارند تقاضا دارم تا در این بحث شرکت کنند. در خصوص سنسور دما به آموزش راه اندازی سنسور LM35 آردوینو سنجش دمای منفی نمایشگر LCD مراجعه بفرمایید.
سلام من یه ساعت دیواری مثل همینی که تو تصویر اول این صفحه هست میخوام….(اینطوری که فقط همون سگمنتها باشه و صفحه پشت نداشته باشه) کسی می تونه برام بسازه یا بگه از کجا می تونم تهیه کنم…ممنون
سلام
تصویر کالا مربوط به سگمنت است. کامل تر توضیح دهید تا وسایل مورد نیاز جهت ساخت ساعت به شما معرفی گردد.
سلام.ممنون از مطالب خوب سایتتون
من سون سگمنت ۴ دیجیت ساعتی دارم پین هارو هم همونجوری که تو عکس هست متصل کردم ولی عددا ناقصه و سگمنت شماره دو روشن نمیشه و چند تا نقص دیگه
لطفا راهنمایی کنید.
با سلام
لطفا توضیحات دقیقتری ارایه بفرمایید. در خصوص آند مشترک یا کاتد مشترک بودن، موارد را بررسی کردهاید؟
ببخشید من اتصالات رو متوجه نشدم.میشه توضیح بدین؟
در مورد سون سگمنت تکی هم مطلبی نبود.
با سلام
کاربر گرامی تمامی این موارد که درخواست کردید در متن آموزش توضیح داده شده است. مشخصا جنابعالی متن را کامل مطالعه نکردهاید. لطفا مجددا بررسی کنید.
سلام جهت طراحی یک مدار با سون سگمنت نیاز به همکاری دارم البته با هزینه
با سلام
کاربر گرامی در این خصوص درخواست خود را از طریق پرتال پشتیبانی فروشگاه ارسال کنید تا بررسی شود.
پرتال پشتیبانی فروشگاه دانشجوکیت
سلام
میبخشید من سون سگمنت از بازار تهیه کردم که با کمک آردوینو ساعت بسازم ولی سون سگمنتها پایههاش برام مشکل درست کردن بطوریکه پایههای پایین دو تا کناری که dp و e میباشند مشترک بوده و vcc بهش متصل میشه و بالا پایه وسط بهش gnd وصل میشه وفقط چراغ اعشارش روشن میشه و پایههای دیگه هیچ عکس العملی نشون نمیدن ، ممنون میشم راهنمایی بفرمایید
با سلام و تشکر ازشما
در این خصوص بنده تجریهای ندارم. ولی نظر شما منتشر شده است، در صورتی که دیگر کاربران نسبت به این مورد راهکاری داشته باشند، از همین طریق به شما پاسخ خواهند داد.
سلام، وقت بخیر. من میخوام یه ساعت دیجیتالی ۶ رقمی بسازم و دیجیت های بزرگ جداگونه بذارم که هم ثانیه رو نشون بده هم دقیقه و هم ساعت. چجوری با آردوینو و همین تابعی که توی همین آموزش گفتید، یک تابع تعریف کنم که با تاخیر ۱۰۰۰ میلی ثانیه ای به یکان ثانیه اضافه کنه و وقتی به ۹ رسید، صفر شه و یکی به دهگان ثانیه اضافه کنه، بعد از اون وقتی دهگان ثانیه به ۶ رسید، صفر شه و یکی به یکان دقیقه اضافه کنه به همین ترتیب الی آخر و یک ساعت دیجیتالی کامل داشته باشیم …؟
با سلام
بهتر است برای این منظور از ماژول ساعت استفاده کنید. با این حال از دیگر کاربرانی که تجربه در این خصوص دارند، تقاضا دارم تا در این بحث شرکت کنند.
سلام
خسته نباشید
من همین کد رو اجرا کردم،
ولی اون ال ای دی هایی که در یک بخش روشن شده رو در بخش دیگه روشن نمیکنه
مثلا
وقتی میخوام ۱۳ رو نشون بدم، یک رو نشون میده اما وقتی ۳ رو نشون میده ال ای دی های B و C رو نشون نمی ده
با سلام
اتصالات را بررسی کنید.
با سلام و خسته نباشید ویژه؛
یه مشکل داشتم
وقتی در یک دیجیت برای مثال، c و b روشن هستند، در دیجیت بعدی دیگه اون ال ای دی ها روشن نمیشن
برای نمونه:
وقتی عدد ۱۳ رو میخوام نشون بدم، عدد ۱ به طور کامل نمایش داده میشه( ال ای دی های a و c روشن میشن)، ولی در عدد سه که در دیجیت بعدی است، ال ای دی های a و c خاموش هستند و فقط A و G و D روشن هستند.
البته از کتابخانه SevSeg.h استفاده میکنم
ممنون میشم راهنمایی کنید.
سلام
اگر از ماژول TM1637 استفاده می کنید، از کتابخانه مخصوصش آن را راه اندازی کنید.
https://digispark.ir/sevensegmenttm1637-h-library/