- ஏ.வி.ஆர் மைக்ரோகண்ட்ரோலர் அட்மேகா 16 இல் பி.டபிள்யூ.எம் பின்ஸ்
- பி.டபிள்யூ.எம் சிக்னல் என்றால் என்ன?
- கூறுகள் தேவை
- சுற்று வரைபடம்
- பி.டபிள்யூ.எம்
பல்ஸ் அகல மாடுலேஷன் (பிடபிள்யூஎம்) என்பது ஒரு சக்திவாய்ந்த நுட்பமாகும், அங்கு அதிர்வெண் மாறாமல் வைத்திருப்பதன் மூலம் துடிப்பின் அகலம் மாற்றப்படுகிறது. இந்த நுட்பம் இன்று பல கட்டுப்பாட்டு அமைப்புகளில் பயன்படுத்தப்படுகிறது. PWM இன் பயன்பாடு மட்டுப்படுத்தப்படவில்லை மற்றும் இது மோட்டார் வேக கட்டுப்பாடு, அளவீட்டு, சக்தி கட்டுப்பாடு மற்றும் தகவல் தொடர்பு போன்ற பரவலான பயன்பாடுகளில் பயன்படுத்தப்படுகிறது. PWM நுட்பத்தில், டிஜிட்டல் சிக்னல்களைப் பயன்படுத்தி அனலாக் வெளியீட்டு சமிக்ஞையை ஒருவர் எளிதாக உருவாக்க முடியும். இந்த பயிற்சி PWM, அதன் சொற்களஞ்சியம் மற்றும் மைக்ரோகண்ட்ரோலரைப் பயன்படுத்தி அதை எவ்வாறு செயல்படுத்தலாம் என்பதைப் புரிந்துகொள்ள உங்களுக்கு உதவும். இந்த டுடோரியலில் எல்.ஈ.டி யின் தீவிரத்தை வேறுபடுத்துவதன் மூலம் ஏ.வி.ஆர் அட்மேகா 16 மைக்ரோகண்ட்ரோலருடன் பி.டபிள்யூ.எம்.
PWM இன் அடிப்படைகளை விரிவாக புரிந்து கொள்ள, தயவுசெய்து பல்வேறு மைக்ரோகண்ட்ரோலர்களுடன் PWM இல் எங்கள் முந்தைய பயிற்சிகளுக்குச் செல்லவும்:
- ARM7-LPC2148 PWM டுடோரியல்: எல்.ஈ.டி பிரகாசத்தை கட்டுப்படுத்துதல்
- MSP430G2 ஐப் பயன்படுத்தி துடிப்பு அகல மாடுலேஷன் (PWM): எல்.ஈ.டி பிரகாசத்தை கட்டுப்படுத்துதல்
- MPLAB மற்றும் XC8 உடன் PIC மைக்ரோகண்ட்ரோலரைப் பயன்படுத்தி PWM ஐ உருவாக்குகிறது
- STM32F103C8 இல் துடிப்பு அகல பண்பேற்றம் (PWM): DC விசிறியின் வேகத்தைக் கட்டுப்படுத்துதல்
- PIC மைக்ரோகண்ட்ரோலரின் GPIO ஊசிகளில் PWM சமிக்ஞைகளை உருவாக்குதல்
- ராஸ்பெர்ரி பை பிடபிள்யூஎம் டுடோரியல்
ஏ.வி.ஆர் மைக்ரோகண்ட்ரோலர் அட்மேகா 16 இல் பி.டபிள்யூ.எம் பின்ஸ்
Atmega16 நான்கு பிரத்யேக PWM ஊசிகளைக் கொண்டுள்ளது. இந்த ஊசிகளான PB3 (OC0), PD4 (OC1B), PD5 (OC1A), PD7 (OC2).

மேலும் Atmega16 இல் இரண்டு 8-பிட் டைமர்களும் ஒரு 16 பிட் டைமரும் உள்ளன. டைமர் 0 மற்றும் டைமர் 2 ஆகியவை 8-பிட் டைமர்கள், டைமர் 1 16-பிட் டைமர் ஆகும். PWM ஐ உருவாக்க டைமர்கள் PWM ஐ உருவாக்க டைமர்கள் பயன்படுத்தப்படுவதால் டைமர்களைப் பற்றிய ஒரு கண்ணோட்டத்தை நாம் கொண்டிருக்க வேண்டும். டைமர் இயங்கும் வினாடிக்கு சுழற்சியின் எண்ணிக்கை அதிர்வெண் என்பதை நாம் அறிவோம். எனவே அதிக அதிர்வெண் எங்களுக்கு வேகமான டைமரைக் கொடுக்கும். PWM ஐ உருவாக்குவதில், வேகமான PWM அதிர்வெண் வெளியீட்டின் மீது சிறந்த கட்டுப்பாட்டைக் கொடுக்கும், ஏனெனில் இது புதிய PWM கடமை சுழற்சிகளுக்கு விரைவாக பதிலளிக்க முடியும்.
இந்த Atmega16 PWM டுடோரியலில் நாம் டைமர் 2 ஐப் பயன்படுத்துவோம். நீங்கள் எந்த கடமை சுழற்சியையும் தேர்வு செய்யலாம். PWM இல் கடமை சுழற்சி என்றால் என்னவென்று உங்களுக்குத் தெரியாவிட்டால், சுருக்கமாக விவாதிப்போம்.
பி.டபிள்யூ.எம் சிக்னல் என்றால் என்ன?
பல்ஸ் அகல மாடுலேஷன் (பிடபிள்யூஎம்) என்பது டிஜிட்டல் சிக்னலாகும், இது பொதுவாக கட்டுப்பாட்டு சுற்றுகளில் பயன்படுத்தப்படுகிறது. சமிக்ஞை அதிகமாக இருக்கும் நேரத்தை "சரியான நேரத்தில்" என்றும், சமிக்ஞை குறைவாக இருக்கும் நேரத்தை "ஆஃப் டைம்" என்றும் அழைக்கப்படுகிறது. கீழே விவாதிக்கப்பட்டபடி ஒரு PWM க்கு இரண்டு முக்கியமான அளவுருக்கள் உள்ளன:
PWM இன் கடமை சுழற்சி
PWM சமிக்ஞை HIGH (சரியான நேரத்தில்) இருக்கும் நேரத்தின் சதவீதம் கடமை சுழற்சி என அழைக்கப்படுகிறது.
100ms துடிப்பு சமிக்ஞையைப் போலவே, சமிக்ஞை 50ms க்கு HIGH மற்றும் 50ms க்கு LOW எனில், துடிப்பு அரை நேரம் HIGH மற்றும் அரை நேரம் LOW ஆக இருந்தது. எனவே கடமை சுழற்சி 50% என்று நாம் கூறலாம். இதேபோல் துடிப்பு 25 மீட்டர் உயரமான நிலையிலும், 75 மீட்டர் குறைந்த மாநிலத்திலும் 100 மீட்டரில் இருந்தால், கடமை சுழற்சி 25% ஆக இருக்கும். உயர் நிலையின் காலத்தை மட்டுமே நாம் கணக்கிடுகிறோம் என்பதைக் கவனியுங்கள். காட்சி புரிதலுக்காக கீழே உள்ள படத்தை நீங்கள் குறிப்பிடலாம். கடமை சுழற்சிக்கான சூத்திரம் பின்னர்,
கடமை சுழற்சி (%) = சரியான நேரத்தில் / (நேரம் + ஆஃப் நேரம்)

எனவே, கடமை சுழற்சியை மாற்றுவதன் மூலம் நாம் PWM இன் அகலத்தை மாற்றலாம், இதனால் எல்.ஈ.டி பிரகாசம் மாறுகிறது. எல்.ஈ.டி பிரகாசத்தை கட்டுப்படுத்துவதில் வெவ்வேறு கடமை சுழற்சியைப் பயன்படுத்துவதற்கான டெமோ எங்களிடம் இருக்கும். இந்த டுடோரியலின் முடிவில் டெமோ வீடியோவைச் சரிபார்க்கவும்.
கடமை சுழற்சியைத் தேர்ந்தெடுத்த பிறகு, அடுத்த கட்டமாக PWM பயன்முறையைத் தேர்ந்தெடுக்கும். PWM பயன்முறை PWM எவ்வாறு செயல்பட வேண்டும் என்று குறிப்பிடுகிறது. முக்கியமாக 3 வகையான PWM முறைகள் உள்ளன. இவை பின்வருமாறு:
- வேகமாக பி.டபிள்யூ.எம்
- கட்டம் சரியான பி.டபிள்யூ.எம்
- கட்டம் மற்றும் அதிர்வெண் சரியான பி.டபிள்யூ.எம்
கட்ட மாற்றம் முக்கியமில்லாத இடத்தில் வேகமாக PWM பயன்படுத்தப்படுகிறது. வேகமான PWM ஐப் பயன்படுத்துவதன் மூலம், PWM மதிப்புகளை விரைவாக வெளியிடுவோம். கட்ட மாற்றமானது மோட்டார் கட்டுப்பாடு போன்ற செயல்பாட்டை பாதிக்கும் இடத்தில் வேகமான PWM ஐப் பயன்படுத்த முடியாது, எனவே இதுபோன்ற பயன்பாட்டில் PWM இன் பிற முறைகள் பயன்படுத்தப்படுகின்றன. எல்.ஈ.டி பிரகாசத்தை நாங்கள் கட்டுப்படுத்துவதால், கட்ட மாற்றம் பெரிதும் பாதிக்காது, எனவே வேகமான பிடபிள்யூஎம் பயன்முறையைப் பயன்படுத்துவோம்.
இப்போது PWM ஐ உருவாக்க, உள் டைமரை எண்ணுவதைக் கட்டுப்படுத்துவோம், பின்னர் ஒரு குறிப்பிட்ட எண்ணிக்கையில் பூஜ்ஜியத்திற்கு மீண்டும் அமைப்போம், எனவே டைமர் எண்ணப்பட்டு பின்னர் மீண்டும் மீண்டும் பூஜ்ஜியத்திற்கு அமைக்கப்படும். இது காலத்தை அமைக்கிறது. ஒரு துடிப்பைக் கட்டுப்படுத்துவதற்கான விருப்பத்தை இப்போது கொண்டிருக்கிறோம், டைமரில் ஒரு குறிப்பிட்ட எண்ணிக்கையில் ஒரு துடிப்பை இயக்கும்போது அது மேலே செல்லும். கவுண்டர் 0 க்குத் திரும்பும்போது, துடிப்பை அணைக்கவும். இதில் நிறைய நெகிழ்வுத்தன்மை உள்ளது, ஏனெனில் நீங்கள் எப்போதும் டைமரின் எண்ணிக்கையை அணுகலாம் மற்றும் ஒற்றை டைமருடன் வெவ்வேறு பருப்புகளை வழங்கலாம். பல எல்.ஈ.டிகளை ஒரே நேரத்தில் கட்டுப்படுத்த விரும்பினால் இது மிகவும் நல்லது. இப்போது PWM க்காக Atmega16 உடன் ஒரு எல்.ஈ.டி இடைமுகத்தைத் தொடங்குவோம்.
PWM தொடர்பான அனைத்து திட்டங்களையும் இங்கே பாருங்கள்.
கூறுகள் தேவை
- Atmega16 AVR மைக்ரோகண்ட்ரோலர் ஐ.சி.
- 16 மெகா ஹெர்ட்ஸ் கிரிஸ்டல் ஆஸிலேட்டர்
- இரண்டு 100nF மின்தேக்கிகள்
- இரண்டு 22pF மின்தேக்கிகள்
- புஷ் பொத்தான்
- ஜம்பர் கம்பிகள்
- ப்ரெட்போர்டு
- USBASP v2.0
- 2 லெட் (எந்த நிறமும்)
சுற்று வரைபடம்

நாங்கள் PWM க்கு OC2 ஐப் பயன்படுத்துகிறோம், அதாவது Pin21 (PD7). எனவே Atmega16 இன் PD7 முனையில் ஒரு எல்.ஈ.டியை இணைக்கவும்.

பி.டபிள்யூ.எம்
முழுமையான நிரல் கீழே கொடுக்கப்பட்டுள்ளது. JTAG மற்றும் Atmel ஸ்டுடியோவைப் பயன்படுத்தி Atmega16 இல் நிரலை எரிக்கவும், LED இல் PWM விளைவைப் பார்க்கவும். PWM இன் மாறுபட்ட கடமை சுழற்சியின் காரணமாக அதன் பிரகாசம் மெதுவாக அதிகரிக்கும் மற்றும் குறையும். இறுதியில் கொடுக்கப்பட்ட வீடியோவைச் சரிபார்க்கவும்.
டைமர் 2 பதிவை அமைப்பதன் மூலம் நிரலாக்க Atmega16 ஐத் தொடங்கவும். டைமர் 2 பதிவு பிட்கள் பின்வருமாறு, அதற்கேற்ப பிட்களை அமைக்கலாம் அல்லது மீட்டமைக்கலாம்.

இப்போது நாம் டைமர் 2 இன் அனைத்து பிட்களையும் பற்றி விவாதிப்போம், எனவே எழுதப்பட்ட நிரலைப் பயன்படுத்தி விரும்பிய பிடபிள்யூஎம் பெறலாம்.
டைமர் 2 பதிவேட்டில் முக்கியமாக நான்கு பாகங்கள் உள்ளன:
FOC2 (டைமர் 2 க்கான கட்டாய வெளியீடு ஒப்பிடுக): WGM பிட்கள் PWM அல்லாத பயன்முறையைக் குறிப்பிடும்போது FOC2 பிட் அமைக்கப்படுகிறது.
WGM2 (டைமர் 2 க்கான அலை தலைமுறை முறை): இந்த பிட்கள் கவுண்டரின் எண்ணும் வரிசையையும், அதிகபட்ச (TOP) எதிர் மதிப்பிற்கான மூலத்தையும், எந்த வகையான அலைவடிவ தலைமுறையைப் பயன்படுத்த வேண்டும் என்பதையும் கட்டுப்படுத்துகின்றன.
COM2 (டைமர் 2 க்கான வெளியீட்டு பயன்முறையை ஒப்பிடுக): இந்த பிட்கள் வெளியீட்டு நடத்தையை கட்டுப்படுத்துகின்றன. முழுமையான பிட் விளக்கம் கீழே விளக்கப்பட்டுள்ளது.
TCCR2 - = (1 <
PWM ஃபாஸ்ட் பயன்முறையைச் செயல்படுத்த WGM20 மற்றும் WGM21 பிட்களை HIGH ஆக அமைக்கவும். WGM அலைவடிவ தலைமுறை பயன்முறையை குறிக்கிறது. தேர்வு பிட்கள் கீழே உள்ளன.
|
WGM00 |
WGM01 |
டைமர் 2 பயன்முறை செயல்பாடு |
|
0 |
0 |
இயல்பான பயன்முறை |
|
0 |
1 |
சி.டி.சி (ஒப்பிடு போட்டியில் டைமரை அழிக்கவும்) |
|
1 |
0 |
பி.டபிள்யூ.எம்., கட்டம் சரியானது |
|
1 |
1 |
வேகமான PWM பயன்முறை |
அலைவடிவ தலைமுறை பயன்முறையைப் பற்றிய கூடுதல் விவரங்களுக்கு, நீங்கள் Atmega16 இன் அதிகாரப்பூர்வ தரவுத்தாள் பார்க்கவும்.
TCCR2 - = (1 <
நாங்கள் எந்த முன் அளவிடுதலையும் பயன்படுத்தவில்லை, எனவே கடிகார மூல பதிவேட்டை '001' என அமைத்துள்ளோம்.
கடிகார தேர்வு பிட்கள் பின்வருமாறு:
|
சிஎஸ் 22 |
சிஎஸ் 21 |
சிஎஸ் 20 |
விளக்கம் |
|
0 |
0 |
0 |
கடிகார மூலமில்லை (டைமர் / கவுண்டர் நிறுத்தப்பட்டது) |
|
0 |
0 |
1 |
clk T2S / (முன்பதிவு இல்லை) |
|
0 |
1 |
0 |
Clk T2S / 8 (Prescaler இலிருந்து) |
|
0 |
1 |
1 |
Clk T2S / 32 (Prescaler இலிருந்து) |
|
1 |
0 |
0 |
Clk T2S / 64 (Prescaler இலிருந்து) |
|
1 |
0 |
1 |
Clk T2S / 128 (Prescaler இலிருந்து) |
|
1 |
1 |
0 |
Clk T2S / 256 (Prescaler இலிருந்து) |
|
1 |
1 |
1 |
Clk T2S / 1024 (Prescaler இலிருந்து) |
COM21 பிட்டை '1' ஆகவும், COM20 ஐ '0' ஆகவும் அமைப்பதன் மூலம் ஒப்பிட்டுப் பொருத்தத்தில் OC2 அழிக்கப்படுகிறது.
வேகமான PWM பயன்முறைக்கான ஒப்பீட்டு வெளியீட்டு முறை (COM) தேர்வு விருப்பங்கள் கீழே கொடுக்கப்பட்டுள்ளன:
|
COM21 |
COM21 |
விளக்கம் |
|
0 |
0 |
சாதாரண துறைமுக செயல்பாடு, OC2 துண்டிக்கப்பட்டது. |
|
0 |
1 |
ஒதுக்கப்பட்டுள்ளது |
|
1 |
0 |
ஒப்பிடு போட்டியில் OC2 ஐ அழிக்கவும், OC2 ஐ TOP இல் அமைக்கவும் |
|
1 |
1 |
ஒப்பிட்டுப் பொருத்தத்தில் OC2 ஐ அமைக்கவும், TOP இல் OC2 ஐ அழிக்கவும் |
கடமை சுழற்சியை 0% முதல் 100% வரை அதிகரிக்கவும், இதனால் காலப்போக்கில் பிரகாசம் அதிகரிக்கும். 0-255 இலிருந்து மதிப்பை எடுத்து OCR2 முள் அனுப்பவும்.
for (கடமை = 0; கடமை <255; கடமை ++) // 0 முதல் அதிகபட்ச கடமை சுழற்சிக்கு { OCR2 = கடமை; // மெதுவாக எல்.ஈ.டி பிரகாசத்தை அதிகரிக்கவும் _delay_ms (10); }
இதேபோல் எல்.ஈ.டி பிரகாசத்தை படிப்படியாகக் குறைக்க கடமை சுழற்சியை 100% முதல் 0% வரை குறைக்கவும்.
for (கடமை = 0; கடமை> 255; கடமை--) // அதிகபட்சம் 0 கடமை சுழற்சி { OCR2 = கடமை; // மெதுவாக எல்.ஈ.டி பிரகாசத்தை குறைக்கவும் _delay_ms (10); }
இது Atmega16 / 32 இல் PWM ஐப் பயன்படுத்துவதற்கான எங்கள் டுடோரியலை முடிக்கிறது.
