చార్లీప్లెక్సింగ్ అనేది కొన్ని I / O పిన్లను ఉపయోగించి అనేక LED లను నియంత్రించే ఒక సాంకేతికత. చార్లీప్లెక్సింగ్ మల్టీప్లెక్సింగ్ మాదిరిగానే ఉంటుంది, అయితే ఇది పిన్స్ సంఖ్యను గణనీయంగా తగ్గించడానికి మరియు మల్టీప్లెక్సింగ్ కంటే సామర్థ్యాన్ని పొందడానికి ట్రై-స్టేట్ లాజిక్ (అధిక, తక్కువ ఇన్పుట్) ను ఉపయోగిస్తుంది. చార్లీప్లెక్సింగ్ టెక్నిక్కు 1995 లో సాంకేతికతను కనిపెట్టిన దాని ఆవిష్కర్త చార్లీ అలెన్ పేరు పెట్టారు. 4 అంకెల 7-సెగ్మెంట్ డిస్ప్లేను ఇంటర్ఫేస్ చేయడానికి మరియు 8x8 ఎల్ఇడి మ్యాట్రిక్స్ డ్రైవింగ్ చేయడానికి మేము గతంలో ఆర్డునోలో మల్టీప్లెక్సింగ్ టెక్నిక్ను ఉపయోగించాము.
చార్లీప్లెక్సింగ్ N * (N - 1) LED లను నియంత్రించడానికి మిమ్మల్ని అనుమతిస్తుంది, ఇక్కడ N అనేది పిన్స్ సంఖ్య కాదు. ఉదాహరణకు, మీరు 4 ఆర్డునో పిన్స్ 4 * (4-1) = 12 ఉపయోగించి 12 ఎల్ఈడీలను నియంత్రించవచ్చు. LED లు డయోడ్లు, మరియు డయోడ్లలో, ప్రస్తుతము ఒకే దిశలో ప్రవహిస్తుంది. కాబట్టి చార్లీప్లెక్సింగ్లో, మేము రెండు LED లను ఒకదానితో ఒకటి సమాంతరంగా కనెక్ట్ చేస్తాము కాని వ్యతిరేక ధ్రువణతతో ఒకేసారి ఒక LED మాత్రమే ఆన్ చేస్తాము. Arduino లేదా ఇతర మైక్రోకంట్రోలర్ బోర్డుల విషయానికి వస్తే, మీకు ఎప్పుడూ తగినంత ఇన్పుట్ / అవుట్పుట్ పిన్స్ లేవు. మీరు ఎల్సిడి డిస్ప్లే, ఎల్ఇడిల సమూహం మరియు కొన్ని సెన్సార్లను ఇంటర్ఫేస్ చేయాల్సిన ప్రాజెక్ట్లో పనిచేస్తుంటే, మీరు ఇప్పటికే పిన్ల నుండి బయటపడ్డారు. ఆ పరిస్థితిలో, పిన్ల సంఖ్యను తగ్గించడానికి మీరు చార్లీప్లెక్స్ LED లను చేయవచ్చు.
ఈ ట్యుటోరియల్లో, మేము 4 ఆర్డునో పిన్లను ఉపయోగించి 12 ఎల్ఈడీలను నియంత్రించడానికి చార్లీప్లెక్సింగ్ టెక్నిక్ని ఉపయోగించబోతున్నాం.
భాగాలు అవసరం
- ఆర్డునో UNO
- LED (12)
- 4 రెసిస్టర్ (330 ఓంలు)
- జంపర్ వైర్లు
- బ్రెడ్బోర్డ్
సర్క్యూట్ రేఖాచిత్రం
సాధారణంగా, ఈ సర్క్యూట్ రేఖాచిత్రంలో, 12 LED లు రెసిస్టర్ల ద్వారా 4 Arduino పిన్లతో అనుసంధానించబడి ఉన్నాయి. Arduino యొక్క ప్రతి పిన్ మూడు LED లతో అనుసంధానించబడి ఉంది. LED ల యొక్క ఆరు సమూహాలు ఉన్నాయి, మరియు ప్రతి సమూహంలో, 2 LED లు అనుసంధానించబడి ఉంటాయి, మరియు రెండు LED లు ఒకదానితో ఒకటి సమాంతరంగా ఉంటాయి కాని వ్యతిరేక ధ్రువణతతో ఉంటాయి, తద్వారా ఒకేసారి ఒక LED మాత్రమే ఆన్ అవుతుంది. కాబట్టి లీడ్ 1 ను ఆన్ చేయడానికి సర్క్యూట్ రేఖాచిత్రం ప్రకారం, పిన్ A పై హై సిగ్నల్ మరియు పిన్ B పై తక్కువ సిగ్నల్ ఉండాలి మరియు పిన్ సి మరియు డి డిస్కనెక్ట్ చేయాలి. ఇతర ఎల్ఈడీలకు కూడా ఇదే విధానాన్ని అనుసరిస్తారు. ప్రతి LED కోసం పిన్ సెట్టింగుల పూర్తి పట్టిక క్రింద ఇవ్వబడింది:
LED | పిన్ 8 | పిన్ 9 | పిన్ 10 | పిన్ 11 |
1 | అధిక | తక్కువ | INPUT | INPUT |
2 | తక్కువ | అధిక | INPUT | INPUT |
3 | INPUT | అధిక | తక్కువ | INPUT |
4 | INPUT | తక్కువ | అధిక | INPUT |
5 | INPUT | INPUT | అధిక | తక్కువ |
6 | INPUT | INPUT | తక్కువ | అధిక |
7 | అధిక | INPUT | తక్కువ | INPUT |
8 | తక్కువ | INPUT | అధిక | INPUT |
9 | INPUT | అధిక | INPUT | తక్కువ |
10 | INPUT | తక్కువ | INPUT | అధిక |
11 | అధిక | INPUT | INPUT | తక్కువ |
12 | తక్కువ | INPUT | INPUT | అధిక |
కనెక్షన్ల తరువాత నా హార్డ్వేర్ క్రింద ఉన్న చిత్రం వలె కనిపిస్తుంది. మీరు చిత్రం నుండి చూడగలిగినట్లుగా ఆరు సమూహాల LED లు ఉన్నాయి మరియు ప్రతి సమూహంలో 2 LED లు ఒకదానికొకటి అనుసంధానించబడి ఉంటాయి. Arduino UNO మాడ్యూల్ USB పోర్ట్ చేత శక్తినిస్తుంది.
కోడ్ వివరణ
ఈ ట్యుటోరియల్ చివరలో వర్కింగ్ వీడియోతో పూర్తి కోడ్ ఇవ్వబడింది, ఇక్కడ మేము ప్రాజెక్ట్ యొక్క పనిని అర్థం చేసుకోవడానికి పూర్తి ప్రోగ్రామ్ను వివరిస్తున్నాము.
Arduino కోడ్ ప్రారంభంలో LED లు అనుసంధానించబడిన అన్ని పిన్లను నిర్వచించండి. ఆ తరువాత, మొత్తం LED లు మరియు దారితీసిన స్థితిని నిర్వచించండి.
# A 8 ని నిర్వచించండి # B 9 ని నిర్వచించండి # D 10 ని నిర్వచించండి # PIN_CONFIG 0 ని నిర్వచించండి # PIN_STATE 1 ని నిర్వచించండి # LED_Num 12 ని నిర్వచించండి
ఇప్పుడు ఒక క్రమంలో LED లను ఆన్ మరియు ఆఫ్ చేయడానికి మాతృకను సృష్టించండి, మీరు పిన్ స్టేట్ మరియు పిన్ కాన్ఫిగరేషన్ను మార్చడం ద్వారా క్రమాన్ని మార్చవచ్చు. ఈ మాతృక ప్రకారం, ఎల్ఈడీ 1 మొదట ఎల్ఈడీ 2 ను ఆన్ చేస్తుంది.
int మాతృక = { // PIN_CONFIG PIN_STATE // ABCDABCD { U ట్పుట్ , అవుట్పుట్, ఇన్పుట్, ఇన్పుట్}, {హై, తక్కువ, తక్కువ, తక్కువ}}, { U ట్పుట్ , అవుట్పుట్, ఇన్పుట్, ఇన్పుట్}, {తక్కువ, హై, తక్కువ, తక్కువ}}, {{ఇన్పుట్, U ట్పుట్, అవుట్పుట్, ఇన్పుట్}, {తక్కువ, అధిక, తక్కువ, తక్కువ}}, …………………………. …………………………..
ఇప్పుడు శూన్య లూప్ లోపల, ఇచ్చిన క్రమంలో LED లను ఆన్ మరియు ఆఫ్ చేయడానికి ప్రోగ్రామ్ LED_COUNT మాతృకను అమలు చేస్తుంది.
void loop () { (int l = 0; l <LED_Num; l ++) { lightOn (l); ఆలస్యం (1000 / LED_Num); }
ఇప్పుడు ఆర్డునోను ల్యాప్టాప్తో కనెక్ట్ చేసి, బోర్డు మరియు పోర్ట్ను సరిగ్గా ఎంచుకుని, ఆపై అప్లోడ్ బటన్ క్లిక్ చేయండి. కోడ్ను అప్లోడ్ చేసిన తర్వాత, మీ LED లు మెరిసేటట్లు చేయాలి.
కాబట్టి తక్కువ ఆర్డునో పిన్లను ఉపయోగించి అనేక ఎల్ఈడీలను నియంత్రించడానికి చార్లీప్లెక్సింగ్ టెక్నిక్ను ఈ విధంగా ఉపయోగించవచ్చు. ఎక్కువ సంఖ్యలో LED లను నియంత్రించడానికి మీరు ఈ పద్ధతిని ఉపయోగించవచ్చు. ఉదాహరణకు, మీరు 20 LED లను నియంత్రించాలనుకుంటే, మాతృకను సవరించండి మరియు మిగిలిన LED లకు షరతులను జోడించండి.
పూర్తి కోడ్ మరియు వర్కింగ్ వీడియోను క్రింద కనుగొనండి.