பல்ஸ் அகல மாடுலேஷன் (பிடபிள்யூஎம்) என்பது ஒரு நுட்பமாகும், இது அலை அதிர்வெண்ணை மாறாமல் வைத்திருக்கும்போது துடிப்பின் அகலத்தை வேறுபடுத்துகிறது. எல்.ஈ.டி பிரகாசம், டி.சி மோட்டரின் வேகம், ஒரு சர்வோ மோட்டாரைக் கட்டுப்படுத்துதல் அல்லது பிற சந்தர்ப்பங்களில் டிஜிட்டல் மூலத்தைப் பயன்படுத்தி அனலாக் சிக்னலை உருவாக்க வேண்டிய பி.டபிள்யூ.எம் நுட்பம் முக்கியமாகப் பயன்படுத்தப்படுகிறது. முந்தைய கட்டுரையில் PWM ஐ விரிவாக விளக்கினோம்.
இந்த டுடோரியலில், ESP32 மேம்பாட்டுக் குழுவின் PWM (துடிப்பு அகல பண்பேற்றம்) ஊசிகளைப் பற்றி பேசப் போகிறோம். PWM சமிக்ஞையைப் பெற ESP32 மேம்பாட்டு வாரியத்தின் (GP, GND, Tx, Rx மற்றும் EN தவிர) அனைத்து GPIO ஊசிகளையும் பயன்படுத்தலாம். ஒரு ESP32 PWM எடுத்துக்காட்டு, PWM சமிக்ஞைகளுக்கு ஏற்ப எல்.ஈ.டி பிரகாசத்தை மாற்றும் எளிய சுற்று ஒன்றை உருவாக்குவோம்.
கூறுகள் தேவை
- ESP32
- எல்.ஈ.டி.
- 330 மின்தடை
- 10 கே பாட்
- ப்ரெட்போர்டு
PWM தலைமுறை
ESP32 இல் PWM தலைமுறையை விளக்கும் முன், PWM உடன் தொடர்புடைய சில சொற்களைப் பற்றி விவாதிப்போம்.
டன் (சரியான நேரத்தில்): சமிக்ஞை அதிகமாக இருக்கும் கால அளவு.
TOFF (இனிய நேரம்): சமிக்ஞை குறைவாக இருக்கும் கால அளவு.
காலம்: இது PWM சமிக்ஞையின் நேரம் மற்றும் ஆஃப் நேரத்தின் தொகை.
TotalPeriod = T ON + T OFF
கடமை சுழற்சி: பி.டபிள்யூ.எம் சிக்னலின் காலத்தில் சிக்னல் அதிகமாக இருந்த நேரத்தின் சதவீதம்.
கடமை சுழற்சி = டி ஆன் / டி மொத்தம் * 100
எடுத்துக்காட்டாக, மொத்தம் 10 மீட்டர் கொண்ட ஒரு துடிப்பு 5 மீட்டருக்கு ஆன் (உயர்) ஆக இருந்தால். பின்னர், கடமை சுழற்சி இருக்கும்:
கடமை சுழற்சி = 5/10 * 100 = 50% கடமை சுழற்சி

சுற்று ஒரு எல்.ஈ.டி, ஒரு மின்தடை மற்றும் 10 கே பொட்டென்டோமீட்டரைக் கொண்டுள்ளது. எல்.ஈ.டி யின் எதிர்மறை முள் 330 Ω மின்தடையின் மூலம் ஈ.எஸ்.பி 32 இன் ஜி.என்.டி உடன் இணைக்கப்பட்டுள்ளது. நீங்கள் 230 Ω மற்றும் 500 between க்கு இடையில் எந்த மின்தடை மதிப்பையும் பயன்படுத்தலாம். எல்.ஈ.டி நேர்மறை முள் GPIO 16 உடன் இணைக்கவும், பாட் சிக்னல் முள் ESP32 இன் ADC1 (VP) முள் உடன் இணைக்கவும்.
ESP32 PWM க்கான குறியீடு விளக்கம்
முழுமையான குறியீடு பக்கத்தின் இறுதியில் கொடுக்கப்பட்டுள்ளது.
இந்த குறியீட்டிற்கு எந்த நூலகமும் தேவையில்லை, எனவே முள் வரையறுப்பதன் மூலம் உங்கள் குறியீட்டைத் தொடங்கவும், எல்.ஈ.டி இணைக்கப்பட்டுள்ளது. என் விஷயத்தில், எல்.ஈ.டி இணைக்க ஜி.பீ.ஓ 16 ஐப் பயன்படுத்தினேன்.
const int ledPin = 16; // 16 GPIO16 உடன் ஒத்துள்ளது
அதன் பிறகு, அடுத்த வரிகளில் PWM சமிக்ஞை பண்புகளை அமைக்கவும். நான் PWM அதிர்வெண்ணை 9000 ஆகவும், தீர்மானம் 10 ஆகவும் அமைத்தேன், வெவ்வேறு PWM சமிக்ஞைகளை உருவாக்க நீங்கள் அதை மாற்றலாம். ESP32 பலகைகள் PWM தீர்மானத்தை 1 பிட் முதல் 16 பிட்கள் வரை ஆதரிக்கின்றன. நீங்கள் ஒரு PWM சேனலையும் தேர்வு செய்ய வேண்டும். ESP32 மொத்தம் 16 (0 முதல் 15) PWM சேனல்களைக் கொண்டுள்ளது.
const int freq = 9000; const int ledChannel = 0; const int resolution = 10;
இப்போது வெற்றிட அமைவு () செயல்பாட்டின் உள்ளே, எல்.ஈ.டி பி.டபிள்யூ.எம். ஐ நீங்கள் முன்பு அமைத்த பண்புகளுடன் லெட்ஸ்கெட்அப் () செயல்பாட்டைப் பயன்படுத்தி உள்ளமைக்கவும் . அடுத்த வரியில், எல்.ஈ.டி இணைக்கப்பட்டுள்ள ஜி.பீ.ஓ முள் வரையறுக்கவும். LedcAttachPin () செயல்பாடு GPIO முள் மற்றும் சமிக்ஞையை உருவாக்கிக்கொள்கின்ற சேனல் வரையறுக்க பயன்படுத்தப்படுகிறது. என் விஷயத்தில், நான் GPIO 16 மற்றும் ledChannel ஐ சேனல் 0 உடன் ஒத்திருக்கும் ledPin ஐப் பயன்படுத்தினேன்.
void setup () {Serial.begin (9600); ledcSetup (ledChannel, freq, resolution); ledcAttachPin (ledPin, ledChannel); }
இல் வெற்றிடத்தை லூப், அங்கு பாட் இணைக்கப்பட்டுள்ளது அனலாக் முள் படித்து எனப்படும் ஒரு மாறுபடும் உள்ள வாசிப்பு சேமிக்க 'dutyCycle' . பொட்டென்டோமீட்டரின் சுழற்சியின் படி எல்.ஈ.டி பிரகாசம் அதிகரிக்கும் அல்லது குறையும். LedcWrite () மிகவும் ஒத்ததாக இருக்கிறது analogWrite ().
void loop () {dutyCycle = அனலாக் ரீட் (A0); ledcWrite (ledChannel, dutyCycle); தாமதம் (15); }
ESP32 PWM சிக்னல்களை சோதிக்கிறது
ESP32 PWM சமிக்ஞைகளை சோதிக்க, சுற்று வரைபடத்தின் படி எல்.ஈ.டி மற்றும் பொட்டென்டோமீட்டரை இணைத்து, குறியீட்டை உங்கள் ESP32 இல் பதிவேற்றவும். உங்களிடம் சரியான பலகை மற்றும் COM போர்ட் தேர்ந்தெடுக்கப்பட்டிருப்பதை உறுதிப்படுத்திக் கொள்ளுங்கள். எல்.ஈ.டி பிரகாசத்தை அதிகரிக்க அல்லது குறைக்க இப்போது பொட்டென்டோமீட்டரை சுழற்றுங்கள்.

முழுமையான வேலை கீழே கொடுக்கப்பட்டுள்ள வீடியோவில் காட்டப்பட்டுள்ளது. மேலும், இணைப்பைப் பின்தொடர்வதன் மூலம் பிற ESP32 அடிப்படையிலான திட்டங்களையும் சரிபார்க்கவும்.
