முகவரியிடக்கூடிய LED துண்டு WS2812B ஐ Arduino உடன் இணைப்பது எப்படி
LED களின் அடிப்படையில் லைட்டிங் தொழில்நுட்பத்தின் வளர்ச்சி வேகமாக தொடர்கிறது. நேற்று, ரிமோட் கண்ட்ரோலைப் பயன்படுத்தி பிரகாசத்தையும் நிறத்தையும் சரிசெய்யக்கூடிய கன்ட்ரோலர்-கட்டுப்பாட்டு RGB ரிப்பன்கள் ஒரு அதிசயம் போல் தோன்றியது. இன்று, இன்னும் பல அம்சங்களைக் கொண்ட விளக்குகள் சந்தையில் தோன்றியுள்ளன.
WS2812B அடிப்படையிலான LED துண்டு
முகவரியிடக்கூடிய எல்இடி துண்டுக்கும் நிலையான ஒன்றிற்கும் உள்ள வேறுபாடு RGB விஷயம் ஒவ்வொரு தனிமத்தின் பிரகாசம் மற்றும் வண்ண விகிதம் தனித்தனியாக சரிசெய்யப்படுகின்றன. மற்ற வகை லைட்டிங் சாதனங்களுக்கு அடிப்படையில் அணுக முடியாத லைட்டிங் விளைவுகளைப் பெற இது உங்களை அனுமதிக்கிறது. முகவரியிடக்கூடிய LED பட்டையின் பளபளப்பானது அறியப்பட்ட முறையில் கட்டுப்படுத்தப்படுகிறது - துடிப்பு-அகல பண்பேற்றத்தைப் பயன்படுத்தி. ஒவ்வொரு எல்இடியையும் அதன் சொந்த PWM கன்ட்ரோலருடன் பொருத்துவதே அமைப்பின் அம்சமாகும். WS2812B சிப் என்பது மூன்று வண்ண ஒளி உமிழும் டையோடு மற்றும் ஒரு ஒற்றை தொகுப்பில் இணைக்கப்பட்ட ஒரு கட்டுப்பாட்டு சுற்று ஆகும்.

உறுப்புகள் இணையாக ஒரு பவர் டேப்பில் இணைக்கப்பட்டு, ஒரு தொடர் பஸ் மூலம் கட்டுப்படுத்தப்படுகின்றன - முதல் உறுப்பின் வெளியீடு இரண்டாவது கட்டுப்பாட்டு உள்ளீட்டுடன் இணைக்கப்பட்டுள்ளது. பெரும்பாலான சந்தர்ப்பங்களில், தொடர் பேருந்துகள் இரண்டு வரிகளில் கட்டப்பட்டுள்ளன, அவற்றில் ஒன்று ஸ்ட்ரோப்களை (கடிகார துடிப்புகள்) கடத்துகிறது, மற்றொன்று - தரவு.

WS2812B சிப்பின் கட்டுப்பாட்டு பஸ் ஒரு வரியைக் கொண்டுள்ளது - தரவு அதன் மூலம் அனுப்பப்படுகிறது. தரவு நிலையான அதிர்வெண்ணின் துடிப்புகளாக குறியிடப்படுகிறது, ஆனால் வெவ்வேறு கடமை சுழற்சிகளுடன். ஒரு துடிப்பு - ஒரு பிட். ஒவ்வொரு பிட்டின் கால அளவு 1.25 µs ஆகும், பூஜ்ஜிய பிட் 0.4 µs கால அளவு மற்றும் குறைந்த அளவு 0.85 µs உடன் உயர் மட்டத்தைக் கொண்டுள்ளது. அலகு 0.8 µs க்கு உயர் நிலை மற்றும் 0.45 µs க்கு குறைந்த நிலை போல் தெரிகிறது. ஒவ்வொரு LED க்கும் 24-பிட் (3-பைட்) பர்ஸ்ட் அனுப்பப்படுகிறது, அதன்பின் 50 µsக்கு குறைந்த-நிலை இடைநிறுத்தம். இதன் பொருள், அடுத்த எல்.ஈ.டி மற்றும் சங்கிலியின் அனைத்து உறுப்புகளுக்கும் தரவு அனுப்பப்படும். தரவு பரிமாற்றம் 100 µs இடைநிறுத்தத்துடன் முடிவடைகிறது. டேப் புரோகிராமிங் சுழற்சி முடிந்தது மற்றும் அடுத்த தரவு பாக்கெட்டுகளை அனுப்ப முடியும் என்பதை இது குறிக்கிறது.

அத்தகைய ஒரு நெறிமுறை தரவு பரிமாற்றத்திற்கான ஒரு வரியுடன் பெறுவதை சாத்தியமாக்குகிறது, ஆனால் நேர இடைவெளிகளை பராமரிப்பதில் துல்லியம் தேவைப்படுகிறது. முரண்பாடு 150 ns க்கு மேல் அனுமதிக்கப்படவில்லை. கூடுதலாக, அத்தகைய பஸ்ஸின் இரைச்சல் நோய் எதிர்ப்பு சக்தி மிகவும் குறைவாக உள்ளது. போதுமான அலைவீச்சின் எந்தவொரு குறுக்கீடும் கட்டுப்படுத்தியால் தரவுகளாக உணரப்படும். இது கட்டுப்பாட்டு சுற்றுகளிலிருந்து கடத்திகளின் நீளத்திற்கு கட்டுப்பாடுகளை விதிக்கிறது. மறுபுறம், இது சாத்தியமாக்குகிறது ரிப்பன் சுகாதார சோதனை கூடுதல் சாதனங்கள் இல்லாமல்.நீங்கள் விளக்குக்கு சக்தியைப் பயன்படுத்தினால், உங்கள் விரலால் கட்டுப்பாட்டுப் பேருந்தின் காண்டாக்ட் பேடைத் தொட்டால், சில எல்.ஈ.
WS2812B கூறுகளின் விவரக்குறிப்புகள்
ஒரு முகவரி டேப்பின் அடிப்படையில் லைட்டிங் அமைப்புகளை உருவாக்க, ஒளி உமிழும் கூறுகளின் முக்கியமான அளவுருக்களை நீங்கள் அறிந்து கொள்ள வேண்டும்.
| LED பரிமாணங்கள் | 5x5 மிமீ |
| PWM பண்பேற்றம் அதிர்வெண் | 400 ஹெர்ட்ஸ் |
| அதிகபட்ச பிரகாசத்தில் தற்போதைய நுகர்வு | ஒரு கலத்திற்கு 60 mA |
| வழங்கல் மின்னழுத்தம் | 5 வோல்ட் |
Arduino மற்றும் WS2812B
உலகில் பிரபலமான Arduino இயங்குதளம், முகவரி நாடாக்களை நிர்வகிப்பதற்கான ஓவியங்களை (நிரல்கள்) உருவாக்க உங்களை அனுமதிக்கிறது. கணினியின் திறன்கள் போதுமான அளவு பரந்தவை, ஆனால் அவை சில மட்டங்களில் போதுமானதாக இல்லாவிட்டால், பெறப்பட்ட திறன்கள் வலியின்றி C ++ க்கு அல்லது அசெம்பிளருக்கு மாற போதுமானதாக இருக்கும். ஆரம்ப அறிவு Arduino இல் பெற எளிதானது என்றாலும்.
WS2812B ரிப்பனை Arduino Uno (நானோ) உடன் இணைக்கிறது
முதல் கட்டத்தில், எளிய Arduino Uno அல்லது Arduino Nano பலகைகள் போதும். எதிர்காலத்தில், மிகவும் சிக்கலான அமைப்புகளை உருவாக்க மிகவும் சிக்கலான பலகைகள் பயன்படுத்தப்படலாம். அர்டுயினோ போர்டுடன் முகவரியிடக்கூடிய எல்.ஈ.டி துண்டுகளை உடல் ரீதியாக இணைக்கும்போது, பல நிபந்தனைகளைக் கவனிக்க வேண்டும்:
- குறைந்த இரைச்சல் நோய் எதிர்ப்பு சக்தி காரணமாக, தரவுக் கோட்டின் இணைக்கும் கடத்திகள் முடிந்தவரை குறுகியதாக இருக்க வேண்டும் (நீங்கள் அவற்றை 10 செமீக்குள் செய்ய முயற்சிக்க வேண்டும்);
- நீங்கள் Arduino போர்டின் இலவச டிஜிட்டல் வெளியீட்டில் தரவு நடத்துனரை இணைக்க வேண்டும் - பின்னர் அது நிரல் ரீதியாக குறிப்பிடப்படும்;
- அதிக மின் நுகர்வு காரணமாக, போர்டில் இருந்து டேப்பை இயக்க வேண்டிய அவசியமில்லை - இந்த நோக்கத்திற்காக தனி மின்சாரம் வழங்கப்படுகிறது.
விளக்கு மற்றும் Arduino இன் பொதுவான மின் கம்பி இணைக்கப்பட வேண்டும்.

WS2812B நிரல் கட்டுப்பாட்டு அடிப்படைகள்
WS2812B மைக்ரோ சர்க்யூட்களைக் கட்டுப்படுத்த, ஒரு குறிப்பிட்ட நீளம் கொண்ட பருப்புகளை உருவாக்குவது அவசியம் என்று ஏற்கனவே குறிப்பிடப்பட்டுள்ளது, அதிக துல்லியத்தை பராமரிக்கிறது. குறுகிய பருப்புகளை உருவாக்க Arduino மொழியில் கட்டளைகள் உள்ளன தாமதம் மைக்ரோ விநாடிகள் மற்றும் மைக்ரோஸ். பிரச்சனை என்னவென்றால், இந்த கட்டளைகளின் தீர்மானம் 4 மைக்ரோ விநாடிகள் ஆகும். அதாவது, கொடுக்கப்பட்ட துல்லியத்துடன் நேர தாமதங்களை உருவாக்க இது வேலை செய்யாது. C ++ அல்லது Assembler கருவிகளுக்கு மாறுவது அவசியம். இதற்காக சிறப்பாக உருவாக்கப்பட்ட நூலகங்களைப் பயன்படுத்தி அர்டுயினோ மூலம் முகவரியிடக்கூடிய எல்.ஈ.டி துண்டுகளின் கட்டுப்பாட்டை நீங்கள் ஒழுங்கமைக்கலாம். ஒளியை உமிழும் கூறுகளை ஒளிரச் செய்யும் Blink நிரலுடன் உங்கள் அறிமுகத்தைத் தொடங்கலாம்.
வேகமாக வழிநடத்தியது
இந்த நூலகம் உலகளாவியது. முகவரி நாடாவைத் தவிர, SPI இடைமுகத்தால் கட்டுப்படுத்தப்படும் டேப்புகள் உட்பட பல்வேறு சாதனங்களை இது ஆதரிக்கிறது. இது பரந்த சாத்தியக்கூறுகளைக் கொண்டுள்ளது.
முதலில், நூலகத்தை சேர்க்க வேண்டும். இது அமைவுத் தொகுதிக்கு முன் செய்யப்படுகிறது, மேலும் வரி இதுபோல் தெரிகிறது:
#<FastLED.h> அடங்கும்
ஒவ்வொரு ஒளி உமிழும் டையோட்டின் வண்ணங்களையும் சேமிக்க ஒரு வரிசையை உருவாக்குவது அடுத்த படியாகும். இது பெயர் துண்டு மற்றும் பரிமாணத்தை 15 கொண்டிருக்கும் - உறுப்புகளின் எண்ணிக்கையால் (இந்த அளவுருவுக்கு மாறிலியை ஒதுக்குவது நல்லது).
CRGB துண்டு[15]
அமைவுத் தொகுதியில், ஸ்கெட்ச் எந்த டேப்பில் வேலை செய்யும் என்பதை நீங்கள் குறிப்பிட வேண்டும்:
வெற்றிட அமைப்பு() {
FastLED.addLeds< WS2812B, 7, RGB>(ஸ்ட்ரிப், 15);
intg;
}
RGB அளவுரு வண்ண வரிசை வரிசையை அமைக்கிறது, 15 என்பது LED களின் எண்ணிக்கை, 7 என்பது கட்டுப்பாட்டுக்கு ஒதுக்கப்பட்ட வெளியீட்டின் எண்ணிக்கை (கடைசி அளவுருவுக்கு மாறிலியை ஒதுக்குவதும் நல்லது).
லூப் பிளாக் ஒரு வளையத்துடன் தொடங்குகிறது, இது சிவப்பு (சிவப்பு பளபளப்பு) வரிசையின் ஒவ்வொரு பகுதிக்கும் தொடர்ச்சியாக எழுதுகிறது:
க்கு (g=0; g< 15; g++)
{strip[g]=CRGB::சிவப்பு;}
அடுத்து, உருவாக்கப்பட்ட வரிசை விளக்குக்கு அனுப்பப்படுகிறது:
FastLED.show();
தாமதம் 1000 மில்லி விநாடிகள் (இரண்டாவது):
தாமதம்(1000);
பின்னர் நீங்கள் கருப்பு நிறத்தில் எழுதுவதன் மூலம் அனைத்து கூறுகளையும் அதே வழியில் அணைக்கலாம்.
க்கு (int g=0; g< 15; g++)
{strip[g]=CRGB::கருப்பு;}
FastLED.show();
தாமதம்(1000);

ஸ்கெட்சை தொகுத்து பதிவேற்றிய பிறகு, டேப் 2 வினாடிகளில் ஒளிரும். நீங்கள் ஒவ்வொரு வண்ண கூறுகளையும் தனித்தனியாக நிர்வகிக்க வேண்டும் என்றால், வரிக்கு பதிலாக {strip[g]=CRGB::சிவப்பு;} பல வரிகள் பயன்படுத்தப்படுகின்றன:
{
துண்டு[g].r=100;// சிவப்பு தனிமத்தின் ஒளிர்வு அளவை அமைக்கவும்
துண்டு[g].g=11;// பச்சைக்கு அதே
துண்டு[g].b=250;// நீலத்திற்கும் அதே
}
நியோபிக்சல்
இந்த நூலகம் NeoPixel Ring LED ரிங்க்களுடன் மட்டுமே இயங்குகிறது, ஆனால் இது குறைவான வளங்களைக் கொண்டுள்ளது மற்றும் அத்தியாவசியமானவற்றை மட்டுமே கொண்டுள்ளது. Arduino மொழியில், நிரல் இதுபோல் தெரிகிறது:
#உள்ளடக்க <Adafruit_NeoPixel.h>
முந்தைய வழக்கைப் போலவே, நூலகம் இணைக்கப்பட்டுள்ளது, மேலும் லென்டா பொருள் அறிவிக்கப்பட்டது:
Adafruit_NeoPixel lenta=Adafruit_NeoPixel(15, 6);// இதில் 15 என்பது உறுப்புகளின் எண்ணிக்கை மற்றும் 6 என்பது ஒதுக்கப்பட்ட வெளியீடு
அமைவுத் தொகுதியில், டேப் துவக்கப்பட்டது:
வெற்றிட அமைப்பு() {
lenta.begin()
}
லூப் பிளாக்கில், அனைத்து உறுப்புகளும் சிவப்பு நிறத்தில் சிறப்பிக்கப்படுகின்றன, மாறி ஊட்டத்திற்கு அனுப்பப்படும், மேலும் 1 வினாடி தாமதம் உருவாக்கப்படுகிறது:
(int y=0; y<15; y++)// 15 - விளக்கில் உள்ள உறுப்புகளின் எண்ணிக்கை
{lenta.setPixelColor(y, lenta.Color(255,0,0))};
டேப்.ஷோ();
தாமதம்(1000);
பிரகாசம் ஒரு கருப்பு பதிவோடு நிற்கிறது:
(int y=0; y< 15; y++)
{lenta.setPixelColor(y, lenta.Color(0,0,0))};
டேப்.ஷோ();
தாமதம்(1000);

வீடியோ டுடோரியல்: முகவரி நாடாவைப் பயன்படுத்தி காட்சி விளைவுகளின் மாதிரிகள்.
எல்இடிகளை எவ்வாறு ப்ளாஷ் செய்வது என்பதை நீங்கள் கற்றுக்கொண்டவுடன், மென்மையான மாற்றங்களுடன் பிரபலமான ரெயின்போ மற்றும் அரோரா பொரியாலிஸ் உள்ளிட்ட வண்ண விளைவுகளை எவ்வாறு உருவாக்குவது என்பதை நீங்கள் தொடர்ந்து கற்றுக் கொள்ளலாம். முகவரியிடக்கூடிய LEDகள் WS2812B மற்றும் Arduino இதற்கு கிட்டத்தட்ட வரம்பற்ற சாத்தியங்களை வழங்குகின்றன.
