ESP32 ADC அறிமுகம்
ESP32 போர்டில் இரண்டு ஒருங்கிணைந்த 12-பிட் ADCகள் உள்ளன, அவை SAR (தொடர்ச்சியான தோராயப் பதிவுகள்) ADCகள் என்றும் அழைக்கப்படுகிறது. ESP32 போர்டு ADCகள் 18 வெவ்வேறு அனலாக் உள்ளீட்டு சேனல்களை ஆதரிக்கின்றன, அதாவது 18 வெவ்வேறு அனலாக் சென்சார்களை இணைக்க முடியும்.
ஆனால் இங்கு அப்படியல்ல; இந்த அனலாக் சேனல்கள் சேனல் 1 மற்றும் சேனல் 2 என இரண்டு வகைகளாகப் பிரிக்கப்பட்டுள்ளன, இந்த இரண்டு சேனல்களும் ADC உள்ளீட்டிற்கு எப்போதும் கிடைக்காத சில பின்களைக் கொண்டுள்ளன. அந்த ADC பின்கள் என்ன என்பதை மற்றவர்களுடன் சேர்த்து பார்க்கலாம்.
ESP32 ADC பின்கள்
முன்பு குறிப்பிட்டது போல் ESP32 போர்டில் 18 ADC சேனல்கள் உள்ளன. மொத்தம் 30 GPIOகள் கொண்ட DEVKIT V1 DOIT போர்டில் 18 இல் 15 மட்டுமே உள்ளன.
உங்கள் போர்டைப் பார்த்து, ADC பின்களை நாங்கள் கீழே உள்ள படத்தில் முன்னிலைப்படுத்தியதைக் கண்டறியவும்:
சேனல் 1 ADC பின்கள்
ESP32 DEVKIT DOIT போர்டின் கொடுக்கப்பட்ட பின் மேப்பிங் பின்வருமாறு. ESP32 இல் ADC1 8 சேனல்களைக் கொண்டுள்ளது, இருப்பினும் DOIT DEVKIT போர்டு 6 சேனல்களை மட்டுமே ஆதரிக்கிறது. ஆனால் இவை இன்னும் போதுமானதை விட அதிகமாக இருக்கும் என்று நான் உறுதியளிக்கிறேன்.
ADC1 | GPIO பின் ESP32 |
---|---|
CH0 | 36 |
CH1 | NA இன் 30 பின் பதிப்பு ESP32 (Devkit MUST) |
CH2 | அந்த |
CH3 | 39 |
CH4 | 32 |
CH5 | 33 |
CH6 | 3. 4 |
CH7 | 35 |
பின்வரும் படம் ESP32 ADC1 சேனல்களைக் காட்டுகிறது:
சேனல் 2 ADC பின்கள்
DEVKIT DOIT பலகைகள் ADC2 இல் 10 அனலாக் சேனல்களைக் கொண்டுள்ளன. ADC2 ஆனது அனலாக் தரவைப் படிக்க 10 அனலாக் சேனல்களைக் கொண்டிருந்தாலும், இந்த சேனல்கள் எப்போதும் பயன்படுத்தக் கிடைக்காது. ADC2 ஆனது ஆன்போர்டு வைஃபை டிரைவர்களுடன் பகிரப்படுகிறது, அதாவது போர்டு வைஃபை பயன்படுத்தும் நேரத்தில் இந்த ADC2 கிடைக்காது. Wi-Fi இயக்கி முடக்கத்தில் இருக்கும்போது மட்டுமே ADC2ஐப் பயன்படுத்துவதே இந்தச் சிக்கலுக்கான தீர்வு.
கீழே உள்ள படம் ADC2 சேனலின் பின் மேப்பிங்கைக் காட்டுகிறது.
ESP32 ADC ஐ எவ்வாறு பயன்படுத்துவது
ESP32 ADC ஆனது Arduino போன்ற அதே வழியில் வேலை செய்கிறது, இங்கு 12 பிட் ADC உள்ளது. எனவே, ESP32 போர்டு அனலாக் மின்னழுத்த மதிப்புகளை 0 முதல் 4095 வரை டிஜிட்டல் தனித்த மதிப்புகளில் வரைபடமாக்குகிறது.
- ESP32 ADC க்கு கொடுக்கப்பட்ட மின்னழுத்தம் பூஜ்ஜியமாக இருந்தால், ADC சேனலின் டிஜிட்டல் மதிப்பு பூஜ்ஜியமாக இருக்கும்.
- ADC க்கு கொடுக்கப்பட்ட மின்னழுத்தம் அதிகபட்சம் 3.3V என்றால் வெளியீட்டு டிஜிட்டல் மதிப்பு 4095 க்கு சமமாக இருக்கும்.
- அதிக மின்னழுத்தத்தை அளவிட, மின்னழுத்த பிரிப்பான் முறையைப் பயன்படுத்தலாம்.
குறிப்பு: ESP32 ADC ஆனது முன்னிருப்பாக 12-பிட்களில் அமைக்கப்பட்டுள்ளது, இருப்பினும் அதை 0-பிட், 10-பிட் மற்றும் 11-பிட் என கட்டமைக்க முடியும். 12-பிட் இயல்புநிலை ADC மதிப்பை அளவிட முடியும் 2^12=4096 மற்றும் அனலாக் மின்னழுத்தம் 0V முதல் 3.3V வரை இருக்கும்.
ESP32 இல் ADC வரம்பு
ESP32 ADC இன் சில வரம்புகள் இங்கே:
- ESP32 ADC ஆனது 3.3V க்கும் அதிகமான மின்னழுத்தத்தை நேரடியாக அளவிட முடியாது.
- Wi-Fi இயக்கிகள் இயக்கப்பட்டால் ADC2 ஐப் பயன்படுத்த முடியாது. ADC1 இன் 8 சேனல்களை மட்டுமே பயன்படுத்த முடியும்.
- ESP32 ADC மிகவும் நேரியல் அல்ல; அது காட்டுகிறது நேரியல் அல்லாத நடத்தை மற்றும் 3.2V மற்றும் 3.3V இடையே வேறுபடுத்த முடியாது. இருப்பினும், ESP32 ADC ஐ அளவீடு செய்ய முடியும். இங்கே ESP32 ADC நேரியல் அல்லாத நடத்தையை அளவீடு செய்ய வழிகாட்டும் ஒரு கட்டுரை.
ESP32 இன் நேரியல் அல்லாத நடத்தை Arduino IDE இன் தொடர் மானிட்டரில் காணலாம்.
Arduino IDE ஐப் பயன்படுத்தி ESP32 ADC நிரல்
ESP32 ADC இன் செயல்பாட்டைப் புரிந்துகொள்வதற்கான சிறந்த வழி, ஒரு பொட்டென்டோமீட்டரை எடுத்து, பூஜ்ஜிய எதிர்ப்பிற்கு எதிராக மதிப்புகளை அதிகபட்சமாகப் படிப்பதாகும். பொட்டென்டோமீட்டருடன் ESP32 இன் சர்க்யூட் படம் பின்வருமாறு.
பொட்டென்டோமீட்டரின் நடு முள் ESP32 இன் டிஜிட்டல் பின் 25 மற்றும் 3.3V மற்றும் GND பின்னுடன் 2 டெர்மினல் பின்களுடன் இணைக்கவும்.
வன்பொருள்
பின்வரும் படம் பொட்டென்டோமீட்டருடன் ESP32 இன் வன்பொருளைக் காட்டுகிறது. தேவையான கூறுகளின் பட்டியல் பின்வருமாறு:
- ESP32 DEVKIT DOIT போர்டு
- பொட்டென்டோமீட்டர்
- ப்ரெட்போர்டு
- ஜம்பர் கம்பிகள்
குறியீடு
Arduino IDE ஐ திறந்து கீழே உள்ள குறியீட்டை ESP32 போர்டில் பதிவேற்றவும். Arduino IDE கிளிக் மூலம் ESP32 ஐ எவ்வாறு நிறுவுவது மற்றும் கட்டமைப்பது என்பதைச் சரிபார்க்கவும் இங்கே .
நிலையான முழு எண்ணாக Pin_Potentiometer = 25 ; /*Potentiometer GPIO 25 இல் இணைக்கப்பட்டுள்ளது (அனலாக் ADC2_CH8)*/முழு எண்ணாக Val_Potentiometer = 0 ; /*பொட்டென்டோமீட்டர் வாசிப்பு மதிப்பு இங்கே சேமிக்கப்படும்*/
வெற்றிடமானது அமைவு ( ) {
தொடர். தொடங்கும் ( 115200 ) ; /*தொடர் தொடர்பு தொடங்குகிறது*/
}
வெற்றிடமானது வளைய ( ) {
Val_Potentiometer = அனலாக் ரீட் ( Pin_Potentiometer ) ; /*பொட்டென்டோமீட்டர் மதிப்பைப் படித்தல்*/
தொடர். println ( Val_Potentiometer ) ; /*Prints Potentiometer மதிப்பு*/
தாமதம் ( 2000 ) ; /*2 வினாடிகள் தாமதம்*/
}
மேலே உள்ள குறியீட்டில், ESP32 போர்டில் பொட்டென்டோமீட்டருக்கான டிஜிட்டல் பின் 25 ஐ துவக்குகிறோம். உள்ளீட்டை எடுக்க அடுத்து Val_Potentiometer ஒரு மாறி துவக்கப்படுகிறது. அடுத்த தொடர் தொடர்பு பாட் வீதத்தை வரையறுப்பதன் மூலம் தொடங்கப்படுகிறது.
இல் வளைய அனலாக்ரீட்() செயல்பாட்டைப் பயன்படுத்தி குறியீட்டின் ஒரு பகுதி ADC மதிப்புகள் ESP32 இன் பின் 25 இல் படிக்கப்படும். அடுத்து Serial.print() ஐப் பயன்படுத்தி அனைத்து மதிப்புகளும் தொடர் மானிட்டரில் அச்சிடப்படும்.
வெளியீடு
வெளியீடு டிஜிட்டல் தனித்துவமான மதிப்புகளுக்கு எதிராக மேப் செய்யப்பட்ட அனலாக் மதிப்புகளைக் காட்டுகிறது. வாசிப்பு மின்னழுத்தம் அதிகபட்சமாக இருக்கும் போது 3.3V டிஜிட்டல் வெளியீடு 4095 க்கு சமம் மற்றும் வாசிப்பு மின்னழுத்தம் 0V ஆக இருக்கும் போது டிஜிட்டல் வெளியீடு 0 ஆகும்.
முடிவுரை
அனலாக் முதல் டிஜிட்டல் மாற்றிகள் எல்லா இடங்களிலும் பயன்படுத்தப்படுகின்றன, குறிப்பாக நாம் அனலாக் சென்சார்கள் மற்றும் வன்பொருளுடன் மைக்ரோகண்ட்ரோலர் போர்டுகளை இடைமுகப்படுத்த வேண்டியிருக்கும் போது. ESP32 ADC க்காக ADC1 மற்றும் ADC2 என இரண்டு சேனல்களைக் கொண்டுள்ளது. இந்த இரண்டு சேனல்களும் ஒன்றிணைந்து அனலாக் சென்சார்களை இடைமுகப்படுத்த 18 பின்களை வழங்குகின்றன. இருப்பினும், அவற்றில் 3 ESP32 30 பின் பதிப்பில் கிடைக்கவில்லை. அனலாக் மதிப்புகளைப் படிப்பது பற்றி மேலும் அறிய கட்டுரையைப் படிக்கவும்.