Archive / Training

RSS feed for this section

Exercise 4.1 – Tone Keyboard

41-1024x630

ဒီလေ့ကျင့်ခန်းမှာတော့ tone( ) function ကို အသုံးပြုပြီး 7 keys ပါတဲ့ Keyboard တစ်ခု လုပ်ကြည့်ပါမယ်။

Lab Bench Pane ပေါ်မှာ Piezo Speaker တစ်ခုနဲ့ Push Button ရခုကို တင်လိုက်ပါ။ Push Button တွေကို pin number ထည့်ရုံပဲ ထည့်လိုက်ပါ။ Radio Button တွေကို မရွှေ့ဘဲ ဒီအတိုင်း ထားလိုက်ပါ။ ဒါဆိုရင် Push Button တွေကို နှိပ်မထားရင် HIGH or 1 ထွက်ပြီး၊ နှိပ်ထားရင် LOW or 0 ထွက်ပါလိမ့်မယ်။

ဒိုရေမီဖာ နုတ်တွေ ထွက်ဖို့ အတွက် ဒီ ‪#‎define‬ တွေကို Sketch ရဲ့ အပေါ်ဆုံးမှာ ထည့်ထားပါ။

#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494

loop( ) မှာ if .. else if ကို သုံးပြီး ဘယ်ခလုတ်ကို နှိပ်ထားသလဲ ဖတ်ပြီး သင့်လျော်တဲ့ Music Note ( NOTE_C4 for first button, NOTE_D4 for second button) ကို tone( ) function ကို သုံးပြီး အသံထုတ်ပေးပါ။
ဥပမာ tone( PIN_OUTPUT_PIEZO, NOTE_C4, 20 );

Lesson 4.1 – Tone Generator

ဒီသင်ခန်းစာမှာတော့ Piezo Speaker လို့ ခေါ်တဲ့ Speaker သေးသေးလေးနဲ့ Arduino မှာ ပါတဲ့ Tone( ) function ကို အသုံးပြုပြီး အသံမြည်အောင် စမ်းသပ်ကြည့်ကြပါမယ်။

411

ပထမဆုံး Lab Bench Pane ပေါ်ကို 1 Piezo Speaker နဲ့ 1 Analog Slider Pair ကို တင်လိုက်ပါ။ ပြီးရင် Piezo Speaker ကို Pin 8 နဲ့၊ Analog Slider ကို A0 နဲ့ ဆက်ဖို့ ပုံမှာ ပြထားသလို 08 နဲ့ A0 ကို Text box တွေ မှာ ထည့်လိုက်ပါ။

412

အသံထွက်ဖို့ အတွက် tone( pin_number, frequency, duration_in_millisecond ) ဆိုပြီး tone( ) function ကို သုံးရပါတယ်။ လူတွေ ကြားနိုင်တဲ့ frequency က 20Hz ကနေ 20,000Hz အထိ ဖြစ်ပါတယ်။ Arduino ရဲ့ tone function ကတော့ 31Hz ကနေ 65,535Hz အထိ ထုတ်ပေးနိုင်ပါတယ်။ ဒီသင်ခန်းစာမှာတော့ analogRead( ) ကနေ ရတဲ့ 0 to 1023 ကို 120Hz to 1,500Hz range အဖြစ် ပြောင်းပြီး အသံထုတ်ကြည့်ပါမယ်။

နောက်ဆုံးပုံမှာ ပြထားတဲ့အတိုင်း Code ကို ထည့်ပြီး run လိုက်မယ်ဆိုရင် အသံထွက်လာတာကို ကြားရပါမယ်။ Analog Slider ကို ရွှေ့ကြည့်ပြီး frequency ပြောင်းသွားတာ (အသံပိုစူးလာတာ၊ လျော့သွားတာ) ကို နားထောင်ကြည့်ပါ။

413

Exercise 3.1 – Controlling I/Os with Serial Command

ဒီလေ့ကျင့်ခန်းမှာတော့ Computer က ပို့လိုက်တဲ့ Serial Command တွေကို အသုံးပြုပြီး LED ၂လုံး၊ DC Motor တစ်လုံးနဲ့ Servo Motor တစ်လုံးကို ထိန်းချုပ်ကြည့်မှာ ဖြစ်ပါတယ်။ Lesson 3.3. ထဲက Sketch ကို အခြေခံပြီး ချဲ့ထွင်ရေးသားရနိုင်ပါတယ်။ sub-command တွေကို ဘယ်လို ဖတ်ပြီး ဘယ်လို ထိန်းချုပ်မလဲ ဆိုတာကို စဉ်းစားရပါမယ်။

LED ၂လုံးကို L1 နဲ့ L2 ၊ Motor ကို M1 ၊ Servo Motor ကို M2 လို့ သတ်မှတ်ပါမယ်။ Command format ကတော့ LED 1 ကို မီးဖွင့်ချင်ရင် L1:1 လို့ ရေးရပါမယ်။ မီးပိတ်ချင်ရင်တော့ L1:0 ဖြစ်ပါတယ်။ LED 2 ကလည်း ဒီလိုပါပဲ။ L2:1 နဲ့ L2:0 ကို သုံးပါမယ်။ မော်တာကိုတော့ M1: နောက်မှာ ရာခိုင်နှုန်းထည့်ပေးရပါမယ်။ ဥပမာ – M1:100 ပေါ့။ Servo Motor ကိုတော့ သုညကနေ ၁၈၀ ဒီဂရီ အထိ ပေးနိုင်ပါတယ်။ ဥပမာ – S1:120။ Command အစနဲ့ အဆုံးကိုတော့ [ ] သုံးရမှာ ဖြစ်ပါတယ်။ ဥပမာ – [L1:0,L2:1,M1:50,S1:90]

ပထမဆုံး Lab Bench Pane ပေါ်မှာ 2 Red LEDs ၊ 1 DC Motor ၊ 1 Servo Motor နဲ့ USB Serial ကို တင်လိုက်ပါ။ ပြီးရင် လိုတဲ့ Code ကို ဖြည့်ရေးပြီး စမ်းကြည့်ပါ။

Lesson 3.3 – Command Processing with Arduino

ဒီသင်ခန်းစာမှာတော့ Serial ကနေ ရတဲ့ character တွေ ကို String အဖြစ်နဲ့ ပြောင်းပြီး Properly Formatted Command တွေ အဖြစ် ပြောင်းလဲကြည့်မှာ ဖြစ်ပါတယ်။

Command တစ်ခုရဲ့ အစကို [ နဲ့ စပြီး ] နဲ့ ဆုံးမယ်လို့ သတ်မှတ်လိုက်ပါမယ်။ Command တစ်ခုမှာ sub-command ဒါမှမဟုတ် instruction တစ်ခု ဒါမှမဟုတ် တစ်ခုထက်ပိုပြီး ပါနိုင်ပါတယ်။ အဲဒီ sub-command တွေကိုတော့ , (comma) နဲ့ ခြားထားမယ် ဆိုကြပါစို့။ ဥပမာ – [D1:1,D2:0,D3:1]

ဒီသင်ခန်းစာမှာ ဘာ sub-command ဆိုရင် ဘာလုပ်မယ်လို့ မရေးသေးဘဲ Command string ကနေ sub-command အဖြစ်ပဲ ပြောင်းလဲပြီး sub-command တစ်ခုဆီကို Serial ကနေ ပြန်ပို့ပေးပါမယ်။

Lab Bench Pane ပေါ်ကို USB Serial ကို တင်လိုက်ပါ။ ပြီးရင် ဒီ Link မှာhttps://gist.github.com/kreatorye/9ebb87302e44c551d983 ပြထားတဲ့ Code တွေကို Raw ဆိုတဲ့ Button ကို နှိပ်ပြီးမှ ကူးယူလိုက်ပါ။ ဒါမှမဟုတ် Download Zip ဆိုတဲ့ button ကို နှိပ်ပြီး zip file ထဲက SerialCmd.ino ဆိုတဲ့ file ကို UnoArduSim မှာ ဖွင့်မယ်ဆိုလည်း ရပါတယ်။ ပြီးရင် Run လိုက်ပါ။

331

ပြီးရင် USB Serial ရဲ့ ခရမ်းရောင်အပိုင်း တစ်နေရာရာကို double-click လုပ်ပြီး Serial Monitor ကို ဖွင့်ပါ။ TX မှာ [D1:1,D2:0,D3:1] လို့ ရိုက်ထည့်ပြီး Send ကို နှိပ်လိုက်ရင် RX ဆိုတဲ့ နေရာမှာ နောက်ဆုံးပုံထဲက အတိုင်း ပေါ်လာတာကို တွေ့ရပါမယ်။

332

အလုပ်လုပ်ပုံကို တစ်ဆင့်ချင်း ကြည့်ချင်ရင်တော့ Run လုပ်ပြီး Halt (Stop) ကို နှိပ်လိုက်ပါ။ Serial Monitor က TX မှာ [D1:1,D2:0,D3:1] လို့ ရိုက်ထည့်ပြီး Send ကို နှိပ်လိုက်ပါ။ ကိုယ်ကြည့်ချင်တဲ့ Code line ပေါ်မှာ click နှိပ်ပြီး select လုပ်၊ Run up to Highlighted Line ဆိုတဲ့ အနီရောင် မြှားကလေးကို နှိပ်၊ ပြီးတော့မှ Step Into အဝါရောင်မြှားကို နှိပ်ပြီး တစ်ဆင့်ချင်း ဘယ်လို အလုပ်လုပ်သလဲဆိုတာကို ကြည့်နိုင်ပါတယ်။

333

Lesson 3.2 – Send Simple Command to Arduino

ဒီသင်ခန်းစာမှာတော့ Arduino ကွန်ပျူတာကနေ Serial port ကို အသုံးပြုပြီး ထိန်းချုပ်ခြင်းကို ပြပေးမှာ ဖြစ်ပါတယ်။ ကွန်ပျူတာကနေ Serial port ကို သုံးပြီး ပို့လိုက်တဲ့ Data ကို ပထမဆုံး Serial.available( ) function နဲ့ Data ရောက်မရောက် စစ်ရပါမယ်။ ရောက်ခဲ့ရင် Serial.available( ) ကနေ ရတဲ့ တန်ဖိုးဟာ 0 ထက် ကြီးနေပါလိမ့်မယ်။ ဒါဆိုရင် Serial.read( ) နဲ့ character တစ်လုံးချင်း ဖတ်နိုင်ပါပြီ။ ဒီသင်ခန်းစာမှာတော့ လွယ်ကူအောင် 1 ဆိုတဲ့ character ရရင် မီးဖွင့်မယ်။ 0 ဆိုတဲ့ character ရရင် မီးပိတ်မယ်လို့ သတ်မှတ်ထားပါမယ်။
ပထမဆုံး Red LED တစ်လုံးနဲ့ USB Serial ကို Lab Bench Pane ပေါ်ကို တင်လိုက်ပါ။ နောက်ဆုံးပုံမှာ ပြထားတဲ့ Code ကို ရေးလိုက်ပါ။ ပြီးရင် USB Serial ရဲ့ ခရမ်းရောင် နေရာတစ်ခုခုမှာ double click လုပ်ပြီး Serial Monitor ကို ဖွင့်ပါ။ TX ဆိုတဲ့ နေရာမှာ 1 ကို ရိုက်ထည့်ပြီး Send ကို နှိပ်ရင် LED မီးလင်းလာတာကို မြင်ရပါလိမ့်မယ်။ 0 ကို ရိုက်ထည့်ပြီး Send ရင် LED ပြန်ပိတ်သွားတာကို မြင်ရပါလိမ့်မယ်။

322

323

Lesson 3.1 – Send status to PC via UART

Arduino ကို ဒီအတိုင်း ရိုးရိုးပဲ Hardware နဲ့ သုံးမယ်ဆိုရင် Debug လုပ်လို့ မရတဲ့အတွက် အထဲမှာ ဘာတွေ ဖြစ်နေလဲဆိုတာ မသိနိုင်ပါဘူး။ ဥပမာ ခလုတ်တစ်ခုနဲ့ LED တစ်လုံးနဲ့ကို Input / Output တွေမှာ ချိတ်ပြီး ခလုတ်နှိတ်ရင် မီးလုံးလင်းတာ စမ်းကြည့်နေတယ် ဆိုပါစို့။ Error တစ်ခုတက်ပြီး ခလုတ်နှိပ်ပေမယ့် မီးမလင်းရင် ဘာဖြစ်နေလဲ သိဖို့ ခက်ပါတယ်။ ခလုတ်နှိပ်ရင် 1 ရရမယ့်ဟာပဲ မရတာလား၊ ရေးထားတဲ့ logic ပဲ မှားတာလားဆိုတာ မသိနိုင်ပါဘူး။ အဲဒါကြောင့် Arduino မှာ ကွန်ပျူတာကို လွယ်လွယ်ကူကူ ဘာတွေ ဖြစ်နေလဲ အကြောင်းပြန်နိုင်မယ့် Serial လို့ ခေါ်တဲ့ Serial / UART communication library ကို ထည့်ထားပေးပါတယ်။ ကွန်ပျူတာနဲ့ ချိတ်ထားတဲ့ USB cable ကိုပဲ Serial Port (COM port) အဖြစ် သုံးပြီး data တွေ ပို့ပေးတာပါ။ UnoArduSim မှာလည်း ဒီ UART port ကို simulate လုပ်ပြီး သုံးလို့ ရပါတယ်။ ဒါကို ဒီသင်ခန်းစာမှာ စမ်းကြည့်ရအောင်။

Lab Bench Pane ပေါ်မှာ 1 Push Button, 1 Analog Slider နဲ့ USB Serial ကို တင်လိုက်ပါ။ USB Serial ကိုတော့ Configure -> I/O Devices menu ထဲကနေပဲ USB Serial ဆိုတဲ့ checkbox လေးကို click လုပ်ပြီး တင်ရပါမယ်။

UART ကို သုံးဖို့ setup( ) မှာ Serial.begin( 9600 ) ဆိုပြီး ရေးရပါမယ်။ 9600 ကတော့ Baud Rate လို့ ခေါ်တဲ့ data ပို့တဲ့ အမြန်နှုန်းပါ။ Baud Rate များလေ၊ မြန်လေပါပဲ။ ဒါပေမယ့် ကိုယ့်စိတ်တိုင်းကျ နံပါတ် ထည့်လို့ မရပါဘူး။ သူ့မှာ သတ်မှတ်ထားတဲ့ Baud Rate တွေ ရှိပါတယ်။ Arduino ကနေ Computer ကို ဆက်သွယ်တယ်ဆိုရင် နှစ်နေရာလုံးက တူညီတဲ့ Baud Rate သုံးမှ တစ်ယောက်နဲ့ တစ်ယောက် နားလည်ပါတယ်။ ဆိုလိုတာက Data တွေကို မှန်မှန်ကန်ကန် မြင်ရပါတယ်။ ဒီသင်ခန်းစာမှာတော့ Default value ဖြစ်တဲ့ 9600 ကိုပဲ သုံးပါမယ်။

Data ပို့ဖို့အတွက် loop( ) မှာ Serial.print( ) နဲ့ Serial.println( ) ကို သုံးပြီး ပို့ပါမယ်။ print( ) ကို သုံးရင် ပထမ ပို့လိုက်တဲ့ data နဲ့ ဆက်တိုက်ပို့မှာ ဖြစ်ပြီး println( ) ဆိုရင်တော့ ထည့်ပေးတဲ့ data ရဲ့ နောက်မှာ စာကြောင်းအသစ်ပြောင်းစေတဲ့ New Line character ပါ ထည့်ပို့ပေးမှာ ဖြစ်ပါတယ်။ နောက်ဆုံးပုံမှာ ပြထားတဲ့အတိုင်း Code ကို ရေးပြီး run လိုက်ရင် Lab Bench Pane က SERIAL ရဲ့ အောက်ဖက်က text box မှာ စာတွေ လှုပ်လှုပ်လှုပ်လှုပ်နဲ့ ပြနေတာကို မြင်ရပါမယ်။ သေချာမြင်ရဖို့ SERIAL ရဲ့ ခရမ်းရောင် ရှိတဲ့ တစ်နေရာရာကို double-click လုပ်လိုက်ပါ။ Serial Monitor ဆိုတာ ပေါ်လာပြီး ကိုယ်ပို့လိုက်တဲ့ data ကို သေချာ မြင်ရပါလိမ့်မယ်။

ခလုတ်ကို နှိပ်ကြည့်၊ Analog Slider ကို ရွှေ့ကြည့်ပြီး data တွေ ပြောင်းသွားတာကို စမ်းကြည့်ပါ။

311

312

313

314

315

Exercise 2.2 – Discrete Motor Control with Speedometer

ဒီလေ့ကျင့်ခန်းမှာတော့ DC Motor Control ကို Push Button Switch ၅ခုနဲ့ ထိန်းချုပ်ပြီး မော်တာ အမြန်နှုန်းကို Speedometer လိုမျိုး Servo Arm နဲ့ ပြပါမယ်။

Push Button ၅ခုကို အပေါ်ဆုံးက 0%၊ ပြီးရင် 25%, 50%, 75%, 100% အဖြစ် သတ်မှတ်ထားလိုက်ပါ။ 0% ခလုတ်နှိ်ပ်ရင် မော်တာ ရပ်သွားရပါမယ်။ ပြီးရင် Speedometer ကလည်း 0% မှာ ပြနေရပါမယ်။ 25% ခလုတ်ကို နှိပ်ရင် Motor Speed 25% နဲ့လည်ပြီး Speedometer က 25% မှာ ပြရပါမယ်။ 50%, 75%, 100% ခလုတ်တွေကလည်း အဲဒီလိုပဲ အလုပ်လုပ်ရပါမယ်။

ex222

Exercise 2.1 – Analog Motor Control with Speedometer

ဒီလေ့ကျင့်ခန်းမှာတော့ DC Motor Control အနှေးအမြန်ကို Analog Slider နဲ့ ထိန်းချုပ်ပြီး Speedometer လို ပုံစံမျိုး ဖြစ်အောင် Servo Arm နဲ့ ပြပါမယ်။ UnoArduSim မှာ ပုံတွေကို ပြင်လို့ မရလို့ စိတ်ကူးနဲ့ပဲ မြင်ကြည့်လိုက်ပါ။ ပထမပုံမှာ ပြထားတဲ့ Speedometer လေးကို တစ်နေရာမှာ ကပ်လိုက်ပြီးတော့ Servo Arm ကိုတော့ ညွှန်ပြတဲ့ Pointer တံလေးနဲ့ ချိတ်ထားတယ်လို့ စဉ်းစားကြည့်လိုက်ပါ။

Motor Control ကတော့ Lesson 2.2 က လိုပဲ Analog Slider အောက်ဆုံးရောက်နေရင် ရပ်ပြီး ထိပ်ဆုံးရောက်ရင် အမြန်ဆုံးနှုန်းနဲ့ လည်ပါမယ်။ Speedometer မှာတော့ မော်တာရပ်နေရင် 0% နေရာကို Servo Arm က ပြရပါမယ်။ မော်တာ အပြည့်လည်နေရင် 100%နေရာ၊ အမြန်နှုန်းတစ်ဝက်နဲ့ လည်နေရင် 50% နေရာ၊ စသဖြင့် Servo Arm က ပြပေးရပါမယ်။

1605 1222 0011 8877

Lesson 2.3 – PWM for Servo

ဒီသင်ခန်းစာမှာတော့ Servo motor ကို Analog Slider နဲ့ ထိန်းကြည့်ပါမယ်။ Configure -> I/O Devices ကနေ 1 Analog Slider နဲ့ 1 Servo Motor ကို Lab Bench Pane ပေါ်ကို တင်လိုက်ပါ။

Arduino ရဲ့ အသင့်ပါပြီသား Built-in Library ဖြစ်တဲ့ Servo ကို အသုံးပြုဖို့ ‪#‎include‬<Servo.h> ကို Sketch ရဲ့ အပေါ်ဆုံးမှာ ရေးရပါမယ်။ ပြီးရင် Servo myservo; ဆိုပြီး global variable တစ်ခု ကြေငြာထားရပါမယ်။ Servo motor တစ်ခုကို variable တစ်ခု ပေါ့လေ။ ပြီးရင် setup( ) မှာ .attach( ) ကို သုံးပြီး Pin နဲ့ ချိတ်ရပါမယ်။

loop( ) မှာတော့ .write( ) နဲ့ 0 to 180 ပေးပြီး သုညဒီဂရီကနေ ၁၈၀ ဒီဂရီအထိ လှည့်လို့ ရပါတယ်။ Analog slider ကနေ ရမယ့် 0 to 1023 တန်ဖိုးကို 0 to 180 ပြောင်းဖို့ အတွက် map( ) ဆိုတဲ့ function ကို သုံးပါမယ်။ .write( ) လုပ်ပြီးရင် Servo arm ရွေ့သွားဖို့ အတွက် အချိန်အနည်းငယ် စောင့်ရပါမယ်။ ဒီသင်ခန်းစာထဲက Sketch ထဲမှာတော့ 15 milliseconds လောက် စောင့်ပါတယ်။ တကယ် လက်တွေ့မှာတော့ ကိုယ်သုံးမယ့် Servo Motor ရဲ့ speed နဲ့ ဆိုင်ပါလိမ့်မယ်။

နောက်ဆုံးပုံမှာ ပြထားတဲ့အတိုင်း Code ကို ရေးပြီး run လိုက်မယ်ဆိုရင် Slider ရွေ့သွားတာနဲ့ အမျှ Servo Motor Arm လိုက်လည်သွားတာကို မြင်ရပါလိမ့်မယ်။

232

233

Lesson 2.2 – PWM for Motor Control

ပြီးခဲ့တဲ့ သင်ခန်းစာမှာ Analog Input ကို သုံးနည်းကို ပြခဲ့ပါတယ်။ Analog Input ရှိရင် Analog Output ရော မရှိဘူးလားလို့ သိချင်ကြမှာပါ။ Arduino မှာ 0 to 5V အနဲအများ ပြောင်းပြီး ထုတ်ပေးနိုင်တဲ့ Output Pin တော့ မရှိပါဘူး။ ဒါပေမယ့် အဲဒီလိုမျိုးဆန်ဆန် ဖြစ်အောင် 5V ကို ဖွင့်ကာပိတ်ကာ လုပ်ပေးတဲ့ Pulse Width Modulation (PWM) Output Pin တစ်ချို့တော့ ရှိပါတယ်။ 5V ကို စက္ကန့်ဝက်ဖွင့်လိုက်၊ စက္ကန့်ဝက်ပိတ်လိုက်ဆိုရင် တစ်ဝက်ပဲ အားရှိတာမို့ 2.5V လို ဖြစ်သွားပါမယ်။ ဒါက ဥပမာ အဖြစ် ပေးတာပါ။ တကယ့်လက်တွေ့မှာတော့ တစ်စက္ကန့်မှာ အခါ ၅၀၀လောက် အဖွင့်အပိတ် လုပ်ပေးနိုင်ပါတယ်။ (PWM frequency က 500Hz ပါ။) PWM မှာ ဘယ်လောက်ကြာကြာဖွင့်သလဲ ဘယ်လောက်ကြာကြာပိတ်သလဲဆိုတာကို duty cycle လို့ ခေါ်ပါတယ်။ ပထမဆုံးပုံမှာ PWM ရဲ့ duty cycle တွေပေါ်မူတည်ပြီး အဖွင့်အပိတ် ဘယ်လို ဖြစ်သလဲ ဆိုတာ ပြထားပါတယ်။

PWM ကို LED အလင်းအမှိန်လုပ်ဖို့၊ DC motor အသေးလေးတွေကို အနှေးအမြန်မောင်းဖို့ စတာတွေမှာ သုံးလို့ ရပါတယ်။ ဒီသင်ခန်းစာမှာတော့ UnoArduSim မှာပါတဲ့ Motor ကို အနှေးအမြန် PWM နဲ့ ထိန်းကြည့်ပါမယ်။ Arduino Uno မှာ PWM အဖြစ်သုံးလို့ ရတဲ့ Pin တွေကတော့ ~ နဲ့ ပြထားတဲ့ Digital I/O Pin 3, 5, 6, 9, 10, 11 တို့ ဖြစ်ပါတယ်။

Configure -> I/O Devices menu ကနေပြီး 1 Analog Slider Pair နဲ့ 1 DC Motor ကို Lab Bench Pane ပေါ် တင်လိုက်ပါ။ ပြီးရင် Analog Slider တစ်ခုကို A0 နဲ့ ဆက်လိုက်ပါ။ Motor ရဲ့ PWM နေရာမှာ 03 လို့ ရိုက်ထည့်ပြီး Pin 3 နဲ့ ဆက်လိုက်ပါ။ PWM output ပေးချင်ရင် analogWrite( ) ကို သုံးရပါတယ်။ သုံးချင်တဲ့ pin မှာ 0 to 255 တန်ဖိုးကို ထည့်ပေးရင် PWM ထွက်လာပါမယ်။ 255 က 100% duty cycle အမြဲ On နေမှာ ဖြစ်ပြီး၊ 0 ဆိုရင် 0% duty cycle လုံးဝ Off နေမှာဖြစ်ပါတယ်။ 128 ဆိုရင် 50% duty cycle စသဖြင့် ကြားထဲက တန်ဖိုးတွေကို အချိုးကျ ပြောင်းလဲယူသွားပါတယ်။

Analog Slider ကို ရွှေ့ပြီး မော်တာကို အနှေးအမြန် ပြောင်းမှာမို့ Analog Slider တန်ဖိုးကို ဖတ်ပြီး Motor PWM တန်ဖိုးကို ပေးရပါမယ်။ analogRead( ) က ဖတ်လို့ ရမယ့် တန်ဖိုးက 0 to 1023 ဖြစ်ပြီး analogWrite( ) မှာ 0 to 255 ပဲ ရတာမို့ ဖတ်လို့ ရတဲ့ တန်ဖိုးကို 4 နဲ့ စားရပါမယ်။

နောက်ဆုံးပုံမှာ ပြထားတဲ့အတိုင်း code ရေးပြီး run လိုက်ရင် မော်တာ အနှေးအမြန်ကို ထိန်းနိုင်မယ့် Arduino Sketch လေး ရပါပြီ။

222

223

224

225

error: Content is protected !!
 
%d bloggers like this: