برای مشاهده لیست علاقه مندی ها وارد شوید!

مشاهده محصولات فروشگاه
0

هیچ محصولی در سبد خرید نیست.

ساخت ساعت سخنگو با آردوینو

دسته بندی :آردوینو, پروژه های آردوینو ۱۶ اسفند ۱۳۹۹ محمدرضا سروریان 2366

احتمالا فکری به ذهنتون رسیده باشه که بخواید یه ساعت دیجیتال درست کنید که بتونه خودش ساعت رو اعلام کنه ! اپلیکیشن های موبایلی این ایده زیاد هستن، اما سخت افزار اون خیلی کم وجود داره!

توی این اموزش میخوایم با استفاده از برد آردوینو و چند تا ماژول یه ساعت دیجیتال درست میکنیم تا با فشار دادن کلید اون ، خودش ساعت رو به زبان فارسی ویا هر زبان دیگه ای که خودتون نیاز دارید اعلام کنه. همچنین امکان تنظیم آلارم صوتی رو هم داره. پس Let’s GO (:

وسایل مورد نیاز :

1– آردوینو نانو

2- ماژول ساعت دقیق با تراشه DS1307

3- ماژول MP3 Player با رابط سریال و اسلات SD

4- ال سی دی کراکتری 16*2

5- یک عدد میکروسوئیچ بزرگ

6- پتانسیومتر 10 کیلو اهم

7- اسپیکر حداکثر 3 واتی

ماژول ساعت دقیق DS1307

DS1307 clock

برای اینکه بتونیم زمان (ساعت، تاریخ و روز ) رو محاسبه کنیم و در اختیار میکرو کنترلر قرار بدیم چند تا راه هست. که ساده ترین و دقیق ترین و اقتصادی ترین اونها، استفاده از ماژول های ساعت دقیق هست که ما توی این پروژه از مدل DS1307 استفاده کردیم. این ماژول، پردازش و نگهداری زمان هست که شامل ” روز ، ماه، سال، ساعت، دقیقه، ثانیه، روز های هفته ” است. ولتاژ کاری این ماژول از 3.3 تا 5 ولت است.

همچنین امکان اتصال به میکروکنترلر ها و یا پلتفرم های اماده رو داره و با رابط I2C هم میتونید اون رو کنترل کنید.

ماژول DF MP3 Player Mini

mp3 playe module

حالا برای پخش صدای ساعت باید از یک ماژول پخش صوت کمک بگیریم. که ما این ماژول رو انتخاب کردیم. ارتباط ماژولDF MP3 Player Mini از طریق سریال هست که با ولتاژ 5V راه اندازی میشه.

برای انتقال فایل های صوتی به ماژول میتونید از اسلات رم که روی برد هست استفاده کنید ویا فلش خودتون رو به پایه های +USB و -USB متصل کنید. و حداکثر از حافظه های 32 گیگابایتی پشتیبانی میکنه.

یک نکته ی مهم دیگه ی این ماژول داشتن عدد خروجی چپ و راست با توان حداکثر 3 وات هست تا بتونید یک اسپیکر رو به صورت مستقیم درایو کنید.

مرحله 1- انتقال فایل های صوتی روی رم

برای قدم اول نیاز به فایل صوتی اعداد 1 تا 59 داریم که میتونید خودتون ضبط کنید ویا اماده ای اون رو از اینترنت دانلود کنید. همچنین 3 فایل دیگه هم میخوایم که توی اون کلمه های “و” ، “ساعت” ، “دقیقه”  گفته شده باشه. حالا فرمت رم رو FAT32 قرار بدید، یک پوشه به اسم ” mp3 ” درست کنید و فایل های صوتی رو توی اون قرار بدید. بعد اسم صدای اعداد 1 تا 59 رو به ترتیب 0001 تا 0059 نامگذاری کنید. اسم 3 فایل دیگه رو هم به صورت قراردادی به این شکل قرار میدیم.

 “و” == 0099

“ساعت” == 0098

“دقیقه” == 0097

توجه داشته باشید که فرمت فایل ها حتما باید MP3 باشند.

مرحله 2- اتصالات پروژه

اول بریم سراغ اتصالات LCD کاراکتری 2 در 16 ….

پایه VDD => تغذیه مثبت (vcc)

پایه VSS => تغذیه منفی (GND)

پایه V0 => مربوط به تنظیم کنتراست نمایشگر. که مطابق شکل به پتانسیومتر 10K وصل میکنیم.

پایه Rs => پین D3 آردوینو

پایه R/W => پین D4 آردوینو

پایه EN => پین D5 آردوینو

پایه D4 => پین D6 آردوینو

پایه D5 => پین D7 آردوینو

پایه D6 => پین D8 آردوینو

پایه D7 => پین D9 آردوینو

حالا اتصالات ماژول ساعت DS1307

پایه 5V => تغذیه مثبت (vcc)

پایه GND=> تغذیه منفی (GND)

پایه SDA => پین A4 آردوینو

پایه SCL => پین A5 آردوینو

اتصال ماژول ساعت DS1307

و در آخر ؛ اتصالات ماژول DF Player Mini

پایه 5V => تغذیه مثبت (vcc)

پایه GND=> تغذیه منفی (GND)

پایه RXD => پین D11 آردوینو

پایه TXD=> پین D10 آردوینو

پایه SPK 1=> پین مثبت اسپیکر

پایه GND => پین منفی اسپیکر

پخش موزیک با اردوینو

مرحله 3- شروع کدنویسی !

خوب میرسیم به اصل مطلب !

اول باید کتابخانه هایی که نیاز داریم رو include کنیم ….

1-  LiquidCrystal برای راه اندازی ال سی دسی کاراکتری

2-  DFPlayerMini_Fas  برای راه اندازی ماژول MP3

3-  RTClib برای استفاده از ماژول ساعت

کتابخانه هارو میتونید از این لینک یکجا دانلود کنید.

به ترتیب؛ تعریف و تنظیم ماژول های پلیر، ساعت و LCD کاراکتری.

حالا وارد تابع setup میشیم. خط 2 تا 6 مربوط به شناسایی ماژول ساعت هست، ومیگه که تا وقتی که ماژول پیدا نشد عبارت Couldn’t find RTC رو در سریال مانیتور چاپ کنه.

هنچنین خط های 9 تا 12 هم مربوط به تنظیم ساعت ماژول هست. این کار رو میتونید به 2 صورت انجام بدید :

روش اول اینه که مثل خط 11 ساعت کامپیوتر رو بدید به ماژول، ویا مثل خط 12 که کامنت شده خودتون به صورت دستی تنظیم کنید.

توجه داشته باشید که اگر قصد دارید دستی ساعت رو تنظیم کنید، فقط یک بار این کد رو اپلود کنید. و برای دفعات بعد باید دستور رو حذف کنید تا زمان قبلی دوباره تنظیم نشه!

برای تنظیم ماژول MP3 Player هم باید این چند خط کد رو به تابع setup اضافه کنید. و توی خط اخر هم ولوم خروجی اسپیکر رو روی ماکزیمم خودش یعنی 30 قرار میدیم.

در اخر توی خط های 1و2 نوع LCD رو مشخص و صفحه رو پاک میکنیم. و در خط 3و4 هم، پایه ی D2 آردوینو رو به عنوان ورودی برای اتصال دکمه ی پخش ساعت معرفی میکنیم.

و حالا میرسیم به حلقه ی Loop؛ اول باید یه instance از آبجکت DateTime بگیریم و اون رو برابر با rtc.now قرار میدیم. برای دریافت زمان و تاریخ میتونید از دستورات زیر استفاده کنید روی LCD نمایش بدید :

دریافت ساعت now.hour();
دریافت دقیقه now.minute();
دریافت ثانیه now.second();
دریافت سال now.year()
دریافت ماه now.month()
دریافت روز now.day()

توی مرحله ی بعد دستورات مربوط به آلارم و کلید پخش ساعت رو انجام میدیم. خط 1 تا 7 داره میگه که اگر پایه ی 2 آردوینو HIGH شد و همچنین اگر پلیر در حال پخش بود، اون رو stop کن و بعد ساعت رو با خواندن تابع speakClock اعلام کن. (کد های پخش ساعت رو توی بخش بعد بررسی میکنیم ). 

برای تنظیم ساعت آلارم هم توی خط های 9تا15 میگیم که اگر ساعت، دقیقه و ثانیه به ترتیب برابر بود با 5 و 15 و 5 فایل 0096 رو پخش کنه. شما بسته به نیازتون میتونید این اعداد رو تغییر بدید، و حتی دو یا چند تا آلارم ایجاد کنید.

 

حالا نوبت میرسه به قلب تپنده ی برنامه 😉 تابعی که ساعت رو اعلام میکنه speakClock نام داره. یک تابع خارج از loop و setup با همین اسم ایجاد کنید و کد های زیر رو درون اون قرار بدید.

محمدرضا سروریان

راه آسان‌تری برای ارتباط با کاربران‌مان پیدا کرده‌ایم :) عضویت در کانال

مطالب زیر را حتما بخوانید:

قوانین ارسال دیدگاه در سایت

  • چنانچه دیدگاهی توهین آمیز باشد و متوجه اشخاص مدیر، نویسندگان و سایر کاربران باشد تایید نخواهد شد.
  • چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
  • چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
  • چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
  • چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.

  1. حسام گفته؛
    01:27 1400/04/21

    سلام. ممنون بابت پست خوبتون. در مورد اینکه دکمه به کجا وصل میشه که وقتی بزنیمش زمان رو اعلام بکنه چجیزی ننوشتین. توی شماتیک هم نشون ندادین. میکروسوئیچ نوشتین تو قطعات ولی استفاده نکردین. ممنون میشم توضیح بدین.
    با تشکر

    • سلام دوست عزیز . خوشحالیم که این اموزش برای شما مفید واقع بوده.
      شما باید میکروسویچ مربوط به اعلام ساعت را به پین 2 دیجیتال اردوینو متصل کنید .

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

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

لینک کوتاه: