Anda di halaman 1dari 8

/*

01 - Led Berkedip

Menyalakan LED selama satu detik, kemudian mematikannya selama satu detik, terus berulang.

*/

//fungsi setup berjalan satu kali ketika papan Arduino mendapat power atau ketika push button reset
diteken

void setup() {

//inisialisasi digital pin LED_BUILTIN sebagai output.

pinMode(LED_BUILTIN, OUTPUT);

//fungsi loop berjalan berulang dan terus menerus

void loop() {

digitalWrite(LED_BUILTIN, HIGH); //menyalakan LED (HIGH merupakan level tegangan)

delay(1000); //menunggu selama 1 detik

digitalWrite(LED_BUILTIN, LOW); //mematikan LED dengan membuat level tegangan menjadi LOW

delay(1000); //menunggu selama 1 detik

/*

02 - 8 x LED
Membuat delapan LED menyala dengan pola yang berbeda-beda.

*/

int ledPins[] = {2,3,4,5,6,7,8,9}; //membuat sebuah array untuk menyimpan nomor pin untuk 8 LED.

//sebuah array merupakan kumpulan variabel yang dapat di akses dengan nomor index.

//Sebuah daftar dialam array mempunyai nomor index berurutan dimulai dari 0 yang ditulis didalam
tanda kurung [ ].

//Lihat contoh penggunaannya pada fungsi pinMode() dibawah.

void setup()

//Set semua 8 pin sebagai OUTPUT - perhatikan bahwa daftar indeks dimulai dari 0.

pinMode(ledPins[0],OUTPUT); //ledPins[0] = 2

pinMode(ledPins[1],OUTPUT); //ledPins[1] = 3

pinMode(ledPins[2],OUTPUT); //ledPins[2] = 4

pinMode(ledPins[3],OUTPUT); //ledPins[3] = 5

pinMode(ledPins[4],OUTPUT); //ledPins[4] = 6

pinMode(ledPins[5],OUTPUT); //ledPins[5] = 7

pinMode(ledPins[6],OUTPUT); //ledPins[6] = 8

pinMode(ledPins[7],OUTPUT); //ledPins[7] = 9

void loop() {

//Pada loop() ini memanggil beberapa fungsi yang sudah dituliskan sebelumnya.
//Kamu dapat menonaktifkan pemanggilan beberapa fungsi dengan cara merubah menjadi sebuah
comment

//(dengan menuliskan tanda "//" didepan pemanggilan fungsi dibawah ini).

oneAfterAnother(); //Nyalakan semua LED secara bergantian

oneOnAtATime(); //Nyalakan LED satu per satu secara bergantian

pingPong(); //Sama dengan oneOnAtATime() tapi berganti arah ketika nyala LED sampai keujung

marquee(); //Lampu kejar seperti yang ada dipertunjukan teater

randomLED(); //Membuat LED-LED berkedip secara acak

/******************************************************************

* oneAfterAnother()

* Fungsi ini menyalakan semua LED, ada jeda, dan kemudian semua

* LED mati. Didalam fungsi ini menggunakan kelebihan dari "for() loop" dan

* penggunaan array sehingga meeminimalkan penulisan program.

/*****************************************************************/

void oneAfterAnother()

{
int index;

int delayTime = 100; //jeda dalam milliseconds untuk berhenti antara LED

//rubah menjadi lebih kecil untuk membuat perpindahan lebih cepat

//Menyalakan semua LED:

for(index = 0; index <= 7; index = ++index) //langkah pada setiap variabel index dari 0 hingga 7

digitalWrite(ledPins[index], HIGH);

delay(delayTime);

//Mematikan semua LED:

for(index = 7; index >= 0; index = --index) //langkah pada setiap variabel index dari 7 hingga 0

digitalWrite(ledPins[index], LOW);

delay(delayTime);

/*****************************************************************

* oneOnAtATime()

* Pada fungsi ini akan menyalakan LED seperti berjalan satu arah.

* Membuat tiap LED nyala dan kemudian mati sebelum berpindah

* ke LED berikutnya.
/****************************************************************/

void oneOnAtATime()

int index;

int delayTime = 100; //jeda dalam milliseconds untuk berhenti antara LED

//rubah menjadi lebih kecil untuk membuat perpindahan lebih cepat

for(index = 0; index <= 7; index = ++index) //langkah pada masing-masing LED, dari 0 sampai 7

digitalWrite(ledPins[index], HIGH); //menyalakan LED

delay(delayTime); //jeda untuk memperlambat

digitalWrite(ledPins[index], LOW); //mematikan LED

/*****************************************************************

* pingPong()

* Pada fungsi ini akan menyalakan LED seperti berjalan bulak balik.

* Tidak ada jeda antara LED yang amti dengan LED yang berikutnya nyala,

* sehingga dapat menciptakan pola smooth. .

*/

/****************************************************************/

void pingPong()
{

int index;

int delayTime = 100; //jeda dalam milliseconds untuk berhenti antara LED

for(index = 0; index <= 7; index = ++index) //langkah pada masing-masing LED, dari 0 hingga 7

digitalWrite(ledPins[index], HIGH); //menyalakan LED

delay(delayTime); //jeda untuk memperlambat

digitalWrite(ledPins[index], LOW); //mematikan LED

for(index = 7; index >= 0; index = --index) //langkah pada masing-masing LED, dari 7 hingga 0

digitalWrite(ledPins[index], HIGH); //menyalakan LED

delay(delayTime); //jeda untuk memperlambat

digitalWrite(ledPins[index], LOW); //mematikan LED

/*****************************************************************

* marquee()

* Fungsi ini akan menirukan nyala LED seperti "lampu kejar" yang

* ada pada pertunjukan teater..

/****************************************************************/
void marquee()

int index;

int delayTime = 200; //jeda dalam milliseconds untuk berhenti antara LED

for(index = 0; index <= 3; index++) //langkah dari 0 hingga 3

digitalWrite(ledPins[index], HIGH); //menyalakan LED

digitalWrite(ledPins[index+4], HIGH); //lewati empat LED, dan nyalakan LED tersebut

delay(delayTime); //jeda untuk memperlambat perpindahan

digitalWrite(ledPins[index], LOW); //mematikan LED

digitalWrite(ledPins[index+4], LOW); //lewati empat LED, dan matikan LED tersebut

/*****************************************************************

* randomLED()

* Fungsi ini akan meyalakan LED secara acak. Dapatkah kamu memodifikasi program

* sehingga jeda waktunya juga secara acak?

/****************************************************************/

void randomLED()

int index;

int delayTime;
index = random(8); //memilih angka secara acak antara 0 sampai 7

delayTime = 100;

digitalWrite(ledPins[index], HIGH); //menyalakan LED

delay(delayTime); //jeda untuk memperlambat

digitalWrite(ledPins[index], LOW); //mematikan LED

Anda mungkin juga menyukai