- అవసరమైన పదార్థాలు:
- సర్క్యూట్ రేఖాచిత్రం:
- స్కీమాటిక్స్ మరియు వివరణ:
- అర్థం చేసుకోవడం
- ఆర్డునోలో పియానో టోన్లను ప్లే చేయడం:
- ప్రోగ్రామింగ్ ది ఆర్డునో:
- ప్లే, రికార్డ్, రీప్లే మరియు రిపీట్! :
ఎలక్ట్రానిక్స్ నేపథ్యం లేని వ్యక్తులు వస్తువులను సులభంగా నిర్మించటానికి ఆర్డునో ఒక వరం. ఇది గొప్ప ప్రోటోటైపింగ్ సాధనంగా ఉంది లేదా ఏదైనా చల్లగా ప్రయత్నించండి, ఈ ప్రాజెక్ట్లో మేము ఆర్డునోను ఉపయోగించి చిన్న మరియు సరదా పియానోను నిర్మించబోతున్నాము . ఈ పియానో కేవలం 8 పుష్ బటన్లు మరియు బజర్తో చాలా సరళంగా ఉంటుంది. ఇది స్పీకర్పై వివిధ రకాల పియానో నోట్లను సృష్టించడానికి ఆర్డునో యొక్క టోన్ () ఫంక్షన్ను ఉపయోగిస్తుంది. మేము ప్రాజెక్ట్లో రికార్డింగ్ ఫీచర్ను జోడించిన కొంచెం మసాలా చేయడానికి, ఇది ట్యూన్ రికార్డ్ను ప్లే చేయడానికి మరియు అవసరమైనప్పుడు మళ్లీ మళ్లీ ప్లే చేయడానికి మాకు సహాయపడుతుంది. ఆసక్తికరంగా అనిపిస్తుంది !! కాబట్టి 'భవనం పొందండి….
అవసరమైన పదార్థాలు:
- ఆర్డునో యునో
- 16 * 2 ఎల్సిడి డిస్ప్లే
- బజర్
- ట్రిమ్మర్ 10 కె
- SPDT స్విచ్
- పుష్ బటన్ (8 సంఖ్యలు)
- రెసిస్టర్లు (10 కె, 560 ఆర్, 1.5 కె, 2.6 కె, 3.9, 5.6 కె, 6.8 కె, 8.2 కె, 10 కె)
- బ్రెడ్బోర్డ్
- వైర్లను కనెక్ట్ చేస్తోంది
సర్క్యూట్ రేఖాచిత్రం:
పూర్తి ఆర్డునో పియానో ప్రాజెక్ట్ను కొన్ని కనెక్ట్ చేసే వైర్లతో బ్రెడ్బోర్డ్ పైన నిర్మించవచ్చు. ప్రాజెక్ట్ యొక్క బ్రెడ్బోర్డ్ వీక్షణను చూపించే ఫ్రిట్జింగ్ ఉపయోగించి తయారు చేసిన సర్క్యూట్ రేఖాచిత్రం క్రింద చూపబడింది
సర్క్యూట్ రేఖాచిత్రాన్ని అనుసరించండి మరియు తదనుగుణంగా వైర్లను కనెక్ట్ చేయండి, పిసిబి మాడ్యూల్తో ఉపయోగించిన పుష్ బటన్లు మరియు బజర్ కానీ వాస్తవ హార్డ్వేర్లో మేము స్విచ్ మరియు బజర్లను మాత్రమే ఉపయోగించాము, అవి మిమ్మల్ని చాలా గందరగోళానికి గురిచేయకూడదు ఎందుకంటే అవి ఒకే రకమైన పిన్ అవుట్ కలిగి ఉంటాయి. మీ కనెక్షన్లను చేయడానికి మీరు హార్డ్వేర్ యొక్క దిగువ చిత్రాన్ని కూడా చూడవచ్చు.
ఎడమ నుండి రెసిస్టర్ల విలువ క్రింది క్రమంలో ఉంది, 10 కె, 560 ఆర్, 1.5 కె, 2.6 కె, 3.9, 5.6 కె, 6.8 కె, 8.2 కె మరియు 10 కె. మీకు అదే DPST స్విచ్ లేకపోతే, పై సర్క్యూట్ రేఖాచిత్రంలో చూపిన విధంగా మీరు సాధారణ టోగుల్ స్విచ్ను ఉపయోగించవచ్చు. ఇప్పుడు మేము ఈ క్రింది కనెక్షన్లను ఎందుకు చేసామో అర్థం చేసుకోవడానికి ప్రాజెక్ట్ యొక్క స్కీమాటిక్స్ గురించి పరిశీలిద్దాం.
స్కీమాటిక్స్ మరియు వివరణ:
పైన చూపిన సర్క్యూట్ రేఖాచిత్రం యొక్క స్కీమాటిక్స్ క్రింద ఇవ్వబడింది, ఇది ఫ్రిట్జింగ్ ఉపయోగించి కూడా తయారు చేయబడింది.
మనం అర్థం చేసుకోవలసిన ఒక ప్రధాన కనెక్షన్ ఏమిటంటే, మేము 8 పుష్ బటన్లను అనలాగ్ A0 పిన్ ద్వారా ఆర్డునోకు ఎలా కనెక్ట్ చేసాము. ప్రాథమికంగా మనకు 8 ఇన్పుట్ పిన్లు అవసరం, వీటిని 8 ఇన్పుట్ పుష్ బటన్లతో అనుసంధానించవచ్చు, కాని ఇలాంటి ప్రాజెక్టుల కోసం మనం మైక్రోకంట్రోలర్ యొక్క 8 పిన్లను పుష్ బటన్ల కోసం ఉపయోగించలేము, ఎందుకంటే తరువాత ఉపయోగం కోసం మనకు అవి అవసరం కావచ్చు. మా విషయంలో ఎల్సిడి డిస్ప్లేను ఇంటర్ఫేస్ చేయాలి.
కాబట్టి మేము ఆర్డునో యొక్క అనలాగ్ పిన్ను ఉపయోగిస్తాము మరియు సర్క్యూట్ పూర్తి చేయడానికి వివిధ రెసిస్టర్ విలువలతో సంభావ్య డివైడర్ను ఏర్పరుస్తాము. ఈ విధంగా ప్రతి బటన్ నొక్కినప్పుడు వేరే అనలాగ్ వోల్టేజ్ అనలాగ్ పిన్కు సరఫరా చేయబడుతుంది. రెండు రెసిస్టర్లు మరియు రెండు పుష్ బటన్లతో కూడిన నమూనా సర్క్యూట్ క్రింద చూపబడింది.
ఈ సందర్భంలో పుష్ బటన్లు నొక్కినప్పుడు ADC పిన్ + 5 వి అందుకుంటుంది, మొదటి బటన్ నొక్కితే 560R రెసిస్టర్ ద్వారా సంభావ్య డివైడర్ పూర్తవుతుంది మరియు రెండవ బటన్ నొక్కితే సంభావ్య డివైడర్ 1.5 ఉపయోగించి పోటీపడుతుంది k రెసిస్టర్. ఈ విధంగా ADC పిన్ అందుకున్న వోల్టేజ్ సంభావ్య డివైడర్ యొక్క సూత్రాల ఆధారంగా మారుతుంది. సంభావ్య డివైడర్ ఎలా పనిచేస్తుందో మరియు ADC పిన్ అందుకున్న వోల్టేజ్ విలువను ఎలా లెక్కించాలో మీరు మరింత తెలుసుకోవాలనుకుంటే, మీరు ఈ సంభావ్య డివైడర్ కాలిక్యులేటర్ పేజీని ఉపయోగించవచ్చు.
ఇది కాక అన్ని కనెక్షన్లు నేరుగా ముందుకు ఉంటాయి, ఎల్సిడి పిన్స్ 8, 9, 10, 11 మరియు 12 లకు అనుసంధానించబడి ఉంది. బజర్ పిన్ 7 కి అనుసంధానించబడి ఉంది మరియు ఎస్పిడిటి స్విచ్ ఆర్డునో యొక్క పిన్ 6 కి అనుసంధానించబడి ఉంది. ల్యాప్టాప్ యొక్క యుఎస్బి పోర్ట్ ద్వారా పూర్తి ప్రాజెక్ట్ శక్తిని పొందుతుంది. మీరు DC జాక్ ద్వారా Arduino ని 9V లేదా 12V సరఫరాకు కనెక్ట్ చేయవచ్చు మరియు ప్రాజెక్ట్ ఇప్పటికీ అదే విధంగా పనిచేస్తుంది.
అర్థం చేసుకోవడం
ఆర్డునో ఒక సులభ టోన్ () ఫంక్షన్ను కలిగి ఉంది, ఇది బజర్ను ఉపయోగించి వేర్వేరు శబ్దాలను ఉత్పత్తి చేయడానికి ఉపయోగపడే వివిధ ఫ్రీక్వెన్సీ సిగ్నల్లను రూపొందించడానికి ఉపయోగపడుతుంది. కాబట్టి ఫంక్షన్ ఎలా పనిచేస్తుందో మరియు దానిని ఆర్డునోతో ఎలా ఉపయోగించవచ్చో అర్థం చేసుకుందాం.
దీనికి ముందు పిజో బజర్ ఎలా పనిచేస్తుందో తెలుసుకోవాలి. మేము మా పాఠశాలలో పిజో స్ఫటికాల గురించి నేర్చుకున్నాము, ఇది యాంత్రిక ప్రకంపనలను విద్యుత్తుగా లేదా దీనికి విరుద్ధంగా మార్చే క్రిస్టల్ తప్ప మరొకటి కాదు. ఇక్కడ మనం వేరియబుల్ కరెంట్ (ఫ్రీక్వెన్సీ) ను వర్తింపజేస్తాము, దీని కోసం క్రిస్టల్ కంపించే విధంగా ధ్వనిని ఉత్పత్తి చేస్తుంది. అందువల్ల పిజో బజర్ను కొంత శబ్దం చేయడానికి మనం పిజో ఎలక్ట్రిక్ క్రిస్టల్ను కంపించేలా చేయాలి, పిచ్ మరియు శబ్దం యొక్క స్వరం క్రిస్టల్ ఎంత వేగంగా కంపిస్తుంది అనే దానిపై ఆధారపడి ఉంటుంది. అందువల్ల ప్రస్తుత పౌన frequency పున్యాన్ని మార్చడం ద్వారా టోన్ మరియు పిచ్ను నియంత్రించవచ్చు.
సరే, కాబట్టి మనం ఆర్డునో నుండి వేరియబుల్ ఫ్రీక్వెన్సీని ఎలా పొందగలం? ఇక్కడే టోన్ () ఫంక్షన్ వస్తుంది. టోన్ () ఒక నిర్దిష్ట పిన్పై నిర్దిష్ట ఫ్రీక్వెన్సీని ఉత్పత్తి చేస్తుంది. అవసరమైతే సమయ వ్యవధిని కూడా పేర్కొనవచ్చు. టోన్ () కోసం వాక్యనిర్మాణం
సింటాక్స్ టోన్ (పిన్, ఫ్రీక్వెన్సీ) టోన్ (పిన్, ఫ్రీక్వెన్సీ, వ్యవధి) పారామితులు పిన్: టోన్ ఫ్రీక్వెన్సీని ఉత్పత్తి చేసే పిన్: హెర్ట్జ్లోని టోన్ యొక్క ఫ్రీక్వెన్సీ - సంతకం చేయని పూర్ణాంక వ్యవధి: మిల్లీసెకన్లలో టోన్ యొక్క వ్యవధి (ఐచ్ఛిక 1) - సంతకం చేయని పొడవు
పిన్ యొక్క విలువలు మీ డిజిటల్ పిన్లో ఏదైనా కావచ్చు. నేను ఇక్కడ పిన్ నంబర్ 8 ను ఉపయోగించాను. ఉత్పత్తి చేయగల ఫ్రీక్వెన్సీ మీ ఆర్డునో బోర్డులోని టైమర్ పరిమాణంపై ఆధారపడి ఉంటుంది. UNO మరియు ఇతర సాధారణ బోర్డులకు ఉత్పత్తి చేయగల కనీస పౌన frequency పున్యం 31Hz మరియు ఉత్పత్తి చేయగల గరిష్ట పౌన frequency పున్యం 65535Hz. అయితే మనం మానవులు 2000Hz మరియు 5000 Hz మధ్య పౌన encies పున్యాలను మాత్రమే వినగలం.
ఆర్డునోలో పియానో టోన్లను ప్లే చేయడం:
సరే, నేను ఈ అంశంపై ప్రారంభించటానికి ముందే నేను సంగీత గమనికలు లేదా పియానోతో అనుభవశూన్యుడు అని స్పష్టం చేద్దాం, కాబట్టి దయచేసి ఈ శీర్షిక క్రింద పేర్కొన్న ఏదైనా ఉబ్బెత్తుగా ఉంటే నన్ను క్షమించు.
మేము కొన్ని శబ్దాలను ఉత్పత్తి చేయడానికి ఆర్డునోలోని టోన్ల పనితీరును ఉపయోగించవచ్చని ఇప్పుడు మనకు తెలుసు, కాని అదే గమనికను ఉపయోగించి ఒక నిర్దిష్ట గమనిక యొక్క టోన్లను ఎలా ప్లే చేయవచ్చు. బ్రెట్ హగ్మాన్ రాసిన “పిచ్స్.హెచ్” అనే లైబ్రరీ మాకు అదృష్టంగా ఉంది . ఈ లైబ్రరీలో పియానోలోని ఏ నోట్కు సమానమైన ఫ్రీక్వెన్సీ గురించి మొత్తం సమాచారం ఉంది. ఈ లైబ్రరీ వాస్తవానికి పియానోలో ప్రతి నోట్ను ఎంత బాగా పని చేయగలదో నేను ఆశ్చర్యపోయాను, పైరేట్స్ ఆఫ్ కరేబియన్, క్రేజీ ఫ్రాగ్, మారియో మరియు టైటానిక్ యొక్క పియానో నోట్లను ప్లే చేయడానికి నేను అదే ఉపయోగించాను మరియు అవి అద్భుతంగా అనిపించాయి. అయ్యో! మేము ఇక్కడ కొంచెం టాపిక్ పొందుతున్నాము, కాబట్టి మీకు ఆసక్తి ఉంటే ఆర్డునో ప్రాజెక్ట్ ఉపయోగించి శ్రావ్యమైన ఆటలను చూడండి. ఆ ప్రాజెక్ట్లోని పిచ్స్.హెచ్ లైబ్రరీ గురించి మీరు మరింత వివరణ పొందుతారు .
మా ప్రాజెక్ట్ 8 పుష్ బటన్లను మాత్రమే కలిగి ఉంది, కాబట్టి ప్రతి బటన్ ఒక నిర్దిష్ట సంగీత గమనికను మాత్రమే ప్లే చేయగలదు మరియు పూర్తిగా మనం 8 నోట్లను మాత్రమే ప్లే చేయవచ్చు. నేను పియానోలో ఎక్కువగా ఉపయోగించిన గమనికలను ఎంచుకున్నాను, కానీ మీరు ఏదైనా 8 ని ఎంచుకోవచ్చు లేదా ఎక్కువ పుష్ బటన్లతో ప్రాజెక్ట్ను విస్తరించవచ్చు మరియు మరిన్ని గమనికలను జోడించవచ్చు.
ఈ ప్రాజెక్ట్లో ఎంచుకున్న నోట్స్ సి 4, డి 4, ఇ 4, ఎఫ్ 4, జి 4, ఎ 4, బి 4 మరియు సి 5 లు వరుసగా 1 నుండి 8 బటన్లను ఉపయోగించి ఆడవచ్చు.
ప్రోగ్రామింగ్ ది ఆర్డునో:
ఆర్డ్యునోను ప్రోగ్రామింగ్ చేయడంలో సరదాగా పాల్గొనడానికి సిద్ధాంతం సరిపోతుంది. పూర్తి Arduino ప్రోగ్రామ్ మీరు ఆసక్తి ఉంటే డౌన్ జంప్ లేదా ఎలా కోడ్ రచనలు అర్థం మరింత చదువుకోవచ్చు ఈ పేజీ చివర ఇవ్వబడుతుంది.
మా Arduino ప్రోగ్రామ్లో మనం పిన్ A0 నుండి అనలాగ్ వోల్టేజ్ను చదవాలి, ఆపై ఏ బటన్ నొక్కినట్లు ict హించి, ఆ బటన్ కోసం సంబంధిత టోన్ను ప్లే చేయండి. ఇలా చేస్తున్నప్పుడు, వినియోగదారు ఏ బటన్ను నొక్కినారో మరియు అతను / ఆమె ఎంతసేపు నొక్కినారో కూడా రికార్డ్ చేయాలి, తద్వారా వినియోగదారు తరువాత ఆడిన స్వరాన్ని మనం పున ate సృష్టి చేయవచ్చు.
లాజిక్ భాగానికి వెళ్లేముందు, మనం ఏ 8 నోట్లను ప్లే చేస్తున్నామో ప్రకటించాలి. గమనికల సంబంధిత పౌన frequency పున్యం పిచ్స్.హెచ్ లైబ్రరీ నుండి తీసుకోబడుతుంది మరియు తరువాత క్రింద చూపిన విధంగా ఒక శ్రేణి ఏర్పడుతుంది. ఇక్కడ నోట్ సి 4 ఆడటానికి ఫ్రీక్వెన్సీ 262 మరియు మొదలైనవి.
పూర్ణాంక గమనికలు = {262, 294, 330, 349, 392, 440, 494, 523}; // C4, D4, E4, F4, G4, A4, B4,
తరువాత మనం ఎల్సిడి డిస్ప్లే ఏ పిన్లకు కనెక్ట్ చేయబడిందో చెప్పాలి. మీరు పైన ఇచ్చిన ఖచ్చితమైన స్కీమాటిక్స్ను అనుసరిస్తుంటే, మీరు ఇక్కడ ఏదైనా మార్చవలసిన అవసరం లేదు.
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // LCD అనుసంధానించబడిన పిన్స్ లిక్విడ్ క్రిస్టల్ lcd (rs, en, d4, d5, d6, d7);
తరువాత, మా సెటప్ ఫంక్షన్ లోపల మేము డీబగ్గింగ్ కోసం LCD మాడ్యూల్ మరియు సీరియల్ మానిటర్ను ప్రారంభిస్తాము. ప్రణాళిక ప్రకారం పనులు పనిచేస్తున్నాయని నిర్ధారించుకోవడానికి మేము పరిచయ సందేశాన్ని కూడా ప్రదర్శిస్తాము. తరువాత , ప్రధాన లూప్ ఫంక్షన్ లోపల మనకు రెండు ఉచ్చులు ఉంటాయి.
SPDT స్విచ్ ఎక్కువ రికార్డింగ్లో ఉంచినంత కాలం వన్ లూప్ అమలు అవుతుంది. రికార్డింగ్ మోడ్లో వినియోగదారు అవసరమైన టోన్లను చెల్లించవచ్చు మరియు అదే సమయంలో ప్లే అవుతున్న టోన్ కూడా సేవ్ చేయబడుతుంది. కాబట్టి లూప్ క్రింద ఇలా కనిపిస్తుంది
అయితే (డిజిటల్ రీడ్ (6) == 0) // టోగుల్ స్విచ్ రికార్డింగ్ మోడ్లో సెట్ చేయబడితే {lcd.setCursor (0, 0); lcd.print ("రికార్డింగ్.."); lcd.setCursor (0, 1); గుర్తించు_బటన్ (); ప్లే_టోన్ (); }
మీరు గమనించినట్లుగా , లూప్ లోపల మాకు రెండు విధులు ఉన్నాయి. మొదటి ఫంక్షన్ Detect_button () యూజర్ ఏ బటన్ను నొక్కిందో కనుగొనండి మరియు రెండవ ఫంక్షన్ Play_tone () సంబంధిత టోన్ను ప్లే చేయడానికి ఉపయోగించబడుతుంది. ఈ ఫంక్షన్ కాకుండా, డిటెక్ట్_బటన్ () ఫంక్షన్ ఏ బటన్ నొక్కినదో కూడా రికార్డ్ చేస్తుంది మరియు ప్లే_టోన్ () ఫంక్షన్ బటన్ ఎంతసేపు నొక్కిందో రికార్డ్ చేస్తుంది.
Detect_button () ఫంక్షన్ లోపల మేము పిన్ A0 నుండి అనలాగ్ వోల్టేజ్ చదివి, ఏ బటన్ నొక్కినట్లు తెలుసుకోవడానికి కొన్ని ముందే నిర్వచించిన విలువలతో పోల్చాము . పైన ఉన్న వోల్టేజ్ డివైడర్ కాలిక్యులేటర్ను ఉపయోగించడం ద్వారా లేదా ప్రతి బటన్కు ఏ అనలాగ్ విలువ చదవబడుతుందో తనిఖీ చేయడానికి సీరియల్ మానిటర్ను ఉపయోగించడం ద్వారా విలువను నిర్ణయించవచ్చు.
శూన్యమైన డిటెక్ట్_బటన్ () { అనలాగ్వాల్ = అనలాగ్ రీడ్ (A0); // పిన్ A0 pev_button = బటన్ పై అనలాగ్ వోల్టాగ్ చదవండి ; // వినియోగదారు నొక్కిన మునుపటి బటన్ను గుర్తుంచుకోండి (అనలాగ్వాల్ <550) బటన్ = 8; if (అనలాగ్వాల్ <500) బటన్ = 7; if (అనలాగ్వాల్ <450) బటన్ = 6; if (అనలాగ్వాల్ <400) బటన్ = 5; if (అనలాగ్వాల్ <300) బటన్ = 4; if (అనలాగ్వాల్ <250) బటన్ = 3; if (అనలాగ్వాల్ <150) బటన్ = 2; if (అనలాగ్వాల్ <100) బటన్ = 1; if (అనలాగ్వాల్> 1000) బటన్ = 0; / **** Rcord ప్రెసెడ్ బటన్లు ఒక శ్రేణి *** / if (బటన్! = pev_button && pev_button! = 0) { record_button = pev_button; button_index ++; రికార్డ్_బటన్ = 0; button_index ++; } / ** రికార్డింగ్ ప్రోగ్రామ్ ముగింపు ** / }
చెప్పినట్లుగా, ఈ ఫంక్షన్ లోపల మేము బటన్లను నొక్కిన క్రమాన్ని కూడా రికార్డ్ చేస్తాము. రికార్డ్ చేయబడిన విలువలు రికార్డ్_బటన్ అనే శ్రేణిలో నిల్వ చేయబడతాయి . క్రొత్త బటన్ నొక్కినట్లు మేము మొదట తనిఖీ చేస్తాము, నొక్కినట్లయితే అది బటన్ 0 కాదా అని కూడా తనిఖీ చేస్తాము. ఇక్కడ బటన్ 0 ఏమీ లేదు కాని బటన్ నొక్కినప్పుడు. If లూప్ లోపల మనం వేరియబుల్ బటన్_ఇండెక్స్ ఇచ్చిన ఇండెక్స్ లొకేషన్లో విలువను నిల్వ చేస్తాము, ఆపై మేము కూడా ఈ ఇండెక్స్ విలువను పెంచుతాము, తద్వారా మనం ఒకే చోట రాయము.
/ **** Rcord ప్రెసెడ్ బటన్లు ఒక శ్రేణి *** / ఉంటే (బటన్ = pev_button && pev_button = 0!!) { Recorded_button = pev_button; button_index ++; రికార్డ్_బటన్ = 0; button_index ++; } / ** రికార్డింగ్ ప్రోగ్రామ్ ముగింపు ** /
Play_tone () ఫంక్షన్ లోపల మేము షరతులు ఉంటే బహుళ ఉపయోగించి నొక్కిన బటన్ కోసం సంబంధిత టోన్ను ప్లే చేస్తాము. అలాగే రికార్డ్_టైమ్ అనే శ్రేణిని ఉపయోగిస్తాము, దానిలో బటన్ నొక్కిన సమయ వ్యవధిని ఆదా చేస్తాము. ప్రతి బటన్ ఎంతసేపు నొక్కిందో నిర్ణయించడానికి మిల్లిస్ () ఫంక్షన్ను ఉపయోగించడం ద్వారా ఆపరేషన్ రికార్డింగ్ బటన్ సీక్వెన్స్ మాదిరిగానే ఉంటుంది, వేరియబుల్ పరిమాణాన్ని తగ్గించడానికి కూడా మేము విలువను 10 ద్వారా విభజిస్తాము. బటన్ 0 కోసం, అంటే యూజర్ కాదు దేనినైనా నొక్కితే అదే వ్యవధిలో మేము టోన్ ఆడము. ఫంక్షన్ లోపల పూర్తి కోడ్ క్రింద చూపబడింది.
శూన్యమైన Play_tone () { / **** శ్రేణిలోని ప్రతి బటన్ ప్రెస్ మధ్య సమయం ఆలస్యాన్ని రికార్డ్ చేయండి *** / if (బటన్! = pev_button) { lcd.clear (); // అప్పుడు దాన్ని శుభ్రం చేయండి note_time = (మిల్లీస్ () - ప్రారంభ_ సమయం) / 10; రికార్డ్_టైమ్ = నోట్_టైమ్; time_index ++; start_time = మిల్లీస్ (); } / ** రికార్డింగ్ ప్రోగ్రామ్ ముగింపు ** / if (బటన్ == 0) { నో టోన్ (7); lcd.print ("0 -> పాజ్.."); } if (బటన్ == 1) { టోన్ (7, గమనికలు); lcd.print ("1 -> NOTE_C4"); } if (బటన్ == 2) { టోన్ (7, గమనికలు); lcd.print ("2 -> NOTE_D4"); } if (బటన్ == 3) { టోన్ (7, గమనికలు); lcd.print ("3 -> NOTE_E4"); } if (బటన్ == 4) { టోన్ (7, గమనికలు); lcd.print ("4 -> NOTE_F4"); } if (బటన్ == 5) { టోన్ (7, గమనికలు); lcd.print ("5 -> NOTE_G4"); } if (బటన్ == 6) { టోన్ (7, గమనికలు); lcd.print ("6 -> NOTE_A4"); } if (బటన్ == 7) { టోన్ (7, గమనికలు); lcd.print ("7 -> NOTE_B4"); } if (బటన్ == 8) { టోన్ (7, గమనికలు); lcd.print ("8 -> NOTE_C5"); } }
చివరగా రికార్డ్ చేసిన తర్వాత వినియోగదారు రికార్డ్ చేసిన టోన్ను ప్లే చేయడానికి DPST ని ఇతర దిశకు టోగుల్ చేయాలి. ఇది పూర్తయినప్పుడు ప్రోగ్రామ్ మునుపటి సమయంలో లూప్ నుండి విడిపోతుంది మరియు రెండవది లూప్లోకి ప్రవేశిస్తుంది, ఇక్కడ మేము గతంలో రికార్డ్ చేసిన వ్యవధి కోసం నొక్కిన బటన్ల క్రమంలో గమనికలను ప్లే చేస్తాము. అదే చేయవలసిన కోడ్ క్రింద చూపబడింది.
అయితే (డిజిటల్ రీడ్ (6) == 1) // టోగుల్ స్విచ్ ప్లేయింగ్ మోడ్లో సెట్ చేయబడితే { lcd.clear (); lcd.setCursor (0, 0); lcd.print ("ఇప్పుడు ఆడుతున్నారు.."); (int i = 0; i <sizeof (రికార్డ్_బటన్) / 2; i ++) { ఆలస్యం ((రికార్డ్_టైమ్) * 10); // (రికార్డ్_బటన్ == 0) నో టోన్ (7) ఉంటే తదుపరి ట్యూన్ చెల్లించే ముందు వేచి ఉండండి ; // యూజర్ సొట్ట టచ్ ఏ బటన్ వేరే టోన్ (7, నోట్స్ - 1)]); // వినియోగదారు తాకిన బటన్కు అనుగుణమైన ధ్వనిని ప్లే చేయండి } } }
ప్లే, రికార్డ్, రీప్లే మరియు రిపీట్!:
చూపిన సర్క్యూట్ రేఖాచిత్రం ప్రకారం హార్డ్వేర్ను తయారు చేసి, కోడ్ను ఆర్డునో బోర్డుకు మరియు దాని చూపిన సమయానికి అప్లోడ్ చేయండి. SPDT ని రికార్డింగ్ మోడ్లో ఉంచండి మరియు మీకు నచ్చిన టోన్లను ప్లే చేయడం ప్రారంభించండి, ప్రతి బటన్ను నొక్కితే వేరే టోన్ వస్తుంది. ఈ మోడ్ సమయంలో LCD “ రికార్డింగ్…” ను ప్రదర్శిస్తుంది మరియు రెండవ పంక్తిలో మీరు క్రింద చూపిన విధంగా ప్రస్తుతం నొక్కిన గమనిక పేరును చూస్తారు
మీరు మీ టోన్ను ప్లే చేసిన తర్వాత, SPDT స్విచ్ను మరొక వైపుకు టోగుల్ చేయండి మరియు LCD “ నౌ ప్లేయింగ్..” ని ప్రదర్శించాలి, ఆపై మీరు ఆడిన టోన్ను ప్లే చేయడం ప్రారంభించండి. దిగువ చిత్రంలో చూపిన విధంగా టోగుల్ స్విచ్ స్థానంలో ఉంచినంత వరకు అదే స్వరం మళ్లీ మళ్లీ ఆడబడుతుంది.
ప్రాజెక్ట్ యొక్క పూర్తి పనిని క్రింద ఇచ్చిన వీడియోలో చూడవచ్చు. మీరు ప్రాజెక్ట్ను అర్థం చేసుకున్నారని మరియు దానిని నిర్మించడం ఆనందించారని ఆశిస్తున్నాము. ఈ పోస్ట్ను నిర్మించడంలో మీకు ఏమైనా సమస్యలు ఉంటే వాటిని వ్యాఖ్య విభాగంలో ఉంచండి లేదా మీ ప్రాజెక్ట్పై సాంకేతిక సహాయం కోసం ఫోరమ్లను ఉపయోగించండి. క్రింద ఇచ్చిన ప్రదర్శన వీడియోను తనిఖీ చేయడం కూడా మర్చిపోవద్దు.