Dalam Tutorial ini, anda akan pelajari mengenai PWM-Output yang juga merupakan satu bentuk “Analog-Output” yang mampu mengawal kadar keterangan Lampu LED.
Pabila anda sudah master dengan penggunaan PWM Output, anda mampu untuk membuat pelbagai kawalan Motor dan LED dengan project-project yang lain.
PWM Output
Arduino UNO mempunyai PWM-Output pada Pin 3, 5, 6, 9, 10 dan 11. Kedudukan pin PWM ini juga sama pada Arduino NANO. Bagi Arduino MEGA, ada lebih lagi bilangan pin PWM.

Hanya pin-pin yang dinyatakan di atas dapat dikawal Output PWM, dan Arduino UNO mempunyai jumlah 6 Pin PWM Output.
PERHATIAN!: PWM Output ini berbeza dengan PWM Output yang digunakan untuk mengawal Servo Motor. Jangan sesekali menggunakan PWM ini untuk kawal Servo. Kebarangkalian Servo Motor akan terbakar adalah tinggi. Kaedah kawalan Servo Motor akan diajar dalam tutorial yang berikutnya
Kaedah menulis algorythm untuk membuat kawalan PWM adalah dengan menulis seperti berikut:
- Declare Pin seperti biasa dalam Void Setup()
void setup(){ pinMode(3, OUTPUT);//declare pin sebagai Output }
- Kawal PWM dengan Algorythm analogWrite() berikut
analogWrite(3, 255); //nilai 255 di atas boleh diganti dengan //nilai lain dalam range 0~255 atau dengan //data yang telah diubah dari sensor //yang telah dimap ke range 0~255
Untuk memahami dengan lebih lanjut mengenai signal PWM, kami syorkan anda baca artikel berikut:
- PWM, PPM & PWM Servo
Teruskan dengan Tutorial ini untuk memahami dengan lebih lanjut bagaimana menggunakan PWM Output.
SENARAI KOMPONEN
Dalam tutorial ini, komponen-komponen berikut perlu disediakan:
- Arduino Uno (atau yang lain) (1 unit)
- Traffic Light Module bersama Jumper Cable (1 unit)
- Jumper cable (3 unit)
- Potentiometer 10k ohm (1 unit)
- Breadboard (1 unit)
LANGKAH #1: SAMBUNGAN LITAR
Sambungkan litar anda seperti gambarajah berikut:

LANGKAH #2: CODING/SKETCH
Copy sketch di bawah dan pastekan dalam Arduino IDE anda.
//Tutorial #8 : Terang/Malap LED & PWM Output //Code disediakan oleh MatGyver.my int dataSensor; int dataBaru; //declare variable untuk simpan data input Sensor void setup() { // masukkan code setup di sini, Void Setup berjalan sekali sahaja pinMode(A1, INPUT); //Analog Input Potentiometer //declare pin A1 sebagai INPUT pinMode(3, OUTPUT); //PWM pada LED Hijau //declare pin 3 sebagai OUTPUT pinMode(5, OUTPUT); //PWM pada LED Kuning //declare pin 5 sebagai OUTPUT pinMode(6, OUTPUT); //PWM pada LED Merah //declare pin 6 sebagai OUTPUT delay(100); //letak sedikit delay untuk Serial bermula dengan stabil }//penutup Void Setup void loop() { // masukkan code utama di sini, untuk program yang berulang dataSensor = analogRead(A1); dataBaru = map(dataSensor, 0, 1023, 0, 255); //map dan convert dataSensor dari range 0~1023 //kepada dataBaru range 0~255 analogWrite(3, dataBaru); analogWrite(5, dataBaru); analogWrite(6, dataBaru); //biarkan data sensor mengawal Output PWM //anda boleh juga menggunakan 1 LED sahaja } //penutup Void Loop
Atau, anda boleh download file sketch .ino untuk tutorial ini di URL berikut:
Setelah sketch di-upload, anda boleh mengawal kadar keterangan/malap ketiga-tiga LED dengan memutarkan Potentiometer.
Anda juga boleh ubah coding untuk mengawal 1 LED sahaja.
Teruskan dengan Tutorial #9 melalui URL di bawah:
Senarai Tutorial asas Arduino MatGyver.my :
- Langkah Pertama dengan Arduino
- Tutorial #1: Digital Output Arduino dengan LED
- Tutorial #2: Traffic Light!
- Tutorial #3: Digital Input dengan Push-Button
- Tutorial #4: Digital Input Advance
- Tutorial #5: Digital Input & Operasi Matematik
- Tutorial #6: Analog Input dengan Potentiometer
- Tutorial #7: Fungsi Mapping dan Analog Input
- Tutorial #8: Terang/Malap LED & PWM Output
- Tutorial #9: AUTO Terang/Malap LED & for() Loop
- Tutorial #10: Kawalan Servo dengan Servo.h Library
- Tutorial #11:
3 thoughts on “Tutorial #8: Terang/Malap LED & PWM Output”