Dalam Tutorial ini, anda akan pelajari mengenai for() Loop yang menjadi asas kepada pelbagai fungsi-fungsi automatic dalam coding Arduino. Untuk tutorial ini, kita akan menggunakan for() Loop untuk mengawal kadar Terang/Malap LED secara Automatic.
Dalam tutorial ini, komponen-komponen berikut perlu disediakan:
- Arduino Uno (atau yang lain) (1 unit)
- Traffic Light Module bersama Jumper Cable (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 #9 : AUTO Terang/Malap LED & for loop //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(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 //nilai x akan memberikan value untuk kawalan PWM //dalam for loop PERTAMA, nilai x bermula dengan 0 //kemudian akan bertambah 1 untuk setiap loop berikutnya //melalui coding x++ //loop akan berakhir setelah x mencapai nilai 255 for(int x = 0; x < 255; x++){ //for loop PERTAMA analogWrite(3, x); analogWrite(5, x); analogWrite(6, x); //biarkan data sensor mengawal Output PWM delay(20);//berikan sedikit delay pada kelajuan loop } //loop PERTAMAakanberakhir apabila x mencapai 255 //dalam for loop KEDUA, nilai x bermula dengan 255 //kemudian akan berkurang 1 untuk setiap loop berikutnya //melalui coding x-- //loop akan berakhir setelah x mencapai nilai 0 for(int x = 255; x > 0; x--){ //for loop KEDUA analogWrite(3, x); analogWrite(5, x); analogWrite(6, x); //biarkan data sensor mengawal Output PWM delay(20);//berikan sedikit delay pada kelajuan loop } } //penutup Void Loop
Atau, anda boleh download file sketch .ino untuk tutorial ini di URL berikut:
Setelah sketch di-upload, LED akan mula menyala dengan perlaha sehingga terang, kemudian akan malap semula secara automatic.
Anda boleh melajukan tempoh terang/malap dengan mengubah algortyhm berikut pada for() loop ;
//tukarkan x++ kepada x = x + 10; //ataupun x = x + 20 //atau lebih tinggi //bagi melajukan tempoh terang //dan //tukarkan x-- kepada x = x - 10; //ataupun x = x - 20 //atau lebih tinggi //bagi melajukan tempoh malap
ataupun, kita lihat coding penuh pada for() loop yang baru;
for(int x = 0; x < 255; x++){ //for loop PERTAMA analogWrite(3, x); analogWrite(5, x); analogWrite(6, x); delay(20); } for(int x = 255; x > 0; x--){ //for loop KEDUA analogWrite(3, x); analogWrite(5, x); analogWrite(6, x); delay(20); }
Penerangan for() loop
Struktur asas for() loop adalah seperti berikut:
for(int x = 0; x < 255; x++){ //isikan coding yang ingin di loopkan //dalam ruangan ini }
For() Loop, adalah loop yang bergerak secara automatic dan mempunyai PENGAWAL-LOOP, dimana kita dapat set-kan berapa kali ia perlu loop.
Ada 3 komponen utama PENGAWAL-LOOP dalam for() loop :
- int x = 0;
Algorythm ini, digunakan untuk menyatakan kondisi awal PENGAWAL-LOOP. Ia boleh dimulakan dengan sebarang nombor. Namun apabila ia bermula dengan “0” adalah lebih mudah untuk kita mengira bilangan LOOP yang diperlukan.Algorythm int x=0; hanya akan dibaca sekali sahaja oleh for() loop pada loop yang pertama. - x < 255;
Algorythm ini pula, memberikan limitasi pada LOOP supaya loop tahu BILA perlu berhenti. Dalam kes ini, setting awal x = 0 , dan setting LIMIT adalah x < 255 . Ini bermakna, apabila nilai x sudah mencapai 255, loop akan terhenti dan akan terus dengan coding yang berikutnya.Algorythm x < 255; akan dibaca oleh for() loop disetiap awal loop, untuk cek kondisi. - x++;
x++ adalah ringkasan kepada formula x = x +1 dalam coding C++ . Anda boleh menggunakan nombor penambahan yang lebih tinggi untuk mempercepatkan loop, seperti contoh di atas, x = x +10;Algorythm ini, akan bertindak disetiap penghujung loop. Dengan erti kata lain, sebagai contoh ketika x=0 dalam loop pertama, selepas selesai menjalankan coding di dalam loop, barulah loop akan menjalankan coding x++ tersebut.
Teruskan dengan Tutorial #10 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 #9: AUTO Terang/Malap LED & for() Loop”