ಡಿಎಸ್ 3231: ನಿಮ್ಮ ಆರ್ಡುನೊಗಾಗಿ ನೈಜ ಸಮಯದ ಗಡಿಯಾರ ಮತ್ತು ಕ್ಯಾಲೆಂಡರ್

DS3231

ಕೆಲವು ಯೋಜನೆಗಳಲ್ಲಿ ಸಮಯ, ಗಂಟೆ ಅಥವಾ ದಿನಾಂಕದ ಪುರಾವೆ ಇರುವುದು ಅವಶ್ಯಕ. ಸಮಯದ ಆಧಾರದ ಮೇಲೆ ಕೆಲವು ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಅಗತ್ಯತೆ, ಘಟನೆಗಳು ಅಥವಾ ನೋಂದಣಿಯ ಕ್ಯಾಲೆಂಡರ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು, ಸಮಯವನ್ನು ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಇರಿಸಲು ಅಥವಾ ಡಿಜಿಟಲ್ ಗಡಿಯಾರವನ್ನು ರಚಿಸಲು ಆರ್ಡುನೊ ಜೊತೆ. ಜೊತೆ ಡಿಎಸ್ 3231 ನೀವು ಅದನ್ನು ಪಡೆಯಬಹುದು, ಇನ್ನೊಂದು ಘಟಕಗಳು ನಾವು ಪಟ್ಟಿಗೆ ಸೇರಿಸುತ್ತೇವೆ.

ಡಿಎಸ್ 3231 ನೀವು ಹುಡುಕುತ್ತಿದ್ದ ಮಾಡ್ಯೂಲ್ ಆಗಿದೆ, ಮತ್ತು ಅದರ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ ನಿಮಗೆ ಬೇಕಾದ ಎಲ್ಲವನ್ನೂ ಇಲ್ಲಿ ನೀವು ಕಾಣಬಹುದು ಮತ್ತು ಹೇಗೆ ಎಂಬುದರ ಉದಾಹರಣೆಯನ್ನು ಸಹ ನಾನು ನಿಮಗೆ ತೋರಿಸುತ್ತೇನೆ ಇದನ್ನು ಆರ್ಡುನೊದೊಂದಿಗೆ ಸಂಯೋಜಿಸಿ ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಯೊಂದಿಗೆ ...

ಡಿಎಸ್ 3231 ಎಂದರೇನು?

DS3231

ಮೊದಲನೆಯದಾಗಿ, ನೀವು ಏನು ತಿಳಿಯಬೇಕು ಆರ್ಟಿಸಿ (ರಿಯಲ್ ಟೈಮ್ ಕ್ಲಾಕ್), ಅಥವಾ ನೈಜ ಸಮಯದ ಗಡಿಯಾರ. ಈ ಚಿಪ್‌ಗಳು ಬಹುಸಂಖ್ಯೆಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಆಗಾಗ್ಗೆ ಕಂಡುಬರುತ್ತವೆ, ವಾಸ್ತವವಾಗಿ, ನಿಮ್ಮ ಪಿಸಿ ಅವುಗಳಲ್ಲಿ ಒಂದನ್ನು ನಿಮ್ಮ ಮದರ್‌ಬೋರ್ಡ್‌ನಲ್ಲಿ ಹೊಂದಿದೆ, ಮತ್ತು ಇದು ಸಹ ಒಂದು CR2032 ಬ್ಯಾಟರಿ ಸಹ. ಇದು BIOS / UEFI ನಲ್ಲಿ ಸಮಯ ಮತ್ತು ಸಂರಚನೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಸಮಯಕ್ಕೆ ಸರಿಯಾಗಿ ಬೂಟ್ ಮಾಡುವಾಗ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಅದನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ (ಈಗಲೂ, ಇಂಟರ್ನೆಟ್‌ನೊಂದಿಗೆ, ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಅನ್ನು ಹೆಚ್ಚಿನ ನಿಖರತೆಗಾಗಿ ಬಳಸಬಹುದು, ಆದರೆ ಇದು ಮತ್ತೊಂದು ಕಥೆ…).

ಆರ್ಟಿಸಿ ಏನು ಮಾಡುತ್ತದೆ ಎಂದರೆ ಸಮಯದ ಅಳತೆಗಳನ್ನು ಪಡೆಯುವುದು, ಅದು ಸರಳವಾಗಿದೆ. ಇತರ ರೀತಿಯ ಎಲೆಕ್ಟ್ರಾನಿಕ್ ಕೈಗಡಿಯಾರಗಳ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಅವು ಸರಳವಾಗಿ ಸಮಯವನ್ನು ಅಳೆಯಿರಿ, ಮತ್ತು ಗಡಿಯಾರ ಸಿಗ್ನಲ್ ದ್ವಿದಳ ಧಾನ್ಯಗಳನ್ನು ಎಣಿಸುವ ಮೂಲಕ, ಅದರ ಆವರ್ತನ ಮತ್ತು ಅವಧಿಗಳನ್ನು ತಿಳಿದುಕೊಳ್ಳುವ ಮೂಲಕ ಅದು ಹಾಗೆ ಮಾಡುತ್ತದೆ. ಸಮಯಕ್ಕೆ ಹೆಚ್ಚುವರಿಯಾಗಿ, ದಿನಗಳು, ವಾರಗಳು, ತಿಂಗಳುಗಳು ಮತ್ತು ವರ್ಷಗಳ ಖಾತೆಯನ್ನು ಇಡಲು ಆರ್‌ಟಿಸಿ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅಂದರೆ, ಪೂರ್ಣ ದಿನಾಂಕ ...

ಇದು ಸಾಧ್ಯವಾಗಬೇಕಾದರೆ, ಆರ್‌ಟಿಸಿಯು ಎ Xtal ಅಥವಾ ಸ್ಫಟಿಕ ಸ್ಫಟಿಕ ಇದು ಆವರ್ತನವನ್ನು ಒದಗಿಸುವ ಅನುರಣಕವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ದಿನಾಂಕವನ್ನು ಎಣಿಕೆ ಮತ್ತು ಸ್ಮರಣೆಯಲ್ಲಿ ಸಂಗ್ರಹಿಸುವ ಸಾಮರ್ಥ್ಯವಿರುವ ಎಲೆಕ್ಟ್ರಾನಿಕ್ ಸರ್ಕ್ಯೂಟ್ರಿ ನಿಮಗೆ ಬೇಕಾಗುತ್ತದೆ. ಸರ್ಕ್ಯೂಟ್ರಿ ಸೆಕೆಂಡುಗಳು, ನಿಮಿಷಗಳು, ಗಂಟೆಗಳು, ದಿನಗಳು, ವಾರಗಳು, ತಿಂಗಳುಗಳು ಮತ್ತು ವರ್ಷಗಳನ್ನು ಎಣಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿರಬೇಕು.

ಯುರೋಪಿಯನ್ ಮೆಮೊರಿ ಬಾಷ್ಪಶೀಲವಾಗಿದೆಅದಕ್ಕಾಗಿಯೇ ಸ್ಥಿರ ಶಕ್ತಿಯನ್ನು ಹೊಂದಲು ಬ್ಯಾಟರಿಯ ಅಗತ್ಯವಿದೆ. ನಿಮ್ಮ ಬಳಿ ಬ್ಯಾಟರಿ ಇಲ್ಲದಿದ್ದರೆ ಅಥವಾ ಅದು ಖಾಲಿಯಾಗಿದ್ದರೆ, ಅದು ಅಳಿಸಲ್ಪಡುತ್ತದೆ ... ಬ್ಯಾಟರಿ ಖಾಲಿಯಾದಾಗ ಪಿಸಿಗಳಿಗೆ ಏನಾಗುತ್ತದೆ, ಅವು ತಪ್ಪಾದ ಸಮಯವನ್ನು ನೀಡುತ್ತವೆ. ಪಿಸಿ ಆನ್ ಆಗಿರುವಾಗ ನೀವು ಅದನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿದರೆ, ಸಮಯವನ್ನು ಇಡಲಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ಆರ್‌ಟಿಸಿ ಚಾಲಿತವಾಗುತ್ತಿದೆ, ಆದರೆ ಬ್ಯಾಟರಿ ಅಗತ್ಯವಿರುವಾಗ ಅದು ಆಫ್ ಆಗಿರುವ ಪ್ರಕ್ರಿಯೆಗಳಲ್ಲಿ ಇದು ...

DIY ಯೋಜನೆಗಳಿಗಾಗಿ, ತಯಾರಕರು ಸಾಮಾನ್ಯವಾಗಿ ಎರಡು ಸಾಮಾನ್ಯ ಆರ್‌ಟಿಸಿ ಚಿಪ್‌ಗಳನ್ನು ಬಳಸುತ್ತಾರೆ, ಅವುಗಳು ಡಿಎಸ್ 1307 ಮತ್ತು ಡಿಎಸ್ 3231. ಇವೆರಡನ್ನೂ ಮ್ಯಾಕ್ಸಿಮ್ (ಹಿಂದೆ ಡಲ್ಲಾಸ್ ಸೆಮಿಕಂಡಕ್ಟರ್) ತಯಾರಿಸಿದ್ದಾರೆ, ಮತ್ತು ಡಿಎಸ್ 3231 ಈ ಎರಡರಲ್ಲಿ ಹೆಚ್ಚು ನಿಖರವಾಗಿದೆ, ಏಕೆಂದರೆ ಇದು ಮೊದಲಿನಂತೆ ತಾಪಮಾನ ವ್ಯತ್ಯಾಸಗಳಿಂದ ಪ್ರಭಾವಿತವಾಗುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ಇದು ತಾಪಮಾನವನ್ನು ಅವಲಂಬಿಸಿ ಹೆಚ್ಚು ಏರಿಳಿತಗೊಳ್ಳುವುದಿಲ್ಲ ಮತ್ತು ಅದು ಸಮಯವನ್ನು ಹೆಚ್ಚು ನಿಖರವಾಗಿ ಇಡುತ್ತದೆ.

ಕೆಲವೊಮ್ಮೆ, ಗಮನಾರ್ಹ ತಾಪಮಾನ ವ್ಯತ್ಯಾಸಗಳೊಂದಿಗೆ, ಡಿಎಸ್ 1307 ದಿನಕ್ಕೆ 1 ಅಥವಾ 2 ನಿಮಿಷದಷ್ಟು ವಿಳಂಬವಾಗಬಹುದು. ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಅಸಹನೀಯ ಏನೋ.

ಡಿಎಸ್ 3231 ಇದು ವ್ಯತ್ಯಾಸಗಳಿಂದ ಪ್ರಭಾವಿತವಾಗುವುದಿಲ್ಲ, ಆದರೆ 2 ಪಿಪಿಎಂನ ನಿಖರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಇದು ಅಂತರ್ನಿರ್ಮಿತ ತಾಪಮಾನ ಮಾಪನ ಮತ್ತು ಪರಿಹಾರ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಹೊಂದಿದೆ, ಅದು a ಗೆ ಸಮಾನವಾಗಿರುತ್ತದೆ ಸಮಯ ವಿಳಂಬ ದಿನಕ್ಕೆ ಸುಮಾರು 172 ಮಿ.ಮೀ., ಅಂದರೆ, ವಾರಕ್ಕೆ 1 ಸೆಕೆಂಡ್‌ಗಿಂತ ಸ್ವಲ್ಪ ಹೆಚ್ಚು. ಮತ್ತು ಪ್ರಾಯೋಗಿಕವಾಗಿ, ಅವು ಸಾಮಾನ್ಯವಾಗಿ ತಿಂಗಳಿಗೆ 1 ಅಥವಾ 2 ಸೆಕೆಂಡುಗಳು ಮಾತ್ರ ಬದಲಾಗುತ್ತವೆ.

ದಾರಿಯಂತೆ ಆರ್ಟಿಸಿಯೊಂದಿಗೆ ಸಂವಹನ ಅದು ಪಡೆಯುವ ದಿನಾಂಕ ಮೌಲ್ಯಗಳನ್ನು ಪಡೆಯಲು ಡಿಎಸ್ 3131, ಇದನ್ನು ಮಾಡಲಾಗುತ್ತದೆ ಐ 2 ಸಿ ಬಸ್. ಮತ್ತು ಶಕ್ತಿಗಾಗಿ, ನೀವು ಡಿಎಸ್ 2.3 ಗಾಗಿ 5.5 ರಿಂದ 3231 ವಿ ಅನ್ನು ಬಳಸಬಹುದು, ಇದು ಡಿಎಸ್ 4.5 ಗಾಗಿ 5.5 ರಿಂದ 1307 ವಿ ಗಿಂತ ಸ್ವಲ್ಪ ಕಡಿಮೆಯಾಗಿದೆ, ಆದ್ದರಿಂದ ಇದು ಹೆಚ್ಚು ಶಕ್ತಿಯ ದಕ್ಷತೆಯನ್ನು ಹೊಂದಿರುತ್ತದೆ ಮತ್ತು ಬ್ಯಾಟರಿಯನ್ನು ಹೆಚ್ಚು ಕಾಲ ಉಳಿಯುವಂತೆ ಮಾಡುತ್ತದೆ.

ಅಲ್ಲದೆ, ಈ ಮಾಡ್ಯೂಲ್‌ಗಳು ಸಾಮಾನ್ಯವಾಗಿ a ಅನ್ನು ಹೊಂದಿರುತ್ತವೆ ಎಂದು ನೀವು ತಿಳಿದಿರಬೇಕು ಸಂಗ್ರಹಣೆಯ EEPROM ಹೆಚ್ಚುವರಿ AT24C32 ಕೆಲವು ದಾಖಲೆಗಳು ಮತ್ತು ಹಿಂದಿನ ಅಳತೆಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು, ಇದು ಸಾಕಷ್ಟು ಪ್ರಾಯೋಗಿಕವಾಗಿದೆ.

ಎಪ್ಲಾಸಿಯಾನ್ಸ್

ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, ಆರ್ಡುನೊ ಜೊತೆ ಗಡಿಯಾರವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವಂತಹ ಕೆಲವು ವ್ಯವಸ್ಥೆಯನ್ನು ನಾನು ಈಗಾಗಲೇ ಪ್ರಸ್ತಾಪಿಸಿದ್ದೇನೆ ಸಮಯ ಏನೇ ಇರಲಿ, ಪಿಸಿಗಳು ಮತ್ತು ಇತರ ಹಲವು ಎಲೆಕ್ಟ್ರಾನಿಕ್ ಸಾಧನಗಳು ಮತ್ತು ಸಮಯವನ್ನು ಹೊಂದಿರುವ ಉಪಕರಣಗಳಲ್ಲಿ ಸಮಯವನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲು.

ಇದನ್ನು ಸಹ ಬಳಸಬಹುದು ಯೋಜನೆಗಳು ಬೆಳಕು, ನೀರಾವರಿ ವ್ಯವಸ್ಥೆಗಳು, ಡಾಟಾಲೋಜರ್, ಇತ್ಯಾದಿಗಳಿಗಾಗಿ ಟೈಮರ್‌ಗಳನ್ನು ರಚಿಸಲು. ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಹೆಚ್ಚು ಸಂಖ್ಯೆಯಲ್ಲಿರಬಹುದು ...

ಆರ್‌ಟಿಸಿ ಡಿಎಸ್ 3231 ಖರೀದಿಸಿ

ಮಾಡ್ಯೂಲ್ ಡಿಎಸ್ 3131 ಅಗ್ಗವಾಗಿದೆ, ಮತ್ತು ನೀವು ಅದನ್ನು ಕೆಲವು ವಿಶೇಷ ಎಲೆಕ್ಟ್ರಾನಿಕ್ಸ್ ಅಂಗಡಿಗಳಲ್ಲಿ ಅಥವಾ ಇಬೇ, ಅಲಿಎಕ್ಸ್ಪ್ರೆಸ್, ಅಮೆಜಾನ್ ಮುಂತಾದ ದೊಡ್ಡ ಅಂಗಡಿಗಳಲ್ಲಿ ಕಾಣಬಹುದು. ಒಂದನ್ನು ಹೊಂದಲು ನೀವು ಆಸಕ್ತಿ ಹೊಂದಿದ್ದರೆ, ಕೆಲವು ಶಿಫಾರಸುಗಳು ಇಲ್ಲಿವೆ:

ಡಿಎಸ್ 3231 ಆರ್ಡುನೊ ಇಂಟಿಗ್ರೇಷನ್

ಆರ್ಡುನೊ IDE ಯ ಸ್ಕ್ರೀನ್‌ಶಾಟ್

ನಿಮಗೆ ಬೇಕಾದರೆ ನಿಮ್ಮ DS3231 ಅನ್ನು ನಿಮ್ಮ Arduino ಬೋರ್ಡ್‌ನೊಂದಿಗೆ ಸಂಯೋಜಿಸಿ ಮತ್ತು "ಸಮಯ ಮೀರಿದ" ಯೋಜನೆಗಳನ್ನು ರಚಿಸಲು ಪ್ರಾರಂಭಿಸಿ, ನೀವು ಮೊದಲು ಸೂಕ್ತವಾದ ಸಂಪರ್ಕಗಳನ್ನು ಮಾಡಬೇಕು. ಅದನ್ನು ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುವಂತೆ, ಇದು ಸರಳವಾಗಿದೆ:

  • ಡಿಎಸ್ 3231 ಬೋರ್ಡ್‌ನ ಎಸ್‌ಎಲ್‌ಸಿ ಪಿನ್ ಅನ್ನು ನಿಮ್ಮ ಎ 5 ಗೆ ಸಂಪರ್ಕಿಸಬೇಕು Arduino UNO.
  • ಡಿಎಸ್ 3231 ರ ಎಸ್‌ಡಿಎ ಅರ್ಡುನೊದ ಎ 4 ಗೆ ಸಂಪರ್ಕ ಹೊಂದಿದೆ.
  • ಮಾಡ್ಯೂಲ್ನಿಂದ Vcc Arduino ನಿಂದ 5V ಗೆ ಹೋಗುತ್ತದೆ.
  • ಜಿಎನ್‌ಡಿ ಟು ಜಿಎನ್‌ಡಿ.
ನಿಮ್ಮ ಆರ್ಡುನೊ ಐಡಿಇಯಲ್ಲಿ ಆರ್ಟಿಸಿ ಡಿಎಸ್ 3231 ಅನ್ನು ಬಳಸಲು ಲೈಬ್ರರಿಯನ್ನು ಸ್ಥಾಪಿಸಲು ಮರೆಯದಿರಿ ಅಥವಾ ಕೋಡ್ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ ...

ಈಗ ನೀವು ಸಿಸ್ಟಮ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಿದ್ದೀರಿ, ಮುಂದಿನ ವಿಷಯವೆಂದರೆ ಬರೆಯುವುದು ಮೂಲ ಕೋಡ್ ಸ್ಕೆಚ್ ಮಾಡಿ ಅದನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡಲು. ನೀವು ಕೋಡ್‌ಗಳನ್ನು ಮಾರ್ಪಡಿಸಬಹುದು ಮತ್ತು ಅವುಗಳನ್ನು ನಿಮ್ಮ ಅಗತ್ಯಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳಬಹುದು, ಆದರೆ ಆರ್ಡುನೊಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವ ಆರ್‌ಟಿಸಿ ಡಿಎಸ್ 3231 ನಿಂದ ದಿನಾಂಕವನ್ನು ಪಡೆಯುವ ಮೂಲಕ ನೀವು ಪ್ರಾರಂಭಿಸಬಹುದು:

#include <Wire.h>
#include "RTClib.h"
 
// RTC_DS1307 rtc;
RTC_DS3231 rtc;
 
String daysOfTheWeek[7] = { "Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado" };
String monthsNames[12] = { "Enero", "Febrero", "Marzo", "Abril", "Mayo",  "Junio", "Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre" };
 
void setup() {
   Serial.begin(9600);
   delay(1000); 
 
   if (!rtc.begin()) {
      Serial.println(F("No se encuentra el RTC"));
      while (1);
   }
 
   // Si se ha perdido el suministro eléctrico, fijar fecha y hora
   if (rtc.lostPower()) {
      // Fijar a fecha y hora (poner la de compilación del sketch)
      rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
      
      // Fijar a fecha y hora específica. En este ejemplo el 2021-01-01 a las 00:00:00
      // rtc.adjust(DateTime(2020, 1, 1, 0, 0, 0));
   }
}
//Imprimir completa obtenida la fecha en decimal
void printDate(DateTime date)
{
   Serial.print(date.year(), DEC);
   Serial.print('/');
   Serial.print(date.month(), DEC);
   Serial.print('/');
   Serial.print(date.day(), DEC);
   Serial.print(" (");
   Serial.print(daysOfTheWeek[date.dayOfTheWeek()]);
   Serial.print(") ");
   Serial.print(date.hour(), DEC);
   Serial.print(':');
   Serial.print(date.minute(), DEC);
   Serial.print(':');
   Serial.print(date.second(), DEC);
   Serial.println();
}
 
void loop() {
   // Obtener fecha actual y mostrar por Serial
   DateTime now = rtc.now();
   printDate(now);
 
   delay(3000);    //Espera 3 segundos
}

ಮತ್ತು ಆರ್‌ಟಿಸಿ ದಿನಾಂಕವನ್ನು ಬಳಸಲು ಕೆಲವು ಕಾರ್ಯವನ್ನು ನಿಗದಿಪಡಿಸಿಉದಾಹರಣೆಗೆ, ದೀಪಗಳನ್ನು ಆನ್ ಅಥವಾ ಆಫ್ ಮಾಡುವುದು, ಸ್ವಯಂಚಾಲಿತ ನೀರುಹಾಕುವುದು ಅಥವಾ ಅಲಾರಂ ಶಬ್ದ ಮಾಡುವುದು ಇತ್ಯಾದಿ. ಹೆಚ್ಚಿನ ವೋಲ್ಟೇಜ್ ಸಾಧನಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನೀವು ಟ್ರಾನ್ಸಿಸ್ಟರ್‌ಗಳನ್ನು ಬಳಸಬಹುದು ಅಥವಾ ನೆನಪಿಡಿ ರಿಲೇ:

#include <Wire.h>
#include "RTClib.h"
 
const int outputPin = LED_BUILTIN;
bool state = false;
 
// RTC_DS1307 rtc;
RTC_DS3231 rtc;
 
void setup() {
   Serial.begin(9600);
   delay(1000);
 
   if (!rtc.begin()) {
      Serial.println(F("Couldn't find RTC"));
      while (1);
   }
 
   if (rtc.lostPower()) {
      rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
   }
}
 
// Se comprueba si está programado el encendido
bool isScheduledON(DateTime date)
{
   int weekDay = date.dayOfTheWeek();
   float hours = date.hour() + date.minute() / 60.0;
 
   // Configuración de horas de 08:30 a 9:30 y de 22:00 a 23:00 (usando decimal)
   bool hourCondition = (hours > 8.50 && hours < 9.50) || (hours > 22.00 && hours < 23.00);
 
   // Configuración del día Lunes, Sábado y Domingo con números (recuerda que en inglés comienza la semana en Domingo=0, Lunes=1,...
   bool dayCondition = (weekDay == 1 || weekDay == 6 || weekDay == 0); 
   if (hourCondition && dayCondition)
   {
      return true;
   }
   return false;
}
 
void loop() {
   DateTime now = rtc.now();
 
   if (state == false && isScheduledON(now))      // Apagado
   {
      digitalWrite(outputPin, HIGH);
      state = true;
      Serial.print("Activado");
   }
   else if (state == true && !isScheduledON(now))  // Encendido
   {
      digitalWrite(outputPin, LOW);
      state = false;
      Serial.print("Desactivado");
   }
 
   delay(3000);
}


ಕಾಮೆಂಟ್ ಮಾಡಲು ಮೊದಲಿಗರಾಗಿರಿ

ನಿಮ್ಮ ಅಭಿಪ್ರಾಯವನ್ನು ಬಿಡಿ

ನಿಮ್ಮ ಈಮೇಲ್ ವಿಳಾಸ ಪ್ರಕಟವಾದ ಆಗುವುದಿಲ್ಲ. ಅಗತ್ಯವಿರುವ ಜಾಗ ಗುರುತಿಸಲಾಗಿದೆ *

*

*

  1. ಡೇಟಾಗೆ ಜವಾಬ್ದಾರಿ: ಮಿಗುಯೆಲ್ ಏಂಜೆಲ್ ಗಟಾನ್
  2. ಡೇಟಾದ ಉದ್ದೇಶ: ನಿಯಂತ್ರಣ SPAM, ಕಾಮೆಂಟ್ ನಿರ್ವಹಣೆ.
  3. ಕಾನೂನುಬದ್ಧತೆ: ನಿಮ್ಮ ಒಪ್ಪಿಗೆ
  4. ಡೇಟಾದ ಸಂವಹನ: ಕಾನೂನುಬದ್ಧ ಬಾಧ್ಯತೆಯನ್ನು ಹೊರತುಪಡಿಸಿ ಡೇಟಾವನ್ನು ಮೂರನೇ ವ್ಯಕ್ತಿಗಳಿಗೆ ಸಂವಹನ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
  5. ಡೇಟಾ ಸಂಗ್ರಹಣೆ: ಆಕ್ಸೆಂಟಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು (ಇಯು) ಹೋಸ್ಟ್ ಮಾಡಿದ ಡೇಟಾಬೇಸ್
  6. ಹಕ್ಕುಗಳು: ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನೀವು ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು, ಮರುಪಡೆಯಬಹುದು ಮತ್ತು ಅಳಿಸಬಹುದು.