آردوینو Arduino Uno پروژه رزبری پای

ساخت شمارنده معکوس با برد آردوینو و ماژول نمایشگر TM1637

Contdown timer with arduino seven segment tm1637 digispark
نوشته شده توسط سپهر شیخ الاسلامی

در فیلم ها و سریال های زیادی دیده ایم که چگونه یک بمب ساعتی با زدن کلید آن شروع به شمارش معکوس می کند و زمانی که به صفر می رسد بمب منفجر می شود؛ یا در پرتاب کننده های شاتل فضایی با زدن یک کلید زمان ثابت شده و با زدن کلید دیگر شمارش معکوس شروع می شود.در این پروژه قصد دارم تا ساخت یک شمارنده معکوس با برد آردوینو و ماژول نمایشگر TM1637 را به شما عزیزان آموش بدهم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


ماژول نمایشگر TM1637


ماژول نمایشگر TM1637 یک سون سگمنت چهارتایی آند مشترک با درایور TM1637 است.برای کنترل چهار موقعیت این ماژول، به جز VCC و GND تنها به دو پین data و clock نیاز است. با توجه به این موضوع یعنی به کارگیری تنها دو پین از آردوینو، ماژول بسیار مناسبی برای ساخت سیستم هایی با قابلیت نمایش عدد چهار رقمی است؛ همچنین با داشتن دو نقطه در میان موقعیت های دوم و سوم، می توان برای نمایش زمان یا کاربرد های تایمر از آن استفاده کرد.در این پروژه به جای نوشتن توابع، با فراخوانی کتابخانه اختصاصی این ماژول، از دستورات پیش فرض آن استفاده می شود.

 


نحوه مقداردهی ماژول نمایشگر TM1637


در جدول زیر می‌توان مشاهده کرد که که با روشن و خاموش کردن بعضی از سگمنت‌های یک سون سگمنت اعداد مختلفی را روی آن نمایش داد. برای مثال، نمایش عدد ۰ بر روی یک سون سگمنت کافیست سگمنت‌های G,DP را خاموش و سگمنت‌های C,B,A,D,E,F روی ماژول نمایشگر TM1637 را روشن کنیم. به ترتیب برابر با ۰۰۱۱۱۱۱۱ خواهد بود. این یک عدد تک بایتی یعنی ۸ بیتی است. که خاموش و روشن بودن سگمنت‌ها را مشخص می‌کند. حال اگر همین عدد را از مبنای ۲ به مبنای ۱۰ تبدیل کنیم برابر با ۶۳ خواهد بود. حال همین عدد را به مبنای ۱۶ تبدیل می‌کنیم که برابر ۳F است و ۰x قبل آن نشان دهنده مبنای ۱۶ است. پس با نوشتن عدد ۶۳ بر روی پین‌های سون سگمنت عدد صفر بر روی آن نمایش داده می‌شود.

روش مقداردهی عددها به ماژول سگمنت TM1637 - دیجی اسپارک

 


نحوه کار شمارنده معکوس


ابتدا باید توسط دو پتانسیومتر که یکی برای تنظیم ثانیه و دیگری برای تنظیم دقیقه است زمان مورد نظر را تنظیم کنیم.زمان مورد نظر بر روی ماژول نمایشگر TM1637 نمایش داده می شود.شایان ذکر است که محدوده کار این شمارنده از یک ثانیه تا یک ساعت و یک دقیقه است.سپس با پوش باتن اول که در واقع کلید تنظیم یا (SET) است، زمان را تثبیت می کنیم.در این مرحله LED سبز رنگ روشن می شود و شما دیگر قادر به تغییر زمان نیستید مگر این که پوش باتن اول(SET) را یک بار دیگر بفشارید.حال که پوش باتن اول فشار داده شده است اتفاقی نمی افتد تا اینکه پوش باتن دوم که کلید آغاز یا (LAUNCH) است را فشار دهید.حال LED زرد رنگ روشن شده و شمارش معکوس شروع می شود این شمارش تا زمانی که مقدار نمایش داده شده بر روی نمایشگر به صفر برسد ادامه پیدا می کند.حال که مقدار شمارش به صفر رسیده است LED قرمز رنگ هم روشن شده و هر سه LED روشن هستند و همچنین ماژول نمایشگر شروع به چشمک زدن می کند و پس از ۴ بار چشمک زدن، ماژول نمایشگر دوباره مقدار خوانده شده از پتانسیومترها را نشان می دهد و این حلقه دوباره تکرار می شود.

 

 


اتصالات مدار نمایشگر TM1637


طبق الگوی زیر اتصالات بین ماژول‌ها وبرد آردوینو را برقرار کنید.

GND ماژول –> GND آردوینو

VCC  ماژول –> +5V

DIO  ماژول –>  پین دیجیتال شماره ۹ آردوینو

CLK  ماژول –>  پین دیجیتال شماره ۸ آردوینو

اتصالات دو عدد میکروسوئیچ

  1. پوش باتن تنظیم(Set)
  2. پوش باتن آغاز(Launch)

 

اتصالات LED ها

LED سبز : پایه بلندتر آن(ANODE) به پین ۱۰ دیجیتال آردوینو و پایه کوتاه تر (CATHODE) به یک سر مقاومت ۲۲۰Ώ و سر دیگر مقاومت به زمین(GND).

LED زرد : پایه بلندتر آن(ANODE) به پین ۱۱ دیجیتال آردوینو و پایه کوتاه تر (CATHODE) به یک سر مقاومت ۲۲۰Ώ و سر دیگر مقاومت به زمین(GND).

LED قرمز : پایه بلندتر آن(ANODE) به پین ۱۲ دیجیتال آردوینو و پایه کوتاه تر (CATHODE) به یک سر مقاومت ۲۲۰Ώ و سر دیگر مقاومت به زمین(GND).

 

اتصالات پتانسیومترها

اتصال پتانسیومترها در پروژه شمارش معکوس با آردوینو

 


وسایل و قطعات مورد نیاز


 


کتابخانه آردوینو ماژول نمایشگر TM1637


همانطور که پیش از این گفته شد، در این پروژه به جای نوشتن توابع برای ماژول نمایشگر، از کتابخانه اختصاصی آن استفاده می‌کنیم. از آنجا که این کتابخانه به صورت پیشفرض در نرم افزار Arduino IDE موجود نیست نیاز داریم تا آن را نصب کنیم. برای این کار ابتدا از این لینک کتابخانه را دانلود کرده و نرم افزار Arduino IDE را باز کنید. به منوی Sketch → Include Library → Add .ZIP Library رفته و کتابخانه ای که دانلود کردید را انتخاب کنید.حال کافیست یک بار نرم افزار را ببندید و دوباره باز کنید و با دستور زیر کتابخانه را ضمیمه کد کنید.

 


کدهای پروژه ماژول نمایشگر TM1637


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

جهت دسترسی به این بخش از پروژه، اسپارکر پلاس شوید.

 

 


توابع مهم کتابخانه TM1637


  • دستور (SevenSegmentTM1637(clkPin, dioPin

با این دستور یک شی از نوع SevenSegmentTM1637 ساخته شده و پین های CLK و DIO مشخص می شوند.

  • دستور init()

با این دستور ماژول نمایشگر راه اندازی می شود.

  • دستور print(value)

با این دستور مقدار داخل پرانتز بر روی نمایشگر نشان داده می شود.این مقدار می تواند عدد(۰ تا ۹۹۹۹) و یا حروفی که می توان بر روی سون سگمنت نمایش داد، باشد(A,b,C,d,E,F,H,J,L,n,o,P,U)

  • دستور off()

این دستور ماژول نمایشگر را خاموش می کند.

  • دستور on()

زمانی که ماژول نمایشگر با دستور off() خاموش شده باشد، با این دستور می توان دوباره آن را روشن کرد.

  • دستور blink()

با اجرا شدن این دستور هر چیزی که رو نمایشگر باشد شروع به چشمک زدن می کند.

  • دستور setColonOn(bool)

این دستور امکان کنترل «دو نقطه ای» که در میان موقعیت های دوم و سوم ماژول قرار دارد را به ما می دهد.اگر در پرانتز مقدار true قرار داده شود، دو نقطه روشن شده و اگر در پرانتز مقدار false قرار داده شود دو نقطه خاموش می شوند.

  • دستور printRaw()

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

 


توضیحات کد ماژول نمایشگر TM1637


ابتدا همانطور که گفته شد، کتابخانه ماژول نمایشگر TM1637 را ضمیمه کد می کنیم.

حال باید پین های ماژول نمایشگر،پتانسیومتر ها،پوش باتن ها و LED ها را تعریف و مشخص کنیم.

جهت دسترسی به این بخش از پروژه، اسپارکر پلاس شوید.

 


جمع بندی


در این پروژه ما اقدام به ساخت یک شمارنده معکوس همانند نسخه موجود بمب های ساعتی و ایستگاه های پرتاب شاتل های فضایی کردیم و همچنین نحوه کار با ماژول نمایشگر TM1637 را نیز آموختیم.زمانی که مقدار نمایش داده شده بر روی نمایشگر به صفر برسد،LED قرمز روشن خواهد شد.شما همچنین می توانید این خروجی را به یک بازر و یا رله متصل کرده و رله را به یک وسیله بزرگتر و به همین راحتی یک شمارنده معکوس خلاقانه برای خودتان ساخته اید. امیدوارم از این پروژه لذت برده باشید.

 

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

 

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

سپهر شیخ الاسلامی

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

تبادل نظر و رفع عیب با ثبت دیدگاه

۲ دیدگاه

  • Arduino: 1.8.13 (Windows Store 1.8.39.0) (Windows 10), Board: “Arduino Uno”

    C:\Users\poory\Documents\Arduino\libraries\arduino-tm1637-master\src\SevenSegmentFun.cpp:187:80: error: no ‘void SevenSegmentFun::bouncingBall(uint16_t, uint16_t, bool)’ member function declared in class ‘SevenSegmentFun’

    void SevenSegmentFun::bouncingBall(uint16_t moves, uint16_t d, bool runForever) {

    ^

    exit status 1

    Error compiling for board Arduino Uno.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.
    این ارور رو داره

    • با سلام
      این ارور مربوط به کتابخانه tm1637 است، کتابخانه را نصب و نوع برد آردوینو را با توجه به برد مورد استفاده انتخاب کنید.