இந்த டுடோரியலில், ESP32 Arduino நிரலாக்கத்தில் அணிகளை (arrays) எவ்வாறு பயன்படுத்துவது என்பதை ஆராய்வோம். அணிகள் ஒரே மாறியில் பல மதிப்புகளை சேமிக்க உங்களை அனுமதிக்கின்றன, இது தரவை நிர்வகிப்பதை எளிதாக்குகிறது, குறிப்பாக ஒத்த பொருட்களின் தொகுப்புகளை கையாளும் போது. இந்த டுடோரியல் அணிகளை வரையறுத்தல், அணுகுதல் மற்றும் மாற்றியமைத்தல், அத்துடன் அவற்றுடன் திறம்பட தொடர்பு கொள்ள லூப்களைப் பயன்படுத்துவது போன்றவற்றில் உங்களுக்கு வழிகாட்டும். இந்த கருத்துக்களைப் புரிந்துகொள்வது ESP32 உடன் நிரலாக்கும் உங்கள் திறனை பெரிதும் மேம்படுத்தும்.
குறிப்பாக, அணி உறுப்புகளை மீண்டும் மீண்டும் செயல்படுத்த for, while, மற்றும் do while போன்ற பல்வேறு வகையான லூப்களைப் பயன்படுத்துவதை நாங்கள் விரிவாகக் காண்போம். இது பணிகளை தானியக்கமாக்கவும், உங்கள் நிரல்களை மிகவும் திறமையாக்கவும் உதவும். இந்த கருத்துக்களை செயலில் காண, நடைமுறை ஆர்ப்பாட்டத்திற்காக 2:30 இல் உள்ள வீடியோவைப் பார்க்கவும்.
வன்பொருள் விளக்கம்
இந்த டுடோரியலில் நாம் பயன்படுத்தும் முதன்மை வன்பொருள் கூறு ESP32 மைக்ரோகண்ட்ரோலர் ஆகும். ESP32 ஒரு சக்திவாய்ந்த, குறைந்த செலவுள்ள மைக்ரோகண்ட்ரோலர் ஆகும், இது Wi-Fi மற்றும் புளூடூத் திறன்கள் இரண்டையும் கொண்டுள்ளது, இது பரந்த அளவிலான IoT பயன்பாடுகளுக்கு ஏற்றதாக அமைகிறது. இந்த போர்டு Arduino Uno போன்ற பணிகளைச் செய்யக்கூடியது, அதே நேரத்தில் கிளவுட் இணைப்பு போன்ற கூடுதல் செயல்பாடுகளை வழங்குகிறது.
இந்த குறிப்பிட்ட டுடோரியலில், டிஜிட்டல் பின்கள் மூலம் வெளியீடுகளைக் கட்டுப்படுத்த ஒரு அணியைப் பயன்படுத்துவோம். ஒவ்வொரு பின்னையும் உயர் அல்லது தாழ்வாக அமைக்கலாம், இது அணியில் சேமிக்கப்பட்ட தரவின் அடிப்படையில் பல்வேறு வடிவங்கள் அல்லது நடத்தைகளை உருவாக்க அனுமதிக்கிறது. ESP32 இன் GPIO பின்கள் வெளியீட்டிற்காக உள்ளமைக்கப்படும், இது இணைக்கப்பட்ட சாதனங்கள் அல்லது கூறுகளை கையாள உதவுகிறது.
வயரிங் வழிமுறைகள்
ESP32-07_74HC595_walking_light_wiring
இந்த டுடோரியலுக்கு உங்கள் ESP32 ஐ வயர் செய்ய, டிஜிட்டல் பின்களை இணைப்பதன் மூலம் தொடங்கவும். உங்கள் ஷிப்ட் ரெஜிஸ்டரின் ST_CP பின்னுடன் STcp பின்னை (27) இணைக்கவும். ஷிப்ட் ரெஜிஸ்டரின் SH_CP பின்னுடன் SHcp பின்னை (26) இணைக்க வேண்டும். இறுதியாக, ஷிப்ட் ரெஜிஸ்டரின் DS பின்னுடன் DS பின்னை (25) இணைக்கவும். பொதுவான குறிப்பை வழங்க ESP32 இன் கிரவுண்ட் ஷிப்ட் ரெஜிஸ்டரின் கிரவுண்டுடன் இணைக்கப்பட்டுள்ளதை உறுதிசெய்யவும்.
நிலையான 3.3 V விநியோகத்தைப் பயன்படுத்தி ESP32 க்கு மின்சாரம் வழங்குவதை உறுதிசெய்யவும். நீங்கள் கூடுதல் கூறுகளைப் பயன்படுத்தினால், அவை ESP32 இன் மின்னழுத்த அளவுகளுடன் இணக்கமாக இருப்பதை உறுதிசெய்யவும். எந்தவொரு சேதத்தையும் தவிர்க்க கணினியை இயக்குவதற்கு முன் உங்கள் இணைப்புகளை இருமுறை சரிபார்ப்பது முக்கியம் (வீடியோவில் 4:10 இல்).
குறியீடு எடுத்துக்காட்டுகள் & விளக்கம்
வழங்கப்பட்ட குறியீட்டு பகுதியில், பைனரி மதிப்புகளை வைத்திருக்கும் datArray என்ற அணியை வரையறுக்கிறோம். அணியில் உள்ள ஒவ்வொரு மதிப்பும் GPIO பின்கள் வழியாக வெளியிடக்கூடிய வெவ்வேறு வடிவத்திற்கு ஒத்திருக்கிறது. அணி பின்வருமாறு வரையறுக்கப்படுகிறது:
இந்த அணியில் பைனரி பிரதிநிதித்துவங்கள் உள்ளன, ஒவ்வொரு பிட்டும் ஒரு பின் நிலைக்கு (ஆன் அல்லது ஆஃப்) ஒத்திருக்கிறது. loop() செயல்பாட்டில், for லூப்பைப் பயன்படுத்தி இந்த வடிவங்களை வெளியிட அணி வழியாக மீண்டும் செயல்படுகிறோம்:
for(int num = 0; num < 10; num++) {
digitalWrite(STcp, LOW);
shiftOut(DS, SHcp, MSBFIRST, datArray[num]);
digitalWrite(STcp, HIGH);
delay(1000);
}
இந்த லூப்பில், datArray இலிருந்து ஷிப்ட் ரெஜிஸ்டருக்கு தரவை தொடர்ந்து அனுப்புகிறோம், இது ஒரு நடைபயிற்சி ஒளி விளைவை உருவாக்குகிறது. delay(1000) ஒவ்வொரு வடிவத்திற்கும் இடையே ஒரு இடைவெளியை அறிமுகப்படுத்துகிறது, இது மாற்றங்களைக் காண அனுமதிக்கிறது. முழு குறியீட்டிற்கு, கீழே பார்க்கவும், ஏனெனில் அது மாறும் விதமாக ஏற்றப்படும்.
ஆர்ப்பாட்டம் / என்ன எதிர்பார்க்கலாம்
வயரிங் முடித்து குறியீட்டை பதிவேற்றிய பிறகு, இணைக்கப்பட்ட சாதனங்களில் நடைபயிற்சி ஒளி விளைவை நீங்கள் காண வேண்டும். அணியில் உள்ள ஒவ்வொரு பிட்டும் வரிசையாக ஒளிரும், இது பார்வைக்கு ஈர்க்கும் வடிவத்தை உருவாக்குகிறது. தலைகீழான இணைப்புகள் எதிர்பாராத நடத்தைக்கு வழிவகுக்கும் என்பதால் கவனமாக இருங்கள் (வீடியோவில் 8:15 இல்).
வீடியோ நேர முத்திரைகள்
00:00 தொடக்கம்
1:24 அறிமுகம்
3:15 74HC595 ஷிப்ட் ரெஜிஸ்டர் சிப்
5:25 நடைபயிற்சி ஒளி வயரிங்
18:56 74HC595 க்கான Arduino குறியீடு விளக்கப்பட்டது
807-ESP32 Tutorial 7/55 - Walking Light using 74HC595 and learn array
மொழி: C++
const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP
const int DS = 25; //DS
int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};
void setup ()
{
//set pins to output
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
void loop()
{
for(int num = 0; num <10; num++)
{
digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
delay(1000);
}
}