Tutorial #9: AUTO Terang/Malap LED & for() Loop

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:

  1. Arduino Uno (atau yang lain) (1 unit)
  2. Traffic Light Module bersama Jumper Cable (1 unit)

LANGKAH #1: SAMBUNGAN LITAR

Sambungkan litar anda seperti gambarajah berikut:

AUTO PWM - Diagram

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 :

Tinggalkan Jawapan

Masukkan butiran anda dibawah atau klik ikon untuk log masuk akaun:

WordPress.com Logo

Anda sedang menulis komen melalui akaun WordPress.com anda. Log Out /  Tukar )

Google+ photo

Anda sedang menulis komen melalui akaun Google+ anda. Log Out /  Tukar )

Twitter picture

Anda sedang menulis komen melalui akaun Twitter anda. Log Out /  Tukar )

Facebook photo

Anda sedang menulis komen melalui akaun Facebook anda. Log Out /  Tukar )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.