اتضح أن لوحة Tiny RTC I2C Modules هي جهاز مفيد للغاية. بمجرد أن أقدم صورة مع ربط شريحتين صغيرتين مع شريط على لوحة توصيل ، تصبح غير مريحة قليلاً مع عدد الاتصالات غير الموثوق بها. تعتبر لوحة Tiny RTC I2C Modules ملائمة جدًا للعمل مع شريحة الساعة في الوقت الحقيقي ds1307Z مع واجهة I2C تسلسلية ، وشريحة ذاكرة 24C32 مع واجهة I2C تسلسلية ، والقدرة على تثبيت مستشعر درجة حرارة ds18b20. يمكنك أيضًا الحصول على نبضات مستطيلة دقيقة من المخرج السابع لرقاقة ds1307Z ، على الموصل الذي تم تمييزه بالأحرف SQ. على لوحة الدوائر في وحدات Tiny RTC I2C ، من الصعب رؤية أن الطرف السابع من شريحة ds1307Z متصل بالطرف السابع من موصل P1.
لوحة صغيرة وحدات RTC I2C التخطيطي:
قبل الشراء ، بحثت عن معلومات على الإنترنت. علمت أن اللوح صُنع للعمل ببطارية ليثيوم يصعب شرائها. قام مشتري لوحة Tiny RTC I2C Modules بتثبيت بطارية ليثيوم بدلاً من البطارية ، ولم تعمل اللوحة بشكل صحيح. تستهلك الدوائر الصغيرة طاقة قليلة جدًا ، لذلك يمكن استخدام اللوحة مع بطارية ليثيوم. للقيام بذلك ، قم بإزالة مكونات الراديو التالية من لوحة Tiny RTC I2C Modules: الصمام الثنائي D1 ، المقاوم R4 ، ولحام الوصلة بدلاً من R6. قمت أيضًا بإزالة المقاوم R7 ، بعد أن تعرفت على الدائرة النموذجية لتشغيل شريحة ds1307.
الدوائر النموذجية ds1307:
يمكنك معرفة المزيد عن وضع اللمسات الأخيرة على لوحة Tiny RTC I2C Modules من فيديو تم تسجيله ونشره على الشبكة بواسطة الرفيق أليكسي بوكريف.
ورقة بيانات على شريحة ds1307:
عرض الملف عبر الإنترنت:
عرض الملف عبر الإنترنت:
لقد قمت بتوصيل اللوحة اردوينو Pro Mini مع وحدات TTC RTC I2C الصغيرة و Arduino Pro Mini مع محول USB التسلسلي CH340G.
قم بتشغيل التعليمات البرمجية لتحديد عناوين الدوائر المصغرة ds1307 و 24 C32.
الرمز نفسه:
# تشمل
String stringOne ؛
إعداد باطل ()
{
Wire.begin () ؛
Serial.begin (9600) ؛
بينما (! المسلسل) ؛
}}
حلقة فارغة ()
{
خطأ بايت ، العنوان ؛
الأجهزة int.
Serial.println ("Scanning ...") ؛
nDevices = 0 ؛
(العنوان = 1 ؛ العنوان العلامة & lt ؛ 127 ؛ العنوان ++)
{
Wire.beginTransmission (العنوان) ؛
خطأ = Wire.endTransmission () ؛
إذا (الخطأ == 0)
{
String stringOne = String (العنوان ، HEX) ؛
Serial.print ("0x") ؛ Serial.print (stringOne) ؛ Serial.print ("-") ؛
إذا (stringOne == "0A") Serial.println ("'Motor Driver'") ؛
إذا (stringOne == "0F") Serial.println ("'Motor Driver'") ؛
إذا (stringOne == "1D") Serial.println ("'ADXL345 Input 3-Axis Digital Accelerometer'") ؛
إذا (stringOne == "1E") Serial.println ("'HMC5883 3-Axis Digital Compass'") ؛
إذا (stringOne == "5A") Serial.println ("" مستشعر اللمس "") ؛
إذا (stringOne == "5B") Serial.println ("" مستشعر اللمس ") ؛
إذا (stringOne == "5C") Serial.println ("" مستشعر الضوء الرقمي BH1750FVI "أو" مستشعر اللمس ") ؛
if (stringOne == "5D") Serial.println ("" مستشعر اللمس "") ؛
إذا (stringOne == "20") Serial.println ("PCF8574 8 بت بت I / O Expander 'أو' LCM1602 LCD Adapter '") ؛
إذا (stringOne == "21") Serial.println ("'PCF8574 8-Bit I / O Expander'") ؛
if (stringOne == "22") Serial.println ("'PCF8574 8-Bit I / O Expander'") ؛
إذا (stringOne == "23") Serial.println ("'PCF8574 8 بت بت I / O Expander' أو 'BH1750FVI مستشعر الضوء الرقمي" ") ؛
if (stringOne == "24") Serial.println ("'PCF8574 8-Bit I / O Expander'") ؛
إذا (stringOne == "25") Serial.println ("'PCF8574 8-Bit I / O Expander'") ؛
إذا (stringOne == "26") Serial.println ("'PCF8574 8-Bit I / O Expander'") ؛
إذا (stringOne == "27") Serial.println ("'PCF8574 8 بت بت I / O Expander' أو 'LCM1602 LCD Adapter'") ؛
if (stringOne == "39") Serial.println ("" مستشعر الضوء المحيط TSL2561 "") ؛
If (stringOne == "40") Serial.println ("'BMP180 استشعار الضغط الجوي' ') ؛
if (stringOne == "48") Serial.println ("'ADS1115 Module 16-Bit'")؛
if (stringOne == "49") Serial.println ("'ADS1115 Module 16-Bit' OR 'SPI-to-UART'") ؛
if (stringOne == "4A") Serial.println ("'ADS1115 Module 16-Bit'")؛
if (stringOne == "4B") Serial.println ("'ADS1115 Module 16-Bit'")؛
if (stringOne == "50") Serial.println ("'AT24C32 EEPROM'") ؛
if (stringOne == "53") Serial.println ("" مقياس التسارع الرقمي ثلاثي المحاور ADXL345 "") ؛
if (stringOne == "68") Serial.println ("'DS3231 real-time clock'")؛
if (stringOne == "7A") Serial.println ("" LCD OLED 128x64 '") ؛
If (stringOne == "76") Serial.println ("'BMP280 استشعار الضغط الجوي' ') ؛
If (stringOne == "77") Serial.println ("" مستشعر الضغط الجوي BMP180 "أو" مستشعر الضغط الجوي BMP280 "") ؛
if (stringOne == "78") Serial.println ("" LCD OLED 128x64 '") ؛
nDevices ++ ؛
}}
آخر إذا (الخطأ == 4)
{
Serial.print ("خطأ غير معروف في العنوان 0x") ؛
إذا (العنوان & lt؛ 16)
Serial.print ("0") ؛
Serial.println (العنوان ، HEX) ؛
}}
}}
if (nDevices == 0)
Serial.println ("لم يتم العثور على أجهزة I2C \ n") ؛
آخر
Serial.println ("عمل \ n") ؛
تأخير (5000) ؛
}}
بعد بدء تشغيل Arduino IDE ، واختيار نموذج لوحة arduino ، وتثبيت المنفذ التسلسلي (لدي com31) ، ونسخ الرمز الموجود أعلاه في نافذة مع استبدال النص. لقد بدأت التجميع ، بينما يطلب Arduino IDE حفظ مجلد الرسم. انقر فوق حفظ وسيتم تجميع Arduino IDE. سنكتب البرنامج على لوحة اردوينو وسنرى في شاشة المنفذ التسلسلي ما يلي:
لذا ، تأكدنا من توصيل الألواح بشكل صحيح.
الآن ، للعمل مع الدائرة الدقيقة في الوقت الحقيقي (ds1307) ، تحتاج إلى تثبيت مكتبة "Universal library iarduino_RTC.zip"
الملف: iarduino_RTC.zip مكتبة عالمية:
بعد تثبيت المكتبة وإعادة تشغيل Arduino IDE ، قم بتشغيل مثال gettime:
بعد الانتهاء من التجميع ، كتابة البرنامج على لوحة اردوينو ، في شاشة المنفذ التسلسلي ، سنرى نتيجة الشريحة في الوقت الحقيقي.
في الصورة أدناه ، جهاز Arduino Pro Mini الخاص بي:
هل لديك التسوق لطيف!
التكلفة: ~ 29