Upload
setiyadi-ahdika
View
179
Download
22
Embed Size (px)
Citation preview
LAPORAN MIKROKONTROLER
VARIASI NYALA LAMPU LED
Disusun oleh
Nama : ahdika setiyadi
NIM :10306141014
Kelas : Fisika B
Variasi Nyala Lampu LED
Tujuan : Dapat membuat program sesederhana mungkin tentang
a. Nyala ping pong
b. Menyebar merapat
c. Flip flop nyala ganjil
d. Flip flop nyala genap
Rangkaian lampu led
Dalam bahasa pemrograman yang digunakan pada software arduino yaitu bahasa C ada 2 bagian utama
yang harus ada pada setiap program yaitu void setup(){} dan void loop(){}.Fungsi tanda “ { “ dan “ } “ baik
di void setup dan void loop digunakan untuk mengawali perintah. Isi perintah pada void setup khusus di
nyala lampu led adalah untuk “mempersiapkan” lampu led pada masing-masing pin yang
digunakan.Sedang isi perintah void loop adalah inti dari program yang digunakan untuk menampilkan
nyala lampu led.
A. Nyala ping pong
Program dalam arduino:
int led;
void setup(){
for(led=10;led>=1;led--){
pinMode(led,OUTPUT);
}
}
void loop(){
for(led=10;led>=1;led--){
digitalWrite(led,HIGH);
delay(50);
digitalWrite(led,LOW);
}
for(led=2;led<=9;led++){
digitalWrite(led,HIGH);
delay(50);
digitalWrite(led,LOW);
}
}
Pembahasan
a. void setup()
Perintah for(led=10;led>=1;led--) dengan led=10 adalah intalisasi bahwa pin no 10 yang
akan digunakan pertama kali, sedang led>=1 adalah merupakan syarat agar perintah for
dapat jalan dan led—adalah perintah bahwa led no 10 akan berkurang 1 pada setiap
pengulangan dalam perintah for.
{pinMode(led,OUTPUT); } menyatakan bahwa led menunjukan no pin yang akan digunakan
sebagai output. Jadi secara ringkas pin yang akan digunakan dimulai dari pin no 10 sampai
sampai pin no 1 dengan urutan 10,9,8,. . .,1
b. void loop()
for(led=10;led>=1;led--){
digitalWrite(led,HIGH);
delay(50);
digitalWrite(led,LOW);}
berati untuk led dengan no pin 10,9,8, . . .,1 yang digunakan dalam perintah ini
dengan syarat 1 nomor pin untukl satu kali putaran perintah yaitu
digitalWrite(led,HIGH) yang berati lampu nyala, delay(50) berati perpindahan ke
perintah digitalWrite(led,LOW) adalah 50, digitalWrite(led,LOW) adalah perintah agar
lampu mati.
Setelah led dengan nomor 1 pin selesai dikenai perintah maka perintah berlanjut
lompat ke perintah selanjutnya yaitu
for(led=1;led<=10;led++){
digitalWrite(led,HIGH);
delay(50);
digitalWrite(led,LOW); }
perintah diatas berati led yang akan digunakan adalah led dengan pin no
1,2,3, . . . ,10.Setiap satu pin akan dikenai digitalWrite(led,HIGH) yang berate lampu
menyala, delay(50) berate selang waktu antara perintah digitalWrite(led,HIGH) ke
digitalWrite(led,LOW )adalah 50. digitalWrite(led,LOW) adalah perintah agar lampu
mati.Perintah ini berlangsung berurutan jika pin no 10 selesai dikenai perintah maka
akan loncat ke perintah sebelumnya(diatasnya) dan akan berlangsung terus menerus
sampai sumber daya habis.
B. Nyala menyebar merapat
Program yang digunakan di arduino
int led,Led;
void setup(){
for(Led=10;Led>=6;Led--)
pinMode(Led,OUTPUT);
for(led=1;led<=5;led++)
pinMode(led,OUTPUT);
}
void loop(){
Led=11;
led=0;
do{
Led=Led-1;
digitalWrite(Led,HIGH);
delay(100);
led=led+1;
digitalWrite(led,HIGH);
}while(Led>5&&led<6);
Led=11;
led=0;
do{Led=Led-1;
digitalWrite(Led,LOW);
delay(100);
led=led+1;
digitalWrite(led,LOW);
}while(Led>5&&led<6);
led=6;
Led=5;
do{ led=led-1;
digitalWrite(led,HIGH);
delay(100);
Led=Led+1;
digitalWrite(Led,HIGH);
}while(led>1&&Led<10);
led=6;
Led=5;
do{led=led-1;
digitalWrite(led,LOW);
delay(100);
Led=Led+1;
digitalWrite(Led,LOW);
}while(led>1&&Led<10);
}
Pembahasan
Void setup(){perintah}
Berisi dua peritah for dan pinMode,yaitu for(Led=10;Led>=6;Led--),
pinMode(Led,OUTPUT); ,for(led=1;led<=5;led++) , pinMode(led,OUTPUT); .
for(Led=10;Led>=6;Led--), pinMode(Led,OUTPUT); berati pin yang akan digunakan adalah no 10
sampai no 6 dengan inisialisasi nama “Led”.
for(led=1;led<=5;led++) , pinMode(led,OUTPUT); berati pin yang akan digunakan adalah no 1
sampai no 5 dengan inisialisasi nama “led”.
Void loop(){perintah}
Berisi 4 perintah do while. Do while merupakan perintah perulangan yang mana terdiri dari
1. Syarat pin akan no brapa yang akan di mulai.Syarat ini di isi sebelum kata”do” yang berate di
atasnya.
2. Do{},tanda kurung {} mengapit perintah perintah apa saja yang harus dilakukan, disini
programmer menginginkan lampi menyala dan mati dengan perintah digitalWrite.
3. While() tanda kurung () berati mengapit persyaratan yang berhubungan dengan perintah
dalam do.Secara garis besar perintah while berati sebagai aturan yang membatasi perintah
do dan bagaimana syarat perintah do berakhir.Ini seperti syarat pada led<=10 di perulangan
for.
Diprogram yang dibuat oleh programmer 4 perintah do while sebenarnya dapat dibagi 2 yaitu
perintah agar lampu menyala dan perintah agar lampu mati/padam.
Perintah agar lampu menyala adalah
Led=11;
led=0;
do{
Led=Led-1;
digitalWrite(Led,HIGH);
delay(100);
led=led+1;
digitalWrite(led,HIGH);
}while(Led>5&&led<6);
Perintah menyala ini dibuat agar led dengan pin no 1 sampai pin no 5 menyala,juga agar Led
dengan pin no 10 sampai no 6 menyala atau dengan kata lain menyala merapat
Dan
led=6;
Led=5;
do{ led=led-1;
digitalWrite(led,HIGH);
delay(100);
Led=Led+1;
digitalWrite(Led,HIGH);
}while(led>1&&Led<10);
Perintah menyala ini dibuat agar led dengan pin no 5 sampai pin no 2 menyala,juga agar Led
dengan pin no 6 sampai no 10 menyala atau dengan kata lain menyala menyebar
Perintah agar lampu padam adalah
led=6;
Led=5;
do{ led=led-1;
digitalWrite(led,HIGH);
delay(100);
Led=Led+1;
digitalWrite(Led,HIGH);
}while(led>1&&Led<10);
Perintah menyala ini dibuat agar led dengan pin no 5 sampai pin no 1 padam,juga agar Led
dengan pin no 6 sampai no 10 padam atau dengan kata lain padam menyebar
Dan
Led=11;
led=0;
do{Led=Led-1;
digitalWrite(Led,LOW);
delay(100);
led=led+1;
digitalWrite(led,LOW);
}while(Led>5&&led<6);
Perintah menyala ini dibuat agar led dengan pin no 1 sampai pin no 5 padam,juga agar Led
dengan pin no 10 sampai no 6 padam atau dengan kata lain padam merapat
C. Nyala flip flop ganjil
Program di arduino
int led;
void setup(){
for(led=10;led>=1;led--){
pinMode(led,OUTPUT);
}
}
void loop(){
digitalWrite(9,HIGH);
digitalWrite(7,HIGH);
digitalWrite(5,HIGH);
digitalWrite(3,HIGH);
digitalWrite(1,HIGH);
delay(100);
digitalWrite(9,LOW);
digitalWrite(7,LOW);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
digitalWrite(1,LOW);
delay(100);
digitalWrite(10,HIGH);
digitalWrite(8,HIGH);
digitalWrite(6,HIGH);
digitalWrite(4,HIGH);
digitalWrite(2,HIGH);
delay(100);
digitalWrite(10,LOW);
digitalWrite(8,LOW);
digitalWrite(6,LOW);
digitalWrite(4,LOW);
digitalWrite(2,LOW);
delay(100);
}
Pembahasan
Void setup(){perintah}
Berisi perulangan for,seperti dibawah ini
for(led=10;led>=1;led--){
pinMode(led,OUTPUT);}
fungsi perulangan ini adalah untuk nyeting pin yang akan digunakan yaitu diawali pin 10 sampe pin 1
yang di inisialisasi nama “led” . ”led>=1” merupakan pengujian yang digunakan untuk melakukan
pengulangan yang dilakukan lagi atau diakhiri.Sedang led—adalah pemutakhiran pencacah dipakai
untuk menaikan atau menurunkan nilai oencacah yang digunakan untuk mengontrol pengulangan.
Void loop(){perintah}
Berisi perintah agar led yang nyala adalah pin dengan no ganjil yang nyalanya bersamaan kemudian mati
dan pin dengan no genap nyala bersamaan dan mati.Perintah menyalakan lampu menggunakan
perintah digitalWrite(no_pin,HIGH).Satu perintah ini untuk satu no pin sehingga untuk menyalakan
lampu pin ganjil(1,3,5,7,9) dibutuhkan 5 perintah digitalWrite.Begitu pula dengan untuk menyalakan
lampu led dengan pin no genap(10,8,6,4,2) .Untuk perintah mematikan lampu led juga menggunakan
perintah digitalWrite hanya kata “HIGH” diganti dengan “LOW” aturan yang dibutuhkan juga sama.
Perintah delay(angka) difungsikan sebagai timer lampu nyala/mati sebelum pindah ke perintah yang
dibawahnya.Disini programmer menyeting agar delay bernilai 100mili detik dengan perintah delay(100)
D. Nyala flip flop genap
Listing program
int led;
void setup(){
for(led=10;led>=1;led--){
pinMode(led,OUTPUT);
}
}
void loop(){
digitalWrite(10,HIGH);
digitalWrite(9,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(2,HIGH);
digitalWrite(1,HIGH);
delay(1000);
digitalWrite(10,LOW);
digitalWrite(9,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(2,LOW);
digitalWrite(1,LOW);
delay(1000);
digitalWrite(8,HIGH);
digitalWrite(7,HIGH);
digitalWrite(4,HIGH);
digitalWrite(3,HIGH);
delay(1000);
digitalWrite(8,LOW);
digitalWrite(7,LOW);
digitalWrite(4,LOW);
digitalWrite(3,LOW);
delay(1000);}
Pembahasan
Void setup(){perintah}
Berisi perintah untuk “mempersiapkan” agar pin yang digunakan adalah pin no 10 sampe pin no 1
dengan inilialsasi nama”led”. Perintah tersebut terdiri dari
for digunakan untuk perulangan dengan led=10 adalah inisial_pencacah atau nilai awal
pencacah dan led>=1 adalah bagian pengujian yang digunakan untuk menentukan
pengulangan atau pengakhiran perintah for. Dan led—digunakan untuk menaikan atau
menurunkan nilai pencacah .
Dan perintah pinMode(led,OUTPUT) adalah perintah agar arduino
“mempersiapkan”pin yang digunakan dengan nama led.
Void loop(){perintah}
Berisi perintah agar lampu led yang nyala adalah pin no 1,2,5,6,9,10 dan nyala bersama. Kemudian
mati dan pin dengan no 3,4,7,8 nyala bersama kemudian mati.Dan perintah untuk menyalakan
lampu led adalah digitalWrite(no_led,HIGH). Satu perintah ini untuk satu no pin sehingga untuk
menyalakan lampu pin (1,2,5,6,9,10) dibutuhkan 6 perintah digitalWrite.Begitu pula untuk
mematikan lampu led dengan no pin tersebut juga menggunakan digitalWrite(no_pin,LOW) dengan
aturan yang sama dengan digitalWrite yang digunakan untuk menyalakan lampu, yaitu Satu perintah
digitalWrite untuk satu no pin. Untuk menyalakan pin led no 3,4,7,dan 8 juga menggunakan
digitalWrite(no_led,HIGH) dan digitalWrite(no_pin,LOW) untuk mematikan lampu led.