Arduino පාඩම 2 - Analog write function භාවිතය.

12:20 PM
ඕනෑම Arduino Board එකක ප්‍රධාන වශයෙන් pin වර්ග 2 ක් තියෙනවා. එනම් Analog හා Digital pin ය. මෙහි digital පින් නැවතත් කොටස් 2 කට බෙදෙනවා එනම් PWM පහසුකම ඇති හා නැති යනුවෙන්. සාමාන්‍යයෙන් PWM පහසුකම ඇති pin ඉදිරියෙන් ~ සලකුණ යොදා ඇති අතර Arduino UNO board එකක මෙවැනි පින් 6 ක් තිබෙනවා.

සාමාන්‍ය Digital output එකකින් ලබා ගත හැක්කේ 0V හා 5V යන අවස්ථා 2 ක පමණයි. එය උදාහරණයකින් දැක්වුවහොත් සාමාන්‍ය Digital output එකකින් කල හැක්කේ LED එකක් දැල්වීම හා නිවා දැමීම පමණයි. 

නමුත් මෙම PWM(Pulse With Modulation)  පහසුකම ඇති පින් එකක විශේෂත්වය වන්නේ LED බල්බයක දීප්තිය අඩුවැඩි කිරීමට (LED fade) මෙම PWM පින් යොදාගත් හැක. එසේම කුඩා DC Motor එකක වේගය පාලනයටද මෙය යොදා ගත හැක.


LED fade කිරීම.

ඒ සදහා පහත පරිදි පරිපථය සාදාගන්න


අනතුරුව පහත කෝඩ් කොටස Arduino වෙත Upload කරන්න.

void setup() {
 pinMode(3,OUTPUT);
 analogWrite(3,200);
}
void loop() {
}

මෙහි Loop කොටස තුල කිසිවක් ලියා නොමැත්තේ වැඩසටහන ධාවනය වන අතරතුර අගයන් වෙනස් නොකරන බැවිනි.

මෙහි 2 වන පේලියේදී සිදු කර ඇත්තේ 3 වන පින් එක output pin එකක් වශයෙන් යොදා ගන්නා බව Arduino board එකට දන්වා සිටීමයි. 
3 වන පේලියේ සිදු කර ඇත්තේ 3 වන පින් එකෙහි අගය 200 ලෙස සැකසීමයි. මේ සදහා 0 ත් 255 ත් අතර ඕනෑම අගයක් යෙදිය හැක. 0 න් 0V යන්නත් 255 න් 5V යන්නත් අදහස් වේ. ඒ මෙහි 200 යෙදීමෙන් +3.92 V  විභවයක්  3 පින් එක හරහා ලබා ගත  හැක.

මෙම Output volatage එක පහත පරිදි ගණනය කළ හැක.

Output volatage = (5/255)*200 = 3.92 V

වැදගත්

PWM පින් එකක්දී සිදුවෙන්නේ සැබවින්ම voltage එකේ අඩු වැඩි වීමක් නම් නෙමෙයි. එතනදී සිදුවෙන්නේ 
5v හා 0v විචලනය වීමේ සංඛ්‍යාතය වෙනස් කිරීමයි. නමුත් මෙම ක්‍රියාවලියේ ප්‍රතිඵලය voltage එකෙහි අඩු වැඩි වීමක අනුරූපයි.
උදාහරණයක් විදිහට කිව්වොත් එහෙම උඩ මම ගණනය කරල තියෙන voltage එක use කරල LED එකක් පත්තු කලොත් LED එකේ ලැබෙන දීප්තිය analogwrite(200) දැම්මහම එනවා. නමුත් මෙතන්දී ඇත්තටම 3.92v output එකක් නම් එන්නේ නෑ.

පහල තියෙන video එක බලන්නකො

Motor Speed control කිරීම.

ඒ සදහා පහත පරිදි පරිපථය සාදාගන්න
image source : instructables.com

මේ සඳහා පහත කොටස් අවශ්‍ය වේ.

TIP 120 Transistor
1k Ohms Resistor
IN 4004 Diode
1mF Capasitor

අනතුරුව පහත කෝඩ් කොටස Arduino වෙත Upload කරන්න.
void setup() {
 pinMode(11,OUTPUT);
 analogWrite(11, 200);
}
void loop() {
}

මෙහි කේත පැහැදිලි කිරීම ඉහත පරිදිම වේ.

මෙහි 200 වෙනුවට වෙනත් අගයන් යෙදීමෙන් වෙනස් වේග වලින් මෝටරය කැරකැවිය හැක.

ප්‍රශ්නයක් තියෙනවනම් අහන්න.


Share this

Related Posts

Previous
Next Post »

18 comments

Write comments
August 24, 2016 at 7:07 AM delete

nice work
i will do this type of project(final) so pls help me
i like this project
i am doing HNDIT so pls help me. my email (naasikb@gmail.com)
i waiting for your reply

Reply
avatar
December 12, 2016 at 3:17 PM delete

ayi transistor ekak yoda gatte???????????????
pllzzz kiyl denna

Reply
avatar
December 13, 2016 at 7:23 AM delete

Arduino එකෙන් Output කරන්නේ උපරිම 5 v විතරයි. අපිට 5v වලට වඩා ලොකු voltage එකක් controlකරන්න ඔනේ උනාම Transistor එකක් හරි විශේෂ IC එකක් හරි Use කරන්න ඕනේ.
ඒවගේම තමයි motor එකක් වැඩ කරන කොට ඇතිවෙන් විද්යුත් ප්‍රතිගාමක බලය නිසා Arduino එකට වෙන්න පුලුවන් හානිය වලක්වා ගන්න තමයි Transistor එකක් එක්ක diode එකක් යොදාගෙන තියෙන්නේ.

Reply
avatar
June 29, 2017 at 10:36 AM delete

AC motor ekak oken run karanna one nam wenama module ekak teyanawada?
mokakda eka

Reply
avatar
Anonymous
July 29, 2017 at 11:20 AM delete

analogWrite(11, 200);
ඕකේ තියෙන්නේ 11පින් එකට 3.92Vක් දෙන්න කියලනේ..
knight rider led Blink එකක් හදන්දී LED ගොඩක් දානවනේ..
එතකොට ඒ කෝඩ් එක දාන්නේ කොහොමද?

Reply
avatar
August 20, 2017 at 7:22 AM delete

https://www.google.com/search?q=arduino+AC+motor+control+module&rlz=1C1CHBD_enLK758LK758&oq=arduino+AC+motor+control+module&aqs=chrome..69i57.13616j0j7&sourceid=chrome&ie=UTF-8

Reply
avatar
Anonymous
January 31, 2018 at 1:08 PM delete

mata prashnayak thiyanawa.oya arduino board eke digital pin ekakata (2)ta LED eka connect kale.eth oya analogWrite ekak widiyata code kale.eka digitalWrite ekak widiyata liyanna barida apita?

Reply
avatar
February 3, 2018 at 12:57 PM delete

oya ahanne 3 weni pin ekata analog write natuwa digital write kiyala liyanna puluwan kiyalada. ow ehema krnna puluwan

Reply
avatar
July 2, 2018 at 1:21 PM delete

ayye podi prshnyk thiynwa . palaweni paadame bulb eka blink krnna 13 pin eka use kara. bulb eka fade kranna 3 weni pin eka use kara. motor ekata 11 weni pin eka use kala. ei ehema ganne??? e okkotama ekama pin eka use kranna berida???

Reply
avatar
July 2, 2018 at 6:47 PM delete

එහෙම විශේෂයක් නෑ. LED එක blink කරන්න එහෙමත් නැත්නම් on off කරන්න arduino board එකේ ඕනෑම පින් එකක් use කරන්න පුලුවන්.
ඒ උනාට Fade කරන්න එහෙමත් නැත්නම් speed control කරන්න හැම පින් එකකටම බෑ ඒවගේ වැඩකට ගන්න ඕනේ PWM pin arduino UNO,Nano, Mini වගේ එකකනම් 2,5,6,9,10,11 කියන පින් වලින් එකක් ගන්න ඕනේ

Reply
avatar
Anonymous
September 3, 2018 at 8:05 PM delete

Very useful. Thanks

Reply
avatar
saman
January 7, 2019 at 10:16 AM delete

Can we download this lessons? Very good sinhala explanation, and useful for again and again reading.

Reply
avatar
January 26, 2019 at 4:31 AM delete

Loop එක අදල වෙන්නෙ එක දිගට කරනවනන් විතරයි නේද..මොකද්ද අගයන් වෙනස් වෙන්නෙ නැ කියල කියන්නෙ...

Reply
avatar
April 22, 2019 at 12:55 PM delete

එතන අදහස් කලේ setup එකෙන් පස්සේ program එක රන් වෙන අතර තුර ආයේ analogWrite කරන්නේ නෑ කියලා

Reply
avatar

ඔයාලගේ අදහස් උදහස් තමයි අපිව දිරිගන්වන්නෙ෴ EmoticonEmoticon