ఈ ట్యుటోరియల్లో మేము ఆర్డునో యునో ఉపయోగించి 8x8 ఎల్ఇడి మ్యాట్రిక్స్ స్క్రోలింగ్ డిస్ప్లేని డిజైన్ చేయబోతున్నాం, ఇది స్క్రోలింగ్ వర్ణమాలలను చూపుతుంది.
8x8 LED మ్యాట్రిక్స్లో 64 LED లు (లైట్ ఎమిటింగ్ డయోడ్లు) ఉన్నాయి, ఇవి మ్యాట్రిక్స్ రూపంలో అమర్చబడి ఉంటాయి, అందుకే ఈ పేరు LED మ్యాట్రిక్స్. ఈ 64 ఎల్ఈడీలను పెర్ఫ్బోర్డ్ లేదా డాట్ పిసిబికి టంకం వేయడం ద్వారా మేము ఈ మ్యాట్రిక్స్ తయారు చేయబోతున్నాం. LED లు ఏదైనా రంగులో ఉంటాయి, మీతో అందుబాటులో ఉన్న వాటిని ఎంచుకోండి. అప్పుడు మేము ఈ 64 LED ల మాతృకను నియంత్రించడానికి Arduino కోసం ఒక ప్రోగ్రామ్ వ్రాస్తాము. UNO, ప్రోగ్రామ్ ప్రకారం, స్క్రోలింగ్ ఫ్యాషన్లో అక్షరాలను చూపించడానికి తగిన LED లకు అధికారం ఇస్తుంది.
అవసరమైన భాగాలు:
- ఆర్డునో యునో
- 64 ఎల్ఈడీలు
- ఇతర టంకం సాధనాలతో పెర్ఫ్బోర్డ్
- 1KΩ నిరోధకం (8 ముక్కలు)
- విద్యుత్ సరఫరా (5 వి)
సర్క్యూట్ మరియు వర్కింగ్ వివరణ:
మ్యాట్రిక్స్ రూపంలో 64 ఎల్ఈడీలు ఏర్పాటు చేయబడ్డాయి. కాబట్టి మనకు 8 నిలువు వరుసలు మరియు 8 వరుసలు ఉన్నాయి. ఆ అడ్డు వరుసలు మరియు నిలువు వరుసల మీద, వరుసగా అన్ని సానుకూల టెర్మినల్స్ కలిసి ఉంటాయి. ప్రతి అడ్డు వరుసకు, ఆ వరుసలోని మొత్తం 8 ఎల్ఈడీలకు ఒక కామన్ పాజిటివ్ టెర్మినల్ ఉంటుంది. ఇది క్రింద ఉన్న చిత్రంలో చూపబడింది,
కాబట్టి 8 వరుసల కోసం మనకు 8 సాధారణ పాజిటివ్ టెర్మినల్స్ ఉన్నాయి. మొదటి వరుసను పరిగణించండి, చిత్రంలో చూసినట్లుగా, D57 నుండి D64 వరకు 8 LED లు సాధారణ సానుకూల టెర్మినల్ కలిగివుంటాయి మరియు వాటిని 'POSITIVE0' ద్వారా సూచిస్తారు. ఇప్పుడు మనకు మొదటి ROW మాతృకలో గ్లో ఒకటి లేదా అన్ని LED లు కావాలంటే, అప్పుడు మేము LED మ్యాట్రిక్స్ యొక్క PIN0 కి శక్తినివ్వాలి. అదేవిధంగా మనం ఏదైనా ROW లో ఏదైనా LED (లేదా అన్నీ) ను మెరుస్తూ ఉండాలనుకుంటే, ఆ వరుస యొక్క సంబంధిత కామన్ పాజిటివ్ టెర్మినల్ పిన్కు శక్తినివ్వాలి.
ఇది ఇంకా ముగియలేదు మరియు సానుకూల సరఫరాతో మ్యాట్రిక్స్ వరుసలను వదిలివేయడం వల్ల ఏమీ లభించదు. LED లను ప్రతికూలంగా ఉంచడానికి మేము వాటిని గ్రౌండ్ చేయాలి. కాబట్టి 8x8 LED మాతృకలో, ఏ కాలమ్లోని LED ల యొక్క అన్ని నెగటివ్ టెర్మినల్స్ కలిసి ఎనిమిది కామన్ నెగటివ్ టెర్మినల్స్ ఏర్పడతాయి, మొదటి కాలమ్లోని అన్ని నెగటివ్ టెర్మినల్లు PIN-A1 (NEGATIVE7) తో అనుసంధానించబడి ఉంటాయి. ఇది క్రింద ఉన్న చిత్రంలో చూపబడింది:
పెర్ఫ్బోర్డ్లోని ఎల్ఈడీలను టంకం చేసేటప్పుడు ఈ పిన్లపై దృష్టి పెట్టాలి.
ఇప్పుడు మనం మొదటి కాలమ్లో ఏదైనా ఎల్ఈడీని గ్రౌండ్ చేయవలసి వస్తే, అప్పుడు మేము మ్యాట్రిక్స్ యొక్క పిన్-ఎ 1 (NEGATIVE7) ను గ్రౌండ్ చేస్తాము మరియు ఇది అన్ని ఎల్ఈడీలను మొదటి కాలమ్లో గ్రౌండ్ చేస్తుంది. ఇదే ప్రక్రియ మిగతా ఏడు సాధారణ ప్రతికూల నిలువు వరుసలకు వెళుతుంది.
కామన్ పాజిటివ్ మరియు కామన్ నెగటివ్ ఎలా పనిచేస్తుందో ఇప్పటి నుండి మీకు తెలుసు. అవి ఎలా కలిసి పనిచేస్తాయో చూడటానికి వాటిని కలిసి ఉంచుదాం మరియు స్క్రోలింగ్ 8x8 LED మ్యాట్రిక్స్ డిస్ప్లే కోసం చివరి సర్క్యూట్ ఇలా ఉంటుంది:
మల్టీప్లెక్సింగ్ ఉపయోగించి 8x8 LED మ్యాట్రిక్స్ డ్రైవింగ్:
ఇప్పుడు మనం LED57 ను ఆన్ చేయాలనుకుంటున్నాము, అప్పుడు మేము UNO యొక్క PIN0 ను శక్తివంతం చేయాలి మరియు UNO యొక్క PIN-8 ను గ్రౌండ్ చేయాలి. ఇప్పుడు LED57 మరియు LED50 రెండింటినీ ఆన్ చేయడానికి, మేము PIN0, PIN1 కి శక్తినివ్వాలి మరియు PIN8, PIN9 ను గ్రౌండ్ చేయాలి. కానీ అలా చేయడం వల్ల D57, D50 మాత్రమే కాకుండా D49, D58 కూడా ఆన్ అవుతుంది. దానిని నివారించడానికి మేము మల్టీప్లెక్సింగ్ అనే సాంకేతికతను ఉపయోగిస్తాము. మేము ఇప్పటికే ఈ మల్టీప్లెక్స్ టెక్నిక్ను 8x8 LED మ్యాట్రిక్స్లో వివరంగా చర్చించాము; వివరణాత్మక వివరణ కోసం ఆ వ్యాసం ద్వారా వెళ్ళండి. ఇక్కడ మనం మల్టీప్లెక్సింగ్ గురించి క్లుప్తంగా వివరిస్తున్నాము.
మానవ కన్ను 30 HZ కంటే ఎక్కువ పౌన frequency పున్యాన్ని సంగ్రహించదు. 30HZ లేదా అంతకంటే ఎక్కువ రేటుతో LED నిరంతరం ఆన్ మరియు ఆఫ్ అవుతుంటే. కన్ను LED ని నిరంతరం ఆన్లో చూస్తుంది. అయితే ఇది అలా కాదు మరియు LED వాస్తవానికి నిరంతరం ఆన్ మరియు ఆఫ్ అవుతుంది. ఈ పద్ధతిని మల్టీప్లెక్సింగ్ అంటారు.
ఉదాహరణకు, D49 మరియు D58 ను ఆన్ చేయకుండా LED57 మరియు LED50 లను మాత్రమే ఆన్ చేయాలనుకుంటున్నాము. ట్రిక్ ఏమిటంటే, మేము మొదట LED57 ను ఆన్ చేయడానికి మరియు 1mSEC కోసం వేచి ఉండటానికి మొదటి వరుసకు శక్తిని అందిస్తాము, ఆపై మేము దానిని ఆఫ్ చేస్తాము. అప్పుడు మేము LED50 ను ఆన్ చేయడానికి రెండవ వరుసకు శక్తిని అందిస్తాము మరియు 1mSEC కోసం వేచి ఉండండి, ఆపై దాన్ని ఆఫ్ చేస్తుంది. అధిక పౌన frequency పున్యంతో చక్రం నిరంతరం వెళుతుంది మరియు LED57 & LED50 వేగంగా ఆన్ మరియు ఆఫ్ అవుతాయి మరియు రెండు LED లు మన కంటికి నిరంతరం ఆన్లో కనిపిస్తాయి. ఇతర వరుసలలో ఇతర ఎల్ఈడీలను ఆన్ చేసే అవకాశాలను తొలగిస్తూ, ఒకేసారి ఒక వరుసకు మాత్రమే శక్తిని అందిస్తున్నాము. అన్ని అక్షరాలను చూపించడానికి మేము ఈ పద్ధతిని ఉపయోగిస్తాము.
మల్టీప్లెక్సింగ్ యొక్క ఈ సంక్లిష్టతలను జాగ్రత్తగా చూసుకోవడానికి LedControlMS.h అనే లైబ్రరీ కూడా ఉంది, ఇక్కడ మీరు LED మ్యాట్రిక్స్లో ప్రింట్ చేయదలిచిన అక్షరం లేదా సంఖ్యను మాత్రమే నమోదు చేయాలి, మరింత వివరంగా MAX7219 ప్రాజెక్ట్తో ఈ Arduino LED మాతృకను తనిఖీ చేయండి.
ప్రోగ్రామింగ్ వివరణ:
మా కోడ్లో, మేము ప్రతి అక్షరానికి దశాంశ విలువను వ్రాసాము మరియు ఈ విలువలను ఆర్డునోలో ప్రోగ్రామ్ చేసాము. ప్రతి 0.2 సెకన్లకు ఈ విలువలను తదుపరి అడ్డు వరుసకు మార్చడానికి ప్రోగ్రామ్ వ్రాసింది, ఇది అక్షరాల పైకి స్క్రోలింగ్గా కనిపిస్తుంది, ఇది చాలా సులభం.
ప్రదర్శించాల్సిన అక్షరాలను మార్చడానికి, క్రింద ఇవ్వబడిన అక్షర విలువల ప్రకారం చార్ ALPHA శ్రేణిలోని విలువను భర్తీ చేయండి, 24,60,102,126,102,102,102,0,0,0, // ఎ 124,102,102,124,102,102,124,0,0,0, // బి 60,102,96,96,96,102,60,0, 0,0, // సి 120,108,102,102,102,102,102,102, // డి 126,96,96,120,96,96,126,0, 0,0, // ఇ 126,96,96,120,96,96,96,0, 0,0, // ఎఫ్ 60,102,96,110,102,102,60, 0, 0,0, // జి 102,102,102,126,102,102,102,0, 0,0, // హెచ్ 60,24,24,24,24,24,60,0, 0,0, // నేను 30,12,12,12, 12,108,56,0, 0,0, // జె 102,108,120,112,120,108,102,0, 0,0, // కె 96,96,96,96,96,96,126,0, 0,0, // ఎల్ 99,119,127,107,99, 99,99,0, 0,0, // ఓం 102,118,126,126,110,102,102,0, 0,0, // ఎన్ 60,102,102,102,102,102,60,0, 0,0, // ఓ 124,102,102,124,96,96,96,0, 0,0, // పి 60,102,102,102,102,60,14,0, 0,0, // క్యూ 124,102,102,124,120,108,102,0, 0,0, // ఆర్ 60,102,96,60,6,102,60,0, 0,0, // ఎస్ 126, 24,24,24,24,24,24,0, 0,0, // టి 102,102,102,102,102,102,60,0, 0,0, // యు 102,102,102,102,102,60,24,0, 0,0, // వి 99,99,99,107,127,119,99,0, 0,0, // W 102,102,60,24,60,102,102,0, 0,0, // X 102,102,102,60,24,24,24,0, 0,0, // Y 126,6,12, 24,48,96,126,0, 0,0, // జెడ్
మీరు LED మ్యాట్రిక్స్లో DAD ని ప్రదర్శించాలనుకుంటే, పైన పేర్కొన్న జాబితా నుండి D, A మరియు D అక్షరాల విలువలను ఉంచడం ద్వారా మొదట చార్ ALPHA శ్రేణిలోని అక్షరాల విలువలను భర్తీ చేయండి:
చార్ ALPHA = {0,0,0,0,0,0,0,0,0,0,0, 120,108,102,102,102,108,120,0,0,0, 24,60,102,126,102,102,102,0,0,0, 120,108,102,102,102,108,08 0, 0,0,0,0,0,0,0,0,0,0,0};
మొత్తం విలువలు ఇప్పుడు 5 * 10 = 50 విలువలు, కాబట్టి
(Int x = 0; x <142; x ++) // 150-8 (ఓవర్ఫ్లో ఆపడానికి) {…….. తో, (int x = 0; x <42; x ++) // 50-8 (ఓవర్ఫ్లో ఆపడానికి) {……..
కాబట్టి మీరు సంఖ్యను మార్చాలి.
దీనితో మీరు ప్రోగ్రామింగ్ చేసారు మరియు ఇప్పుడు మీరు 8x8 LED మ్యాట్రిక్స్లో ఏదైనా వచనాన్ని స్క్రోల్ చేయవచ్చు, ప్రదర్శన వీడియోతో క్రింద ఉన్న పూర్తి కోడ్ను తనిఖీ చేయండి.