Arduino, Software, Tutorial

DASAR PEMROGRAMAN ARDUINO – LED BLINK

1.    PENDAHULUAN

Jika biasanya untuk memahami, mengetahui atau mempelajari sebuah program dimulai dari mempelajari dan mengingat teori-teori lalu kemudian diaplikasikan atau dipraktekan dengan membuat sebuah project maka pada kesempatan ini kita akan menggunakan metode dengan pendekatan yang berbeda. Justru sebaliknya, pada kesempatan ini kita akan membuat sebuah project dari mulai membuat sebuah program, melakukan interfeacing atau merangkai rangkaian hingga mengamati hasil dari kegiatan tersebut terlebih dahulu, kemudian barulah kita menganalisis dan mencoba memahaminya baik itu dari segi bahasa pemrograman,  interfeacing (input/output) maupun dari segi rangkaian atau hardware.

 

2.     PROGRAM DASAR LED BERKEDIP (LED BLINKING)

2.1. Persiapan Untuk Membuat Project LED Blingking


Gambar 2.1 Rangkaian LED BLINKING

Alat yang diperlukan jika menggunakan Breadboard

 

2.2. Program


/*
====================================================

By : CNC_STORE_BANDUNG

www.cncstorebandung.com

====================================================

*/

int R = 13; // pemberian nama dan inisialisasi untuk LED pada Pin Digital 13

void setup(){

pinMode(R, OUTPUT); //Menyeting “R” Sebagai Output

}

void loop(){

digitalWrite (R, HIGH);  //Menyalakan LED

delay(1000);  //Jeda sebayak 1000 mili second (1 detik)

digitalWrite (R, LOW);  //Mematikan LED

delay(1000);  //Jeda sebayak 1000 mili second (1 detik)

}
  • Hasil

Hasil dari project ini yaitu akan membuat LED berkedip dalam durasi satu detik. Durasi kedipan LED didapat dari besaran “delay(1000);” dimana besaran tersebut adalah jumlah waktu dalam mili detik. Pemasangan LED harus diperhatikan polaritasnya, dimana aki yang panjang mengarah ke kutup Positif (+), sedangkan kaki yang pendek atau kaki pada permukaan LED yg datar, mengarah ke kutub negatif (-).

  • Analisis Program

Jika kita amati sketch tersebut kita akan melihat beberapa element pada bahasa pemrograman Arduino seperti berikut ini:

  • // (komentar satu baris)

Tanda ini berfungsi untuk menuliskan komentar. Hal ini berguna untuk memberikan keterangan atau arti dari kode yang kita buat, ini akan sangat membantu untuk mengingat terlebih jika program yang kita buat sangat banyak. Apapun yang ditulis di belakang tanda tersebut akan diabaikan pada proses upload. Lalu bagaimana jika komentar kita lebih dari satu baris dengan menggunakan tanda ini (//)? Untuk menjawabnya mengapa kita tidak mencobanya saja? Kemudian silahkan simpulkan dari hasil percobaan tersebut.

  • /* */ (komentar banyak baris)

Jika pembuat program memiliki banyak catatan, maka hal itu dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang terletak diantara dua simbol tersebut akan diabaikan oleh program.

  • { } (kurung kurawal atau curly braces)

Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).

  • ; (titk koma)

Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan, untuk membuktikannya silahkan coba hapus dan upload lalu amati yang terjadi).

  • Type Data Untuk Variable

Pada bagian inisialisasi yaitu pada bagian “int R = 13;“ sketch ini menggunakan type data integer untuk variabel “R” (R adalah nama yg diberikan untuk lampu LED yang kita gunakan) dan dinyatakan akan dirangkai atau dihubungkan dengan digital pin Digital13 (D13).

  • Structure Program

Analisis lebih lanjut kini kita menginjak pada struktur program, dimana pada sketch ini terdapat dua bagian utama program void yaitu “void setup() “ dan “void loop()” dimana bagian tersebut memiliki fungsi masing-masing sebagai berikut:

Ketika  Anda  pertama  kali  membuka  Arduino  IDE, maka  secara otomatis akan muncul sketch seperti berikut:

Gambar 2.2 Tampilan Awal IDE Arduino

Fungsi  void setup()  dan fungsi voidloop()  merupakan fungsi wajib dan harus ada.  Fungsi   setup()   digunakan   untuk  inisialisasi program,  fungsi  ini hanya  dijalankan  sekali  yaitu  ketika  program  pertama  kali  dijalankan (ketika arduino pertama kali dihidupkan). Sedangkan  fungsi loop()  akan dijalankan  terus-menerus (looping forever) hingga  Arduino dimatikan.

Program   di  atas  sudah  bisa  diupload  ke  Arduino  dengan  cara meng-klik    tombol   Upload.   Hanya   saja,   ketika   program   tersebut diupload, Arduino tidak akan melakukan apa-apa sebab dalam sketch tersebut memang tidak ada perintah yang harus dikerjakan.

Mari kembali pada program LED Blink dan perhatikan Program yang telah kita buat tersebut.

Fungsi   pinMode() memberi  tahu  bahwa  pinLED  adalah  Output. Dengan  demikian  mikrokontroller tidak  akan  “membaca” logika  pin tersebut, akan tetapi dia hanya akan “menulis” logika pada pin tersebut. Dengan  kata  lain, jika kita  ingin  mendefinisikan  bahwa pin ini adalah input, maka kita tinggal mengubah OUTPUT menjadi INPUT.

Baris program ini akan memerintahkan pin yang digunakan “R” yaitu pin “13” diseting sebagai output, dan untuk menyeting ini maka Arduino Uno akan melakukan eksekusi sekali dengan memberikan tegangan output pada pin tersebut sesaat setelah program diuplod pada Arduino Uno. Lalu  apa  yang  dimaksud  dengan  “OUTPUT”  itu  sendiri?  Lalu  apa perbedaan statement output dan input? Darimana kita tau bahwa Arduino memang mengeksekusi sebanyak satu kali program pada bagian void setup tersebut?

Yang dimaksud dengan “ OUTPUT ” yang ditulis tersebut yaitu sebuah perintah agar mikrokontroler mengeluarkan tegangan output (besar tegangan output pada mikrokontroler adalah sebasar +5V), sedangkan perbedaannya dengan statement “INPUT” yaitu pada perintah ini justru sebaliknya, yaitu perintah agar mikrokontroler membaca tegangan yang masuk (tegangan input maksimum adalah sebesar +5V) untuk di proses pada perintah selanjutnya. Untuk mengetahui apakah memang benar Aduino Uno akan mengeksekusi atau menjalankan program pada bagian Void setup, kita bisa mengamatinya secara langsung dan silahkan mencobanya dengan mengupload sketch tersebut. Ketika sesaat sketch diupload maka led akan menyala sebanyak satu kali.

Baris  void loop()  adalah  inti  dari  program  yang  akan  dieksekusi  selama Arduino tersambung dengan  listrik  atau selama Arduino tidak direset. pinLED  diset   HIGH  berarti   LED  akan   diberi   tegangan  5  volt, sedangkan  LOW berarti  LED akan diberi tegangan 0 volt. Oleh sebab itu, rangkaian LED di atas akan menyala  ketika diberi HIGH dan akan mati ketika diberi LOW.

Fungsi  delay() digunakan  untuk  berhenti  selama  sekian  milidetik. Karena  1  detik  = 1000  milidetik,  maka  pemberian  nilai  1000  berarti Arduino akan jeda selama 1 detik ketika LED nyala dan 1 detik ketika LED  padam.  Lalu  bagaimana   jika  program   yang   Anda  coba  tidak berjalan dan error? Begini, ada beberapa yang perlu diperhatikan  ketika Anda memprogram:

  • Penulisan sketch  itu  case  sensitive, artinya,   tulisan  “pinLED” tidak    sama   dengan    “PinLED”.   Jika   terjadi    error,  coba perhatikan  apakah ada penulisan yang keliru?
  • Jika Anda copy-paste sketch dari file PDF ke Arduino IDE, maka kemungkinan akan ada perubahan whitespace (spasi, tab, blank line). Jika spasi tergantikan denan karakter tab atau blank line, maka  sketch  akan  error. Silakan  Anda  cek  setiap  spasi,  jika ukuran   space-nya  berbeda  dengan   spasi  yang   lain,  silakan dihapus dan ganti dengan spasi.
  • Setiap blok kode harus diapit dengan  kurung  kurawal  ‘{’ dan‘}’. Jika kurungnya kurang  satu, maka akan error.
  • Setiap ada kurung buka ‘(’, harus ada kurung tutup ‘)’. Jadi jika ternyata kurungnya kurang, itu bisa menyebabkan error.
  • Penulisan angka  tanpa embel-embel  k Misal  Anda ingin menulis  1000,  maka  tidak  perlu  menulis  dengan  1,000  atau 1.000. Penulisan  dengan  1,000  akan  terjadi  error,  sedangkan jika Anda menulis dengan 1.000 akan dianggap  1, bukan 1000.
  • Setiap baris kode akan ditutup dengan titik koma (semicolon) ‘;’, kecuali  di   akhir   block kode   yang   ditutup   dengan   kurung kurawal  ‘}’.

 

3.    Analisis HardwareLED Blinking

  • Resistor

Arus yang diperlukan untuk menghasilkan cahaya yang paling terang pada jenis LED Super Bright dan LED Ultra Bright adalah sebesar 0.02A, untuk itu kita perlu menggunakan sebuah resistor agar arus yang mengalir pada LED tidak melebihi 0.02A.

Yang   menjadi   pertanyaan   adalah   “Berapakah   nilai   resistor   yang diperlukan?”, Nah perhitungannya adalah sebagai berikut :

Dimana:

  • R= Resistor
  • Vs= Tegangan Sumber
  • Vf= Tegangan Vorward LED (Rata-rata 1.5V-2.2V)
  • If= Arus Maksimum yang boleh dilalui LED (Rata-tara 0.02A)

Sehingga  dengan  persamaan  di  atas  dapat  ditentukan  bahwa  nilai minimum resistor yang harus digunakan adalah sebagai berikut:

R = (5-1,2V )/ 0.02A = 190

namun   untuk   memperkecil   resiko   kerusakan   MCu   karena   terlalu   sering mengalirkan arus yang besar maka resistor dipakai adalah resistor yang bernilai 220Ω, Dengan begitu mikrokontroler dan LED akan memiliki keawetan yang lebih lama

Untuk mengetahui nilai resistor berdasarkan kode warna kita dapat mempelajari dibawah ini. Perhatikanlah tabel kode warna resistor pada tabel berikut.

Tabel 3.1 Tabel Kode Warna

Ganbar 3.1 Cincin Pada Resistor

Sesuai dengan perhitungan sebelumnya, bahwa nilai resistor yang diperlukan adalah sebesar 220Ω maka warna-warna pada cincin resistor tersebut adalah sebagai berikut.

Ganbar 3.2 Resistor 220Ω

Cicncin pertama adalah merah yang dalam tabel memiliki nilai 2, cincin kedua juga berwarna merah yang bernilai 2 dan cincin ketiga merupakan pengali yang berwarna Coklat bernilai 10 pangkat 0 (10 pangkat 0 = 1), sedangkan yang berwarna coklat adalah toleransi yaitu 1%.

  • LED (Light Emitting Diode)

Ganbar 3.3 LED

Pengertian LED (Light Emitting Diode) dan Cara Kerjanya – Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan  cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada Remote Control TV ataupun Remote Control perangkat elektronik lainnya.

Bentuk LED mirip dengan sebuah bohlam (bola lampu) yang kecil dan dapat dipasangkan dengan mudah ke dalam berbagai perangkat elektronika. Berbeda dengan Lampu Pijar, LED tidak memerlukan pembakaran filamen sehingga tidak menimbulkan panas dalam menghasilkan cahaya.  Oleh karena itu, saat ini LED (Light Emitting Diode) yang bentuknya kecil telah banyak digunakan sebagai lampu penerang dalam LCD TV yang mengganti lampu tube.

  • Simbol LED dan Cara Membedakan Anoda/Katoda pada LED

Ganbar 3.4 Simbol LED dan Polaritas

Ganbar 3.4 Cara Melihat Polaritas LED

Demikian untuk pengenalan singkat tentang Arduino, merakit komponen  dengan  peoject  board,  dan  membuat  program  sederhana LED   berkedip.   Silakan    lakukan    improvisasi    rangkaian   tersebut sehingga lebih  paham dan  lebih  nyaman  menggunakan project board. Selanjutnya, kita  akan  lebih  mendalami  beberapa  perintah  dasar  dan fungsi-fungsi logika untuk membuat program Arduino.

Related Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *