ఈ ఆర్డునో ఆధారిత రియల్ టైమ్ క్లాక్ అనేది I2C ప్రోటోకాల్పై పనిచేసే RTC IC DS1307 ను ఉపయోగించి నిజ సమయాన్ని ప్రదర్శించడానికి ఒక డిజిటల్ గడియారం. రియల్ టైమ్ క్లాక్ అంటే విద్యుత్ వైఫల్యం తర్వాత కూడా ఇది నడుస్తుంది. శక్తి తిరిగి కనెక్ట్ అయినప్పుడు, ఇది ఆఫ్ స్టేట్లో ఉన్న సమయం మరియు వ్యవధికి రియల్ టైమ్ను ప్రదర్శిస్తుంది. ఈ ఆర్డునో అలారం క్లాక్ ప్రాజెక్ట్లో "గంట, నిమిషం, సెకన్లు, తేదీ, నెల మరియు సంవత్సరం" ఆకృతిలో సమయాన్ని ప్రదర్శించడానికి మేము 16x2 ఎల్సిడి మాడ్యూల్ని ఉపయోగించాము. అలారం ఎంపిక కూడా జోడించబడింది మరియు మేము అలారం సమయాన్ని సెటప్ చేయవచ్చు. అలారం సమయం ఆర్డ్యునో యొక్క అంతర్గత EEPROM లో సేవ్ చేయబడిన తర్వాత, రీసెట్ లేదా విద్యుత్ వైఫల్యం తర్వాత కూడా ఇది సేవ్ చేయబడుతుంది. రియల్ టైమ్ గడియారాలు సాధారణంగా మా కంప్యూటర్లు, ఇళ్ళు, కార్యాలయాలు మరియు ఎలక్ట్రానిక్స్ పరికరాల్లో వాటిని నిజ సమయంతో నవీకరించడానికి ఉపయోగిస్తారు.
I2C ప్రోటోకాల్ రెండు వైర్లను ఉపయోగించి రెండు లేదా అంతకంటే ఎక్కువ పరికరాలను ఒకే వ్యవస్థకు అనుసంధానించే పద్ధతి, కాబట్టి ఈ ప్రోటోకాల్ను రెండు వైర్ ప్రోటోకాల్ అని కూడా పిలుస్తారు. ఒకే పరికరం లేదా ప్రాసెసర్కు 127 పరికరాలను కమ్యూనికేట్ చేయడానికి దీనిని ఉపయోగించవచ్చు. చాలా I2C పరికరాలు 100Khz పౌన.పున్యంలో నడుస్తాయి.
డేటా రైటింగ్ మాస్టర్ నుండి బానిస కోసం దశలు (బానిస స్వీకరించే మోడ్)
- START కండిషన్ను బానిసకు పంపుతుంది.
- బానిసకు బానిస చిరునామాను పంపుతుంది.
- బానిసకు వ్రాసే బిట్ (0) పంపండి.
- బానిస నుండి ACK బిట్ పొందింది
- పదాల చిరునామాను బానిసకు పంపుతుంది.
- బానిస నుండి ACK బిట్ పొందింది
- డేటాను బానిసకు పంపుతుంది.
- బానిస నుండి ACK బిట్ పొందింది.
- చివరిది STOP కండిషన్ను బానిసకు పంపుతుంది.
బానిస నుండి మాస్టర్ వరకు డేటా పఠనం కోసం దశలు (స్లేవ్ ట్రాన్స్మిటింగ్ మోడ్)
- START కండిషన్ను బానిసకు పంపుతుంది.
- బానిసకు బానిస చిరునామాను పంపుతుంది.
- రీడ్ బిట్ (1) ను బానిసకు పంపండి.
- బానిస నుండి ACK బిట్ పొందింది
- బానిస నుండి డేటాను స్వీకరించారు
- బానిస నుండి ACK బిట్ పొందింది.
- STOP కండిషన్ను బానిసకు పంపుతుంది.
ఈ RTC DS1307 IC ఆధారిత డిజిటల్ గడియారాన్ని నిర్మించడానికి, మేము ఇక్కడ Arduino Pro Mini ని ఉపయోగించాము, కానీ మీరు Arduino Uno లేదా Arduino Nano వంటి ఇతర Arduino మోడల్ను కూడా ఉపయోగించవచ్చు. Arduino బోర్డు, DS1307 RTC IC తో పాటు, మేము సమయం మరియు తేదీని ప్రదర్శించడానికి 16x2 LCD మాడ్యూల్ను ఉపయోగించాము, ఒక క్రిస్టల్ ఓసియేలేటర్, 7805 వోల్టేజ్ రెగ్యులేటర్, ఒక బజర్ మరియు కొన్ని ట్రాన్సిస్టర్లు మరియు రెసిస్టర్లు.
సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ
ఈ ఆర్డునో ఆధారిత డిజిటల్ క్లాక్ సర్క్యూట్లో, మేము IC DS1307, Arduino Pro Mini Board మరియు 16x2 LCD మాడ్యూల్ అనే మూడు ప్రధాన భాగాలను ఉపయోగించాము.
ఇక్కడ ఆర్డునో ds1307 నుండి చదవడానికి సమయం ఉపయోగించబడుతుంది మరియు దానిని 16x2 LCD లో ప్రదర్శిస్తుంది. DS1307 arduino కు 2 పంక్తులను ఉపయోగించి సమయం / తేదీని పంపుతుంది. అలారం సూచిక కోసం కూడా ఒక బజర్ ఉపయోగించబడుతుంది, ఇది అలారం సక్రియం అయినప్పుడు బీప్ అవుతుంది. ఈ రియల్ టైమ్ క్లాక్ యొక్క పనిని అర్థం చేసుకోవడానికి ఒక బ్లాక్ రేఖాచిత్రం క్రింద చూపబడింది.
సర్క్యూట్ రేఖాచిత్రంలో మీరు చూడగలిగినట్లుగా, DS1307 చిప్ పిన్ SDA మరియు SCL డేటా మరియు గడియార రేఖల వద్ద డిఫాల్ట్ విలువ HIGH ని కలిగి ఉన్న పుల్ అప్ రెసిస్టర్తో ఆర్డునో పిన్స్ SDA మరియు SCL లతో అనుసంధానించబడి ఉన్నాయి. ఖచ్చితమైన 1 సెకండ్ ఆలస్యాన్ని ఉత్పత్తి చేయడానికి 32.768KHz క్రిస్టల్ ఓసిలేటర్ DS1307 చిప్తో అనుసంధానించబడి ఉంది, మరియు 3 వోల్ట్ బ్యాటరీ DS1307 యొక్క పిన్ 3 rd (BAT) కు కూడా అనుసంధానించబడి ఉంది, ఇది విద్యుత్ వైఫల్యం తర్వాత సమయం నడుస్తుంది. 16x2 LCD 4-బిట్ మోడ్లో arduino తో అనుసంధానించబడి ఉంది. కంట్రోల్ పిన్ RS, RW మరియు En నేరుగా ఆర్డునో పిన్ 2, జిఎన్డి మరియు 3 కి అనుసంధానించబడి ఉన్నాయి. మరియు డేటా పిన్ డి 0-డి 7 ఆర్డునో యొక్క 4, 5, 6, 7 కి అనుసంధానించబడి ఉంది. ఒక బజర్ అర్డునో పిన్ నంబర్ 13 తో NPN BC547 ట్రాన్సిస్టర్ ద్వారా దాని బేస్ వద్ద 1 k రెసిస్టర్ను కలిగి ఉంది.
క్రియాశీల తక్కువ మోడ్లో ఆర్డునో యొక్క 12, 11 మరియు 10 పిన్లకు అలారం సెట్ చేయడానికి సెట్ చేసిన మూడు బటన్లు, ఐఎన్సి మరియు నెక్స్ట్ ఉపయోగించబడతాయి. మేము సెట్ నొక్కినప్పుడు, అలారం సెట్ మోడ్ సక్రియం అవుతుంది మరియు ఇప్పుడు మనం INC బటన్ను ఉపయోగించి అలారం సెట్ చేయాలి మరియు తదుపరి బటన్ అంకెకు తరలించడానికి ఉపయోగించబడుతుంది. అలారంతో ఈ నిజ సమయ గడియారం యొక్క పూర్తి బ్రెడ్బోర్డ్ సెటప్ క్రింద ఉన్న చిత్రంలో చూపబడింది. మీరు AVR మైక్రోకంట్రోలర్తో డిజిటల్ అలారం గడియారంపై వివరణాత్మక ట్యుటోరియల్ను కూడా తనిఖీ చేయవచ్చు.
ప్రోగ్రామ్ వివరణ
ఈ నిజ సమయ గడియారం కోసం ప్రోగ్రామ్ చేయడానికి, మేము DS1307 నుండి సమయం / తేదీని సేకరించేందుకు మరియు LCD లో ప్రదర్శించడానికి కొన్ని లైబ్రరీలను ఉపయోగించాము, అవి క్రింద ఇవ్వబడ్డాయి:
మరియు RTC, LCD మరియు ఇన్పుట్ అవుట్పుట్ యొక్క ప్రారంభ సెటప్ లూప్లో నిర్వహిస్తారు.
చదవడానికి సమయం, అలారం సెట్ చేయడం వంటి మిగిలిన విషయాలు శూన్య లూప్ విభాగంలో నిర్వహించబడతాయి.