לוח המודולים Tiny RTC I2C התגלה כמכשיר שימושי מאוד. ברגע שאני מציג תמונה עם חיבור של שני שבבי מיקרו עם רצועה על הלוח, זה הופך להיות קצת לא נוח עם מספר החיבורים הלא אמינים. מודולי Tiny RTC I2C נוחים מאוד לשימוש לעבודה עם שבב השעון ds1307Z בזמן אמת עם ממשק I2C סדרתי, שבב זיכרון 24C32 עם ממשק I2C סדרתי, אפשרות להתקין חיישן טמפרטורה ds18b20. אתה יכול גם לקבל פולסים מלבניים מדויקים מהפלט השביעי של שבב ds1307Z, על המחבר הוא מסומן באותיות SQ. בלוח המעגלים של מודולי ה- RTC I2C Tiny קשה לראות שהסיכה השביעית של שבב ds1307Z מחוברת לפין השביעי של מחבר P1.
מודולי לוח RTC I2C זעיר סכמטי:
לפני הקנייה חיפשתי מידע באינטרנט. למדתי שהלוח נועד לעבוד עם סוללת ליתיום, שקשה לקנות. קונים לוח ה- Tiny RTC I2C Modules התקינו סוללת ליתיום במקום הסוללה, והלוח לא פעל נכון. המיקרו-מעגל צורך מעט כוח רב, כך שניתן להשתמש בלוח עם סוללת ליתיום. לשם כך, הסר את רכיבי הרדיו הבאים מלוח המודולים Tiny RTC I2C: דיודה D1, הנגד R4, והלחם את המגשר במקום ה- R6. הסרתי גם את הנגד R7, לאחר שהכרתי את המעגל האופייני להפעלת שבב ds1307.
מעגלי ds1307 אופייניים:
תוכלו ללמוד עוד על סיום לוח המודולים Tiny RTC I2C מתוך סרטון שהוקלט ופורסם ברשת על ידי החבר אלכסיי בוקרייב.
גליון הנתונים בשבב ds1307:
הצג קובץ מקוון:
הצג קובץ מקוון:
חיברתי את הלוח ארדואינו Pro Mini עם מודולי RTC I2C זעירים ו- Arduino Pro Mini עם מתאם סדרתי USB CH340G.
הפעל את הקוד כדי לקבוע את הכתובות של מעגלי המיקרו ds1307 ו- 24C32.
הקוד עצמו:
# כלול
מחרוזת מחרוזת אחת;
הגדרת ביטול ()
{
Wire.begin ();
Serial.begin (9600);
בזמן (! סידורי);
}
לולאה חלילה ()
{
שגיאת בתים, כתובת;
התקנים n int;
Serial.println ("סריקה ...");
מכשירים n = 0;
עבור (כתובת = 1; כתובת & lt; 127; כתובת ++)
{
Wire.beginTransmission (כתובת);
שגיאה = Wire.endTransmission ();
אם (שגיאה == 0)
{
String stringOne = מחרוזת (כתובת, HEX);
Serial.print ("0x"); Serial.print (stringOne); Serial.print ("-");
if (stringOne == "0A") Serial.println ("'נהג מנוע'");
if (stringOne == "0F") Serial.println ("'נהג מנוע'");
if (stringOne == "1D") Serial.println ("'ADXL345 קלט 3-ציר תאוצה דיגיטלית'");
if (stringOne == "1E") Serial.println ("'HMC5883 מצפן דיגיטלי 3 צירים'");
if (stringOne == "5A") Serial.println ("'חיישן מגע'");
if (stringOne == "5B") Serial.println ("'חיישן מגע'");
if (stringOne == "5C") Serial.println ("'חיישן אור דיגיטלי BH1750FVI' או 'חיישן מגע');
if (stringOne == "5D") Serial.println ("'חיישן מגע'");
if (stringOne == "20") Serial.println ("'PCF8574 8-Bit I / O Expander' או 'מתאם LCD LCM1602'");
if (stringOne == "21") Serial.println ("'PCF8574 8-Bit I / O Expander'");
if (stringOne == "22") Serial.println ("'PCF8574 8-Bit I / O Expander'");
if (stringOne == "23") Serial.println ("'PCF8574 8-Bit I / O Expander' או 'BH1750FVI חיישן אור דיגיטלי'");
if (stringOne == "24") Serial.println ("'PCF8574 8-Bit I / O Expander'");
if (stringOne == "25") Serial.println ("'PCF8574 8-Bit I / O Expander'");
if (stringOne == "26") Serial.println ("'PCF8574 8-Bit I / O Expander'");
if (stringOne == "27") Serial.println ("'PCF8574 8-Bit I / O Expander' או 'מתאם LCD LCM1602'");
if (stringOne == "39") Serial.println ("'חיישן אור הסביבה TSL2561'");
if (stringOne == "40") Serial.println ("'חיישן לחץ ברומטרי BMP180'");
if (stringOne == "48") Serial.println ("'מודול ADS1115 16-Bit'");
if (stringOne == "49") Serial.println ("'מודול ADS1115 16-bit' או 'SPI-to-UART'");
if (stringOne == "4A") Serial.println ("'מודול ADS1115 16-Bit'");
if (stringOne == "4B") Serial.println ("'מודול ADS1115 16-Bit'");
if (stringOne == "50") Serial.println ("'AT24C32 EEPROM'");
if (stringOne == "53") Serial.println ("'ADXL345 קלט 3-ציר תאוצה דיגיטלית'");
if (stringOne == "68") Serial.println ("'שעון בזמן אמת DS3231'");
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);
}
}
אם (nDevices == 0)
Serial.println ("לא נמצאו התקני I2C \ n");
אחר
Serial.println ("נעשה \ n");
עיכוב (5000);
}
לאחר הפעלת ה- Arduino IDE, בחירת הדגם של לוח הארדואינו, התקנת היציאה הסדרתית (יש לי com31) והעתקתי את הקוד שנמצא לעיל לחלון עם החלפת טקסט. התחלתי את הידור, בעוד ה- IDE של ארדואינו מבקש לשמור את תיקיית השרטוטים. לחץ על שמור וה- Arduino IDE ירכיב. אנו כותבים את התוכנית ללוח הארדואינו ובצג היציאה הסדרתית אנו רואים את הדברים הבאים:
לכן, דאגנו שהלוחות יהיו מחוברים נכון.
עכשיו, כדי לעבוד עם המיקרו-מעגל בזמן אמת (ds1307), עליך להתקין את הספרייה "הספריה האוניברסלית iarduino_RTC.zip"
קובץ: iarduino_RTC.zip ספריה אוניברסלית:
לאחר התקנת הספרייה והפעלה מחדש של ה- Arduino IDE, הפעל את הדוגמה gettime:
לאחר השלמת הקומפילציה, כתיבת התוכנית ללוח הארדואינו, בצג היציאה הסדרתית נראה את התוצאה של השבב בזמן אמת.
בתמונה למטה Arduino Pro Mini שלי:
קניות נעימות!
עלות: ~ 29