WS2812B అడ్రస్ చేయగల LED స్ట్రిప్ను Arduinoకి ఎలా కనెక్ట్ చేయాలి
LED ఆధారిత లైటింగ్ టెక్నాలజీ అభివృద్ధి వేగంగా కొనసాగుతోంది. నిన్న RGB రిబ్బన్లు నియంత్రిక ద్వారా నియంత్రించబడటం ఒక అద్భుతంలా అనిపించింది, రిమోట్ కంట్రోల్ ద్వారా దాని ప్రకాశం మరియు రంగును సర్దుబాటు చేయవచ్చు. నేడు, మార్కెట్లో మరిన్ని అవకాశాలు ఉన్నాయి.
WS2812B ఆధారంగా LED స్ట్రిప్
స్టాండర్డ్ నుండి అడ్రస్ చేయగల LED స్ట్రిప్ యొక్క తేడాలు RGB అదా ప్రతి మూలకం యొక్క ప్రకాశం మరియు రంగు నిష్పత్తి విడిగా సర్దుబాటు చేయబడుతుంది. ఇది ఇతర రకాల లైటింగ్ మ్యాచ్లకు అందుబాటులో లేని లైటింగ్ ప్రభావాలను పొందడానికి మిమ్మల్ని అనుమతిస్తుంది. LED స్ట్రిప్ బాగా తెలిసిన మార్గంలో నియంత్రించబడుతుంది - పల్స్ వెడల్పు మాడ్యులేషన్ ద్వారా. సిస్టమ్ యొక్క అసమాన్యత ఏమిటంటే ప్రతి LED కి దాని స్వంత PWM కంట్రోలర్ ఉంటుంది. WS2812B చిప్ అనేది ట్రై-కలర్ లైట్-ఎమిటింగ్ డయోడ్ మరియు కంట్రోల్ సర్క్యూట్, ఒక ప్యాకేజీలో కలిపి ఉంటుంది.

మూలకాలు సమాంతరంగా విద్యుత్ సరఫరాపై ఒక టేప్లో మిళితం చేయబడతాయి మరియు సీరియల్ బస్ ద్వారా నియంత్రించబడతాయి - మొదటి మూలకం యొక్క అవుట్పుట్ రెండవదాని యొక్క నియంత్రణ ఇన్పుట్కు అనుసంధానించబడి ఉంటుంది. చాలా సందర్భాలలో సీరియల్ బస్సులు రెండు లైన్లలో నిర్మించబడ్డాయి, వాటిలో ఒకటి స్ట్రోబ్స్ (సింక్రోనస్ పల్స్), మరియు మరొకటి - డేటాను ప్రసారం చేస్తుంది.

WS2812B చిప్ యొక్క కంట్రోల్ బస్ ఒక లైన్ కలిగి ఉంటుంది - ఇది డేటాను ప్రసారం చేస్తుంది.డేటా స్థిరమైన ఫ్రీక్వెన్సీ యొక్క పల్స్గా ఎన్కోడ్ చేయబడింది, కానీ విభిన్న పౌనఃపున్యాలతో. ఒక పల్స్ ఒక బిట్. ప్రతి బిట్ యొక్క వ్యవధి 1.25 µs, జీరో బిట్ అధిక స్థాయి 0.4 µs మరియు తక్కువ స్థాయి 0.85 µsలను కలిగి ఉంటుంది. యూనిట్ గరిష్టంగా 0.8 µs మరియు కనిష్టంగా 0.45 µs లాగా ఉంది. ప్రతి LEDకి 24 బిట్ల (3 బైట్లు) పార్శిల్ పంపబడుతుంది, తర్వాత 50µs కోసం తక్కువ స్థాయి రూపంలో విరామం ఉంటుంది. దీని అర్థం తదుపరి LED కోసం డేటా తదుపరి ప్రసారం చేయబడుతుంది మరియు గొలుసులోని అన్ని అంశాల కోసం. డేటా బదిలీ 100 µs పాజ్తో ముగుస్తుంది. అంటే రిబ్బన్ ప్రోగ్రామింగ్ సైకిల్ పూర్తయింది మరియు తదుపరి సెట్ డేటా ప్యాకెట్లను పంపవచ్చు.

ఈ ప్రోటోకాల్ డేటా ట్రాన్స్మిషన్ కోసం ఒకే లైన్ను అనుమతిస్తుంది, అయితే ఖచ్చితమైన సమయం అవసరం. వ్యత్యాసం 150 ns కంటే ఎక్కువ కాదు. అదనంగా, ఈ బస్సు యొక్క నాయిస్ ఇమ్యూనిటీ చాలా తక్కువగా ఉంటుంది. తగినంత వ్యాప్తి యొక్క ఏదైనా జోక్యాన్ని నియంత్రిక డేటాగా గ్రహించవచ్చు. ఇది నియంత్రణ సర్క్యూట్ నుండి వైర్ల పొడవుపై పరిమితులను విధిస్తుంది. మరోవైపు, ఇది సామర్థ్యాన్ని అందిస్తుంది రిబ్బన్ అని ధృవీకరించడానికి అదనపు పరికరాలు లేకుండా. మీరు ల్యుమినైర్కు పవర్ని వర్తింపజేసి, కంట్రోల్ బస్ యొక్క కాంటాక్ట్ ప్యాడ్ని మీ వేలితో తాకినట్లయితే, కొన్ని LED లు అస్తవ్యస్తంగా ఆన్ మరియు ఆఫ్ కావచ్చు.
WS2812B మూలకాల యొక్క సాంకేతిక లక్షణాలు
చిరునామా చేయగల రిబ్బన్ ఆధారంగా లైటింగ్ వ్యవస్థలను రూపొందించడానికి కాంతి-ఉద్గార మూలకాల యొక్క ముఖ్యమైన పారామితులను తెలుసుకోవడం అవసరం.
| LED కొలతలు | 5x5 మి.మీ |
| PWM మాడ్యులేషన్ ఫ్రీక్వెన్సీ | 400 Hz |
| గరిష్ట ప్రకాశం వద్ద ప్రస్తుత వినియోగం | మూలకానికి 60 mA |
| సరఫరా వోల్టేజ్ | 5 వోల్ట్ |
Arduino మరియు WS2812B
ప్రపంచంలోని ప్రసిద్ధ Arduino ప్లాట్ఫారమ్ అడ్రస్ చేయగల రిబ్బన్లను నియంత్రించడానికి స్కెచ్లను (ప్రోగ్రామ్లు) సృష్టించడానికి మిమ్మల్ని అనుమతిస్తుంది. సిస్టమ్ యొక్క సామర్థ్యాలు తగినంత విస్తృతంగా ఉన్నాయి, కానీ కొంత స్థాయిలో అవి సరిపోకపోతే, సంపాదించిన నైపుణ్యాలు సజావుగా C++కి మారడానికి లేదా అసెంబ్లర్కి కూడా సరిపోతాయి. అయినప్పటికీ, Arduino పై ప్రాథమిక జ్ఞానాన్ని పొందడం సులభం.
WS2812B ఆధారిత రిబ్బన్ను ఆర్డునో యునో (నానో)కి కనెక్ట్ చేస్తోంది
మొదటి దశలో, ఒక సాధారణ Arduino Uno లేదా Arduino నానో బోర్డు సరిపోతుంది. తరువాత, మరింత క్లిష్టమైన వ్యవస్థలను నిర్మించడానికి మరింత క్లిష్టమైన బోర్డులను ఉపయోగించవచ్చు. Arduino బోర్డ్కు అడ్రస్ చేయగల LED స్ట్రిప్ను భౌతికంగా కనెక్ట్ చేస్తున్నప్పుడు, మీరు కొన్ని షరతులు నెరవేరినట్లు నిర్ధారించుకోవాలి:
- తక్కువ శబ్దం రోగనిరోధక శక్తి కారణంగా, డేటా లైన్ కనెక్షన్ కండక్టర్లు వీలైనంత తక్కువగా ఉండాలి (మీరు వాటిని 10 సెం.మీ లోపల చేయడానికి ప్రయత్నించాలి);
- Arduino బోర్డు యొక్క ఉచిత డిజిటల్ అవుట్పుట్కి డేటా వైర్ను కనెక్ట్ చేయండి - ఇది సాఫ్ట్వేర్ ద్వారా తర్వాత సూచించబడుతుంది;
- అధిక విద్యుత్ వినియోగం కారణంగా బోర్డు నుండి స్ట్రిప్ను శక్తివంతం చేయడం అవసరం లేదు - ఈ ప్రయోజనం కోసం ప్రత్యేక విద్యుత్ సరఫరా అందించబడుతుంది.
luminaire మరియు Arduino యొక్క సాధారణ విద్యుత్ సరఫరా వైర్ను కనెక్ట్ చేయడం అవసరం.

WS2812B సాఫ్ట్వేర్ నియంత్రణ యొక్క ప్రాథమిక అంశాలు
WS2812B చిప్లను నియంత్రించడానికి మీరు అధిక ఖచ్చితత్వాన్ని తట్టుకుని నిర్దిష్ట పొడవుతో పప్పులను ఏర్పరచాలని ఇప్పటికే పేర్కొనబడింది. Arduino భాషలో చిన్న పప్పులను రూపొందించడానికి ఆదేశాలు ఉన్నాయి మైక్రోసెకన్లు ఆలస్యం మరియు మైక్రోలు. సమస్య ఏమిటంటే ఈ ఆదేశాల రిజల్యూషన్ 4 మైక్రోసెకన్లు. అంటే, ఇచ్చిన ఖచ్చితత్వంతో సమయ జాప్యాలను రూపొందించడం సాధ్యం కాదు. C++ లేదా అసెంబ్లర్ సాధనాలకు వెళ్లడం అవసరం. ఈ ప్రయోజనం కోసం ప్రత్యేకంగా రూపొందించిన లైబ్రరీల సహాయంతో Arduino ద్వారా చిరునామా చేయగల LED స్ట్రిప్ను నియంత్రించడం సాధ్యమవుతుంది. మీరు బ్లింక్ ప్రోగ్రామ్తో ప్రారంభించవచ్చు, ఇది కాంతి-ఉద్గార మూలకాలను బ్లింక్ చేస్తుంది.
ఫాస్ట్లెడ్
ఈ లైబ్రరీ సార్వత్రికమైనది. అడ్రస్ చేయగల రిబ్బన్తో పాటు, ఇది SPI నియంత్రిత రిబ్బన్లతో సహా అనేక పరికరాలకు మద్దతు ఇస్తుంది. ఇది విస్తృత శ్రేణి లక్షణాలను కలిగి ఉంది.
మొదట మీరు లైబ్రరీని కనెక్ట్ చేయాలి. ఇది సెటప్ బ్లాక్కు ముందు చేయబడుతుంది మరియు స్ట్రింగ్ ఇలా కనిపిస్తుంది:
#చేర్చండి
ప్రతి కాంతి ఉద్గార డయోడ్ యొక్క రంగులను నిల్వ చేయడానికి ఒక శ్రేణిని సృష్టించడం తదుపరి దశ. ఇది పేరు స్ట్రిప్ మరియు 15 మూలకాల పరిమాణం కలిగి ఉంటుంది.
CRGB స్ట్రిప్[15]
సెటప్ బ్లాక్లో మీరు స్క్రిప్ట్ పని చేసే రిబ్బన్ను తప్పనిసరిగా పేర్కొనాలి:
శూన్యమైన సెటప్() {
FastLED.addLeds< WS2812B, 7, RGB>(స్ట్రిప్, 15);
int g;
}
RGB పరామితి రంగుల క్రమాన్ని సెట్ చేస్తుంది, 15 అంటే LED ల సంఖ్య, 7 అనేది నియంత్రించడానికి కేటాయించిన అవుట్పుట్ సంఖ్య (చివరి పరామితికి కూడా స్థిరంగా కేటాయించడం మంచిది).
లూప్ బ్లాక్ రెడ్ (రెడ్ గ్లో) శ్రేణిలోని ప్రతి విభాగానికి వరుసగా వ్రాసే లూప్తో ప్రారంభమవుతుంది:
కోసం (g=0; g< 15;g++)
{strip[g]=CRGB::Red;}
అప్పుడు ఉత్పత్తి చేయబడిన శ్రేణి ఇల్యూమినేటర్కు పంపబడుతుంది:
FastLED.show();
ఆలస్యం 1000 మిల్లీసెకన్లు (సెకన్లు):
ఆలస్యం (1000);
అప్పుడు మీరు అన్ని మూలకాలను ఒకే విధంగా ఆపివేయవచ్చు, వాటిలో నలుపును వ్రాయవచ్చు.
కోసం (int g=0; g< 15;g++)
{strip[g]=CRGB::నలుపు;}
FastLED.show();
ఆలస్యం (1000);

స్కెచ్ను కంపైల్ చేసి లోడ్ చేసిన తర్వాత రిబ్బన్ 2 సెకన్ల వ్యవధితో ఫ్లాష్ అవుతుంది. మీరు ప్రతి రంగు భాగాన్ని విడిగా నియంత్రించాలనుకుంటే, స్ట్రింగ్కు బదులుగా {strip[g]=CRGB::Red;} అనేక తీగలను ఉపయోగిస్తారు:
{
స్ట్రిప్[g].r=100;// ఎరుపు మూలకం యొక్క కాంతి స్థాయిని సెట్ చేయండి
స్ట్రిప్[g].g=11;// ఆకుపచ్చ కోసం అదే
స్ట్రిప్[g].b=250;// నీలం కోసం అదే
}
నియోపిక్సెల్
ఈ లైబ్రరీ NeoPixel Ring LED లతో మాత్రమే పని చేస్తుంది, కానీ ఇది తక్కువ వనరులతో కూడుకున్నది మరియు అవసరమైన వాటిని మాత్రమే కలిగి ఉంటుంది. Arduino లో ప్రోగ్రామ్ ఇలా కనిపిస్తుంది:
#చేర్చండి
మునుపటి సందర్భంలో వలె, లైబ్రరీ ప్లగిన్ చేయబడింది మరియు లెంటా ఆబ్జెక్ట్ ప్రకటించబడింది:
Adafruit_NeoPixel lenta=Adafruit_NeoPixel(15, 6);// ఇక్కడ 15 అనేది మూలకాల సంఖ్య మరియు 6 అనేది కేటాయించబడిన అవుట్పుట్
సెటప్ బ్లాక్లో లెంటా ప్రారంభించబడింది:
శూన్యమైన సెటప్() {
lenta.begin ()
}
లూప్ బ్లాక్లో అన్ని మూలకాలు ఎరుపు రంగులో వెలిగిపోతాయి, వేరియబుల్ టేప్కి పంపబడుతుంది మరియు 1 సెకను ఆలస్యం సృష్టించబడుతుంది:
కోసం (int y=0; y<15;y++)// 15 - luminaire లో మూలకాల సంఖ్య
{lenta.setPixelColor(y, lenta.Color(255,0,0))};
lenta.show();
ఆలస్యం (1000);
నల్లగా రాయడం ద్వారా లెంటా మెరుస్తూ ఆగిపోతుంది:
కోసం (int y=0; y< 15;y++)
{lenta.setPixelColor(y, lenta.Color(0,0,0))};
lenta.show();
ఆలస్యం (1000);

వీడియో పాఠం: చిరునామా చేయగల రిబ్బన్లను ఉపయోగించి విజువల్ ఎఫెక్ట్ల నమూనాలు.
LED లను ఎలా ఫ్లాష్ చేయాలో నేర్చుకున్న తర్వాత, మీరు పాఠాన్ని కొనసాగించవచ్చు మరియు మృదువైన పరివర్తనలతో ప్రసిద్ధ "రెయిన్బో" మరియు "నార్తర్న్ లైట్స్"తో సహా రంగు ప్రభావాలను ఎలా సృష్టించాలో నేర్చుకోవచ్చు. WS2812B మరియు Arduino అడ్రస్ చేయగల LED లు దీని కోసం మీకు దాదాపు అపరిమితమైన అవకాశాలను అందిస్తాయి.
