laporan praktikum mikrokontroler2
DESCRIPTION
laporan mikrokontrolerTRANSCRIPT
-
LAPORAN PRAKTIKUM MIKROKONTROLER
VARIASI POLA MENYALANYA LED CUBE 3X3X3
DENGAN PUSH BUTTON
Disusun oleh :
Restiana Aulia Supendi 12306141003
Ipta Apipah 12306141015
JURUSAN PENDIDIKAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI YOGYAKARTA
YOGYAKARTA
2015
-
A. Tujuan
Dapat membuat berbagai macam pola menyalanya LED pada bentuk kubik 3x3x3
dengan menggunakan saklar push button tanpa efek bouncing.
B. Alat dan Bahan
1. 9 buah resistor 220
2. 1 buah pushbutton
3. 3 buah resistor 22 k
4. 6 buah resistor 100
5. 27 buah LED
6. 6 buah push button
7. PCB
8. Transistor 2N22, 2N3904,BC547
9. Kabel penghubung
10. Arduino
Skema rangkaian
Gambar1.1 skema rangkaian
-
C. Analisis program
TIDAK
YA
Mulai
Pin 2 sampai dengan pin 13
sebagai OUTPUT dan pin 1 sebagai INPUT
Arus di layer bawah aktif dan led 2
sampai led 10 menyala secara berurutan
Arus di layer tengah aktif dan led 2 sampai led 10 menyala secara berurutan
Semua layer aktif
led menyala secara berurutan menbentuk pola berputar
Meng-OFFkan semua led
Keadaan led mati
semua ?
Semua led mati
-
Arus di layer atas aktif dan led 2 sampai
led 10 menyala secara berurutan
Meng-OFFkan semua LED dengan pola off satu per-satu
Meng-aktifkan semua layer
Pola ke samping kanan dan kiri
Pola ke atas dan ke bawah
Pola berjalan menyamping atau miring seolah-olah seperti melingkupi kubik
Pola berjalan dari tengak ke pinggir dan
sebaliknya
Pola led off satu-persatu
Pola berputar seperti baling-baling
Selesai
-
D. Program Arduino
int x=2;
int y=11;
int tombol1=1;
void setup(){
for(x;x
- for(int x=2;x
-
delay(250);
digitalWrite(10,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(2,HIGH);
digitalWrite(7,HIGH);
delay(250);
digitalWrite(2,LOW);
digitalWrite(7,LOW);
digitalWrite(6,HIGH);
digitalWrite(3,HIGH);
digitalWrite(8,HIGH);
delay(250);
digitalWrite(3,LOW);
digitalWrite(8,LOW);
digitalWrite(6,HIGH);
digitalWrite(4,HIGH);
digitalWrite(9,HIGH);
delay(250);
digitalWrite(4,LOW);
digitalWrite(9,LOW);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(10,HIGH);
delay(250);
digitalWrite(6,LOW); // pola jalan ke samping
digitalWrite(5,LOW);
digitalWrite(10,LOW);
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
-
delay(250);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(10,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(250);
digitalWrite(10,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
delay(250);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(10,HIGH);
delay(250);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(10,LOW);
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
delay(250);
digitalWrite(2,LOW);// pola keatas dan bawah
digitalWrite(3,LOW);
-
digitalWrite(4,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(2,HIGH);
delay(250);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(2,LOW);
digitalWrite(8,HIGH);
digitalWrite(6,HIGH);
digitalWrite(3,HIGH);
delay(250);
digitalWrite(8,LOW);
digitalWrite(6,LOW);
digitalWrite(3,LOW);
digitalWrite(7,HIGH);
digitalWrite(5,HIGH);
digitalWrite(4,HIGH);
delay(250);
digitalWrite(7,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
digitalWrite(8,HIGH);
digitalWrite(6,HIGH);
digitalWrite(3,HIGH);
delay(250);
digitalWrite(8,LOW);
digitalWrite(6,LOW);
digitalWrite(3,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
-
digitalWrite(2,HIGH);
delay(250);
digitalWrite(9,LOW); // POLA MIRING
digitalWrite(10,LOW);
digitalWrite(2,LOW);
delay(100);
digitalWrite(2,HIGH);
delay(250);
digitalWrite(2,LOW);
digitalWrite(10,HIGH);
digitalWrite(3,HIGH);
delay(250);
digitalWrite(3,LOW);
digitalWrite(10,LOW);
digitalWrite(4,HIGH);
digitalWrite(6,HIGH);
digitalWrite(9,HIGH);
delay(250);
digitalWrite(4,LOW);
digitalWrite(6,LOW);
digitalWrite(9,LOW);
digitalWrite(5,HIGH);
digitalWrite(8,HIGH);
delay(250);
digitalWrite(5,LOW);
digitalWrite(8,LOW);
digitalWrite(7,HIGH);
delay(250);
digitalWrite(7,LOW);
delay(250);
digitalWrite(6,HIGH);// pola tengah pinggir dan sebaliknya
-
digitalWrite(5,HIGH);
digitalWrite(10,HIGH);
delay(250);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(10,LOW);
digitalWrite(3,HIGH);
digitalWrite(2,HIGH);
digitalWrite(4,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
delay(250);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(10,HIGH);
digitalWrite(3,LOW);
digitalWrite(2,LOW);
digitalWrite(4,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
delay(250);
for(int y=11;y
-
digitalWrite(y,LOW);
delay(250);
}
status_led=0;
}tombol_lama=tombol1;
}
E. Analisis dan Pembahasan
Pada percobaan ini, sama seperti percobaan yang sama dengan percobaan
sebelumnya yaitu kami membuat sembilan macam variasi pola menyalanya LED
yang di bentuk kubik berukuran 3x3x3 dengan cara menanamkan program yang kami
buat pada Arduino, bedanya adalah pada rangkaian ditambahkan pushbutton yang
akan mengontrol jalannnya rangkaia dengan ditambahkan tanpa efek bouncing.
Ketika push button ditekan maka, pola menyalanya led akan berjalan dimana pada
keadaan awal, semua led diatur dalam keadaan tidak menyala. Untuk menghindari
efek bouncing yang sering terjadi pada program Arduino diberikan fungsi if, karena
sekali menekan tombol pushbutton maka akan memberikan 1 perintah, sedangkan
yang terbaca pada rangkaian akan memberikan lebih dari 1 perintah.
Dalam program awal semua led diatur dalam keadaan mati, fungsi if akan
memberikan logika bahwa led berada dalam keadaan mati atau tidak, apabila semua
led berada dalam keadaan mati maka program pola menyalanya led akan berjalan.
Namun, apabila tidak maka semua led akan dimatikan kemudian pola led akan
berjalan.
-
Sebelum membuat program kita harus memahami terlebih dahulu rangkaian dari led
yang berbentuk kubik dengan ukuran 3x3x3 ini. Berikut adalah gambarannya:
Gambar(a) Gambar (b)
Gambar(a) menunjukan susunan LED yang di hubungkan dengan nomor pin
pada arduino sedangkan gambar (b) menunjukan bahwa layer atau boleh dibilang
tinggkat ini di hubungkan dengan transistor dan tentunya pin arduino dimana masing-
masing pin 11, 12 dan 13 dipasangkan secara berurutan pada layer atas, tengah dan
bawah. Pin 11,12 dan 13 ini nantinya akan mengatur arus yang menuju layer atau
tingkatan pada led kubik itu akan akan tetap di alirkan atau tidak dialirkan arus.
Dalam percobaan ini kami menggunakan pin 2 sampai dengan pin 13 dan
dalam void setup pada program arduino pin 2 sampai 13 sebagai output, karena pin
2 sampai pin 13 semuanya output maka kita dapat merangkum programnya dengan
menggunakan for. Berikut adalah programnya :
void setup(){
for(int x=2 ;x
-
secara berurutan. Selanjutnya masuk pada proses loop dimana program yang telah
dibuat dapat dijalankan, untuk proses yang pertama adalah pin 11, 12 dan 13 on/high
yang berarti arus akan dialirkan pada semua layer sehingga untuk satu led yang nomor
pin arduinonya di nyalakan maka led akan menyala ketiga-tiganya lalu ke pola yang
pertama yaitu pola berputar dengan program :
for(int x=2;x
-
delay(250); }
perlu di perhatikan bahwa untuk menyalakan led secara berurutan yang dibawah saja,
maka layer bawah saja yang di aliri arus sehingga pin 13 itu high sedangkan pin 11
dan pin 12 layernya tidak dialiri arus atau boleh dituliskan low. Disini led yang sudah
menyala secara berurutan tadi ketika dia sudah menyala tidak langsung di offkan.
Pola menyala layer tengah dengan program tidak jauh berbeda dengan yang hanya
menyala di layer bawah saja disini pin 12 yang awalnya low sekarang high sehingga
layer tengahpun bisa aktif dan led menyala secara berurutan berikut adalah
programnya:
digitalWrite(12,HIGH);
for(int x=2;x
-
Untuk program pola yang lainnya di sini pin 11,12,dan 13 selalu high yang
berarti bahwa ketika satu pin high maka led dengan nomor pin yang sama, ketiga-
tiganya akan menyala.
Pola berputar seperti baling-baling dapat di gambarkan sebagai berikut :
(a) (b) (c) (d) (e)
keterangan pin keadaan
a 5,6,10 HIGH
b 2,6,7 HIGH
c 6,3,8 HIGH
d 4,6,9 HIGH
e 5,6,10 HIGH
Berdasarkan keadaan diatas, untuk masing-masing pin yang tidak dalam
keadaan high, harus dalam keadaan low. Untuk ke pola yang berikutnya maka pin
yang dalam kadaan high pada pola sebelumnya harus di low kan terlebih dahulu.
Selanjutnya yaitu pola ke samping kanan dan kiri, dapat di ilustrasikan sebagai
berikut :
no Ke kanan Ke kiri keadaan
1 2,3,4 7,8,9 HIGH
2 5,6,10 5,6,10 HIGH
3 7,8,9 2,3,4 HIGH
8 6 30
9 10
2
09
7 5 4
-
Program di mulai dari pola ke kanan terlebih dahulu dimana ketika pin 2,3,4 sudah
menyala dan jika akan dilanjutkan ke keadaan selanjutnya yaitu pin 5,6,10
menyala ,maka pin pada keadaan sebelumnya harus dalam keadaan low begitu juga
untuk pola ke kiri. Dapat dilihat pada table diatas, ketika akan masuk pola ke kiri, pin
7,8,9 yang masih dalam keadaan menyala di off kan terlebih dahulu sebentar saja lalu
di on kan kembali.
Kemudian pola berjalan ke atas dan kebawah di gambarkan sebagai berikut:
Sama seperti pola ke samping kanan dan kiri, untuk pola ke atas dan bawah
juga untuk memulai pola ke bawah, semua pin harus dalam keadaan low, dan
untuk pola ke bawah yang dilanjutkan dengan pola ke atas pin 4,5,7
yangtadinya keadaan high lalu di low kan dahulu sebentar kemudian dalam
keadaan high lagi untuk memulai pola keatas.
Pola berjalan menyamping atau miring seolah-olah seperti melingkupi kubik
di gambarkan seperti berikut:
no Ke bawah Ke atas keadaan
1 2,9,10 4,5,7 HIGH
2 3,6,8 3,6,8 HIGH
3 4,5,7 2,9,10 HIGH
no pin keadaan
1 2 HIGH
2 2,3,10 HIGH
3 4,6,9 HIGH
4 5,8 HIGH
5 7 HIGH
-
Progam dimulai dengan pin 2 keadaan high kemudian pin 2,3,10 keadaan high
sedangkan pin 2 low begitu juga seterusnya sampai pin 7 keadaan high dan pin 7 di-
low kan kembali. Pola ini apabila dijalankan akan membentuk seperti led yang
bergerak melingkupi kubik.
Selanjutnya yaitu pola menyala dari tengah ke samping dan sebaliknya yang di
gambarkan seperti berikut :
no pin keadaan
1 5,6,10 HIGH
2,3,4,7,8,9 LOW
2 5,6,10 LOW
2,3,4,7,8,9 HIGH
Pola yang terakhir yaitu semua led akan off secara berurutan dengan
menggunakan program yang dapat disingkat program seperti berikut
for(int y=11;y
-
redup yang di karenakan led di pasang dengan cara di seri sehingga arus yang
mencapai layer atas kecil.
F. Kesimpulan
Dengan menggunakan program arduino kita dapat memvariasi berbagai
macam pola nyalanya led yang bentuk kubik 3x3x3 dan dengan menggunakan
pushbutton tanpa efek bouncing dapat meminimalisir efek bouncing yang sering
terjadi pada pushbutton
-
Dokomentasi
Proses pembuatan rangkaian
-
Setelah program dijalankan