فهرست مطالب:
تصویری: ساعت واقعی با آردوینو: 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
در این پروژه ما یک ساعت را با کمک ماژول آردوینو و RTC می سازیم. همانطور که می دانیم آردوینو نمی تواند زمان واقعی را نمایش دهد بنابراین ما از ماژول RTC برای نمایش زمان مناسب روی LCD استفاده می کنیم. تمام مراحل را با دقت بخوانید تا در ساختن ساعت بسیار به شما کمک کند.
کد DS3231 Arduino مانند کد DS1307 است و با هر دو تراشه RTC کار می کند.
کد آردوینو در زیر از هیچ کتابخانه ای برای DS3231 RTC استفاده نمی کند ، کتابخانه Wire برای مکاتبات بین آردوینو و DS3231 با استفاده از قرارداد I2C است.
آره! بسیاری از مهندسان الکترونیک برای پروژه های مبتنی بر زمان خود به آن وابسته هستند ، اما RTC کاملاً قابل اعتماد نیست. باتری کار می کند و باید دیر یا زود تعویض شود. با ورود به پروژه های اینترنت اشیا ، پین های با ارزش SPI (Serial Peripheral Interface) را اشغال می کند و با سیم های پیچیده در اطراف آشفته می شود. راه حل …. در اینجا می آید قهرمان ما NTP (پروتکل زمان شبکه). NTP بسیار دقیق است زیرا از اینترنت زمان می گیرد. ما قصد داریم این پروتکل را با استفاده از حالت سرویس گیرنده-سرویس کار کنیم. این فرایند به قدری ساده است که Nodemcu ما به عنوان یک کلاینت عمل می کند و با استفاده از UDP یک بسته NTP از سرور درخواست می کند. در مقابل ، سرور بسته ای را برای مشتری ارسال می کند که داده ها را تجزیه می کند. NTP پروتکل همگام سازی زمان جهانی است. حالا بیایید محل کار آزمایشگاه خود را روشن کنیم
مرحله 1: اجزای مورد نیاز
- برد آردوینو
- برد DS3231 RTC
- صفحه نمایش LCD 16x2
- 2 دکمه فشاری
- مقاومت متغیر 10 کیلو اهم (یا پتانسیومتر)
- مقاومت 330 اهم
- باتری سکه ای 3 ولت
- تخته نان
- سیم های بلوز
ماکت RTC DS3231
زمان یک حس ضروری است که در این دنیای سریع انسان ها مورد نیاز است. در پروژه زمان واقعی
ما از RTC (A. K. A ساعت زمان واقعی) استفاده می کنیم
RTC Real-time-clock (RTC) یک مدار مجتمع (IC) است که زمان فعلی را پیگیری می کند. RTC از زمان در حالت واقعی مراقبت می کند. RTC معمولاً در مادربردهای رایانه ای و سیستم های تعبیه شده یافت می شود تا نیاز به دسترسی به موقع داشته باشد.
مرحله 2: اتصال ساعت Arduino
- پین SCL را به ماژول RTC به Arduino A5 وصل کنید
- پین SDA را به ماژول RTC به Arduino A4 وصل کنید
- VCC را به 5v و GND را به GND وصل کنید
- یک دکمه فشاری را به پین 8 وصل کنید
- یک دکمه دیگر را به پین 9 وصل کنید
- RS LCD را به پین 2 آردوینو وصل کنید
- E LCD را به پین 3 آردوینو وصل کنید
- D7 LCD را به پین 7 آردوینو وصل کنید
- D6 LCD را به پین 6 آردوینو وصل کنید
- D5 LCD را به پین 5 آردوینو وصل کنید
- D4 LCD را به پین 4 آردوینو وصل کنید
- VSS & K را به GND وصل کنید
- VDD & A را به 5 ولت وصل کنید
- vo را به پین خروجی پتانسیومتر وصل کنید
مرحله 3: کد ساعت Arduino با RTC
DS3231 فقط با فرمت BCD کار می کند و برای تبدیل BCD به اعشاری و برعکس من از 2 خط زیر استفاده کردم (مثال برای دقیقه): ؛
// تبدیل اعشاری به BCDminute = ((دقیقه / 10) << 4) + (دقیقه٪ 10) ؛ void DS3231_display (): زمان و تقویم را نمایش می دهد ، قبل از نمایش زمان و داده های تقویم از BCD به فرمت اعشاری تبدیل می شوند. void blink_parameter ():
// ساعت واقعی و تقویم با دکمه های تنظیم شده با استفاده از DS3231 و Arduino // شامل کد کتابخانه LCD #شامل // شامل کد کتابخانه سیم (مورد نیاز برای دستگاه های پروتکل I2C) #شامل // اتصالات ماژول LCD (RS ، E ، D4 ، D5 ، D6 ، D7) LCD مایع Liquid (2 ، 3 ، 4 ، 5 ، 6 ، 7) ؛ void setup () {pinMode (8، INPUT_PULLUP)؛ // button1 به پین 8 pinMode (9 ، INPUT_PULLUP) متصل است ؛ // button2 به پین 9 متصل است // تعداد ستون ها و ردیف های LCD را تنظیم کنید lcd.begin (16 ، 2) ؛ Wire.begin ()؛ // پیوستن به اتوبوس i2c} char زمان = "TIME:::"؛ char Calendar = "DATE: / / 20"؛ بایت i ، دوم ، دقیقه ، ساعت ، تاریخ ، ماه ، سال ؛ void DS3231_display () {// تبدیل BCD به اعشاری دوم = (دوم >> 4) * 10 + (دوم & 0x0F) ؛ دقیقه = (دقیقه >> 4) * 10+ (دقیقه & 0x0F) ؛ ساعت = (ساعت >> 4) * 10+ (ساعت & 0x0F) ؛ تاریخ = (تاریخ >> 4) * 10+ (تاریخ & 0x0F) ؛ ماه = (ماه >> 4) * 10+ (ماه & 0x0F) ؛ سال = (سال >> 4) * 10+ (سال & 0x0F) ؛ // پایان زمان تبدیل [12] = دوم٪ 10 + 48 ؛ زمان [11] = دوم / 10 + 48 ؛ زمان [9] = دقیقه٪ 10 + 48 ؛ زمان [8] = دقیقه / 10 + 48 ؛ زمان [6] = ساعت٪ 10 + 48 ؛ زمان [5] = ساعت / 10 + 48 ؛ تقویم [14] = سال٪ 10 + 48 ؛ تقویم [13] = سال / 10 + 48 ؛ تقویم [9] = ماه٪ 10 + 48 ؛ تقویم [8] = ماه / 10 + 48 ؛ تقویم [6] = تاریخ٪ 10 + 48 ؛ تقویم [5] = تاریخ / 10 + 48 ؛ lcd.setCursor (0 ، 0) ؛ lcd.print (زمان) ؛ // زمان نمایش lcd.setCursor (0 ، 1) ؛ lcd.print (تقویم) ؛ // نمایش تقویم} void blink_parameter () {byte j = 0؛ while (j 23) // اگر ساعت> 23 ==> ساعت = 0 پارامتر = 0 ؛ if (i == 1 && پارامتر> 59) // اگر دقیقه> 59 ==> دقیقه = 0 پارامتر = 0 ؛ if (i == 2 && پارامتر> 31) // If date> 31 ==> date = 1 پارامتر = 1 ؛ if (i == 3 && پارامتر> 12) // اگر ماه> 12 ==> ماه = 1 پارامتر = 1 ؛ اگر (i == 4 && پارامتر> 99) // اگر سال> 99 ==> سال = 0 پارامتر = 0 ؛ sprintf (متن ، "٪ 02u" ، پارامتر) ؛ lcd.setCursor (x ، y) ؛ lcd.print (متن) ؛ تأخیر (200) ؛ // صبر کنید 200ms} lcd.setCursor (x ، y) ؛ lcd.print ("")؛ // نمایش دو فاصله blink_parameter ()؛ sprintf (متن ، "٪ 02u" ، پارامتر) ؛ lcd.setCursor (x ، y) ؛ lcd.print (متن) ؛ blink_parameter ()؛ if (! digitalRead (8)) {// اگر دکمه (پین شماره 8) i ++ فشار داده شده است ؛ // افزایش 'i' برای پارامتر بازگشتی پارامتر بعدی ؛ // مقدار پارامتر را برگردانید و خارج شوید}}} حلقه void () {if (! digitalRead (8)) {// اگر دکمه (پین شماره 8) i = 0 فشار داده شود ؛ ساعت = ویرایش (5 ، 0 ، ساعت) ؛ دقیقه = ویرایش (8 ، 0 ، دقیقه) ؛ تاریخ = ویرایش (5 ، 1 ، تاریخ) ؛ ماه = ویرایش (8 ، 1 ، ماه) ؛ سال = ویرایش (13 ، 1 ، سال) ؛ // تبدیل اعشار به دقیقه BCD = ((دقیقه / 10) << 4) + (دقیقه٪ 10) ؛ ساعت = ((ساعت / 10) << 4) + (ساعت٪ 10) ؛ date = ((date / 10) << 4) + (date٪ 10)؛ ماه = ((ماه / 10) << 4) + (ماه٪ 10)؛ سال = ((سال / 10) << 4) + (سال٪ 10) ؛ // پایان تبدیل // نوشتن داده ها به DS3231 RTC Wire.beginTransmission (0x68) ؛ // شروع پروتکل I2C با آدرس DS3231 Wire.write (0) ؛ // ارسال آدرس ثبت نام Wire.write (0)؛ // sesonds را بازنشانی کرده و نوسان ساز Wire.write (دقیقه) را راه اندازی کنید. // نوشتن دقیقه Wire.write (ساعت) ؛ // ساعت نوشتن Wire.write (1)؛ // نوشتن روز (استفاده نشده) Wire.write (تاریخ) ؛ // تاریخ نوشتن Wire.write (ماه) ؛ // نوشتن ماه Wire.write (year)؛ // نوشتن سال Wire.endTransmission ()؛ // توقف انتقال و رهاسازی تاخیر گذرگاه I2C (200) ؛ // منتظر 200ms} Wire.beginTransmission (0x68) ؛ // شروع پروتکل I2C با آدرس DS3231 Wire.write (0) ؛ // ارسال آدرس ثبت Wire.endTransmission (false) ؛ // راه اندازی مجدد I2C Wire.requestFrom (0x68، 7)؛ // 7 بایت از DS3231 درخواست کنید و گذرگاه I2C را در پایان خواندن second = Wire.read () رها کنید. // خواندن ثانیه از ثبت 0 دقیقه = Wire.read ()؛ // خواندن دقیقه از ثبت 1 ساعت = Wire.read ()؛ // ساعت خواندن از ثبت 2 Wire.read ()؛ // خواندن روز از ثبت 3 (استفاده نشده) date = Wire.read ()؛ // تاریخ خواندن از ثبت نام 4 ماه = Wire.read ()؛ // ماه را از ثبت نام بخوانید 5 سال = Wire.read ()؛ // خواندن سال از ثبت 6 DS3231_display ()؛ // زمان نمایش و تاخیر تقویم (50) ؛ // 50 میلی ثانیه صبر کنید}
توصیه شده:
استفاده از ماژول های ساعت در زمان واقعی DS1307 و DS3231 با آردوینو: 3 مرحله
استفاده از ماژولهای ساعت در زمان واقعی DS1307 و DS3231 با آردوینو: ما همچنان از منابع مختلف درخواست هایی در مورد نحوه استفاده از ماژول های ساعت واقعی DS1307 و DS3231 با Arduino دریافت می کنیم-بنابراین این اولین مورد از دو بخش آموزش نحوه استفاده از آنها است. برای این آموزش آردوینو ما دو ماژول ساعت در زمان واقعی برای ما داریم
ساعت زمان واقعی DS1307 RTC با آردوینو: 4 مرحله
DS1307 ساعت زمان واقعی RTC با آردوینو: در این آموزش ، ما با ساعت زمان واقعی (RTC) و نحوه آردوینو آشنا می شویم & amp؛ ساعت زمان واقعی IC DS1307 به عنوان یک دستگاه زمان بندی کنار هم قرار گرفته است. ساعت واقعی زمان (RTC) برای نظارت بر زمان و نگهداری تقویم استفاده می شود. به منظور استفاده از RTC ، w
ساعت مبتنی بر آردوینو با استفاده از ماژول ساعت واقعی DS1307 (RTC) و 0.96: 5 مرحله
ساعت مبتنی بر آردوینو با استفاده از ماژول ساعت واقعی DS1307 (RTC) & 0.96: سلام بچه ها در این آموزش نحوه ساخت یک ساعت کاری با استفاده از ماژول ساعت واقعی DS1307 را مشاهده می کنیم & amp؛ صفحه نمایش OLED. بنابراین زمان را از ماژول ساعت DS1307 می خوانیم. و آن را روی صفحه OLED چاپ کنید
ساخت ساعت با M5stick C با استفاده از Arduino IDE - RTC ساعت واقعی با M5stack M5stick-C: 4 مرحله
ساخت ساعت با M5stick C با استفاده از Arduino IDE | RTC Real Time Clock With M5stack M5stick-C: سلام بچه ها در این دستورالعمل می آموزیم که چگونه با استفاده از Arduino IDE یک ساعت با تخته توسعه m5stick-C بسازید. بنابراین m5stick تاریخ ، زمان و زمان را نمایش می دهد. هفته ماه بر روی صفحه نمایش
برای کامپیوتر خود یک ساعت واقعی زنگ دار و یک ساعت آتش نشانی آتش زا بسازید.: 3 مرحله (همراه با تصاویر)
یک ساعت واقعی زنگ دار برای رایانه خود و یک ساعت خاموش کننده آتش بسازید: یک زنگ برنجی ، یک رله کوچک چند چیز دیگر و یک زنگ واقعی می تواند ساعت ها را روی دسکتاپ شما بکشد. اگرچه این پروژه بر روی Windows و Mac اجرا می شود OS X همچنین ، تصمیم گرفتم لینوکس اوبونتو را بر روی رایانه شخصی که در سطل زباله پیدا کرده ام نصب کنم و روی آن کار کنم: من هرگز