laporan praktikum mikrokontroler2

21
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

Upload: ipta-apipah

Post on 17-Sep-2015

102 views

Category:

Documents


4 download

DESCRIPTION

laporan mikrokontroler

TRANSCRIPT

  • 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