CPnE = CAPE???

the way learn arduino


Agar arduino bekerja sesuai yang diinginkan tentunya aku harus bisa mem-program arduino dengan benar,  membuat program berarti aku harus ngerti bahasa arduino, aku harus tahu dan belajar bahasa yang dipakai oleh arduino ini.
Latar belakang pendidikan ku sama sekali tidak ada hubungannya dengan microcontroller or programer computer sehingga sulit bagi aku untuk bergerak mengenal lebih jauh Arduino. Tentu saja dalam hal ini bahasa akan menjadi kendala  dalam memprogram board arduino.
Dari hasil pendalaman,  bahasa Arduino (aku gk ngerti bahasa apa yang dipakai ?) terdiri dari Code (bener khan ?). Code ini (kode) ditulis dan disusun di dalam sketch  (sket) hingga menjadi program. Program inilah yang nantinya menjadi urut urutan pekerjaan yang akan dilakukan oleh board arduino setelah di upload tentunya. Aku sedikit terbantu dengan adanya kode dan contoh program  yang disediakan oleh arduino. Kode dan contoh program  aku biasa  lihat di library-nya  arduino. Cara lihat nya sih gampang klik  help>reference   (kalo cuma lihat aja sih gampang nyusun kodenya itulah yg bikin aku keringetan).

Gambar 1. Menu Reference

Nanti muncul halaman mozilla seperti ini (don’t worry be happy gak terhubung ke internet pun halaman ini akan muncul) :


Gambar 2. Kode kode inilah yang nantinya menghiasi sket arduino-ku

Disana terlihat kode arduino yang disusun berdasarkan kategori, kalau aku perhatikan sih yang tertera di halaman ini kode yang umum dan banyak  dipake, sebenarnya masih banyak kode yang dipakai oleh arduino yang tidak ditulis di halaman ini. Kalau salah satu kode tersebut aku  klik maka muncul halaman baru yang berisi informasi kegunaan serta cara penulisannya kode hingga menjadi program.
Ada untungnya aku telat mengenal arduino (kok untung sih??? Bagaimana bisa?), saat ini udah banyak karya yang berbasis arduino dan tentu saja dengan source code-nya atau kode sumber yang dibuat oleh pakar mikrokontroler, hal ini memudahkan bagi saya untuk mempelajari program arduino sekaligus dengan contoh karyanya (oooh gituh toh!!!).
Setelah tengok sana tengok sini  di google sini (kayak maling aja?),  akhirnya aku memilih untuk belajar dengan cara kusendiri dan   menciptakan metoda  cara cepat belajar  arduino    dengan  metoda CPnE (cool hah?) sekilas sih keren padahal cuma Copy, Paste and Edit doang  (Ha3x),   aku contek program orang, tempelin di sket arduino yang kosong lalu edit-deh bila dirasa perlu...selesai (simple isn’t it?).
Sekarang metoda penulisan program aku sudah punya, tinggal komponen dan alat pendukung… kalau dipikir pikir (aku mulai bisa mikir nih tadinya blank kayak gudang kosong) dan ditimbang timbang (kayak gendongan bayi) led kayaknya cocok dipakai experimen tahap pertama sekaligus memulai belajar programnya. Led juga bisa mewakili komponen digital output yang mahal dan rumit, selain itu  led juga komponen relatif murah dan mudah didapat. Namun dengan satu led yang ada di board arduino (yang terhubung ke pin 13) tentu saja tidak cukup untuk bebagai macam rancangan, maka aku buat rangkaian led dengan jumlah led 7 buah yang aku solder di Stripe Board alias PCB dengan lubang bor dalam baris  dan dibikin macam shield arduino.

Gambar 3 . Stripe Board

 Gambar 4. Skema Led Shield

Gambar 5. Led Shield Tampak muka

Gambar 6. Led Shield Tampak Belakang

Gambar 7. Susunan Led

Gambar 8. Led Shield on Saverino
 
Aku rasa sih rangkaian ini cukup untuk mewakili berbagai macam komponen digital output dan kini saatnya aku tes rangkaian led ini dengan lampu berjalan (saatnya uji nyali). Led yang dipakai adalah led  1 sampai dengan led 5 yang terhubung ke pin 8 sampai dengan pin 12 lalu aku buat  programnya seperti ini :

void setup() {               
  //tentukan pin sebagai output
  pinMode(12, OUTPUT); //Led 5
  pinMode(11, OUTPUT); //Led 4
  pinMode(10, OUTPUT); //Led 3
  pinMode(9, OUTPUT); //Led 2
  pinMode(8, OUTPUT);  //Led 1
}

void loop() {
 digitalWrite(8,HIGH); // led 1 (pin 8) nyala
 delay(100);                // jeda 100 milli second
 digitalWrite(8,LOW);  // led 1( pin 8 ) padam

 digitalWrite(9,HIGH); // led 2 (pin 9) nyala
 delay(100);                 // jeda 100 milli second
 digitalWrite(9,LOW); //  led 2 (pin 9) padam

 digitalWrite(10,HIGH); // led 3 (pin 10) nyala
 delay(100);                  // jeda 100 milli second
 digitalWrite(10,LOW); //  led 3 (pin 10) padam

 digitalWrite(11,HIGH); // led 4 (pin 11) nyala
 delay(100);                  // jeda 100 milli second
 digitalWrite(11,LOW); //  led 4 (pin 11) padam

 digitalWrite(12,HIGH); // led 5 ( pin 12 ) nyala
 delay(100);                  // jeda 100 milli second
 digitalWrite(12,LOW); //  led 5 ( pin 12 ) padam

}


Hasilnya lampu led berjalan dari led 1 berurutan menuju ke led 5 atau dari pin 8 ke pin 12 dengan  interval kurang lebih  100 mili detik. Tapi ternyata program diatas kepanjangan dan kelihatan manual buanget. Setelah melihat program orang lain yang mirip mirip dengan yang saya buat, program bisa disederhanakan dng dibikin seperti ini (CPnE ingat?)  :

void setup() {               
  //tentukan pin sebagai output
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT); 
}

void loop() {
  // mengitung mulai dari 8 sampai 12 dan hasilnya disimpan di "i"
  for (int i = 8; i<=12; i++){
  // menyalakan led berurutan dengan pin sesuai  nilai "i"
  digitalWrite(i,HIGH);
  //jeda 100 mili detik
  delay(100);     
  // padamkan  led berurutan dengan pin sesuai  nilai "i"
  digitalWrite(i,LOW); 
   }
}

Lampu led berjalan dari led 1 berurutan led 5 (dari pin8 berurutan ke pin  12) sesudah dari led 5 loncat ke led 1  (dari pin 12 loncat ke pin 8). Lama lama gak tega kasihan lihat led loncat loncat. Dengan rasa kemanusiaan tinggi aku berupaya keras  agar led gak harus loncat. Aku berusaha mengakali supaya led berjalan dari led 1 berurutan sampai led 5 kemudian berjalan balik berurutan dari led 5 menuju led 1 dan seterusnya bolak balik tanpa loncat (sampai low batt deh). Lalu aku singsingkan lengan baju kemudian puter otak n  akhirnya aku coba bikin sket seperti ini :

void setup() {               
  //tentukan pin sebagai output
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT); 
}

void loop() {
  // mengitung mulai dari 8 sampai 12 dan hasilnya disimpan di "i"
  for (int i = 8; i<=12; i++){
  // menyalakan led berurutan dengan pin sesuai  nilai "i"
  digitalWrite(i,HIGH);
  //jeda 100 mili detik
  delay(100);     
// padamkan  led berurutan dengan pin sesuai  nilai "i"
  digitalWrite(i,LOW); 
   }
  
//hitung mundur dari 11 sampai 9 dan hasilnya disimpan di “I”
for (int i = 11; i>=9; i--){
  // menyalakan led dengan pin sesuai "i"
  digitalWrite(i,HIGH);
  //jeda 100 mili detik
  delay(100);     
  // padamkan  led dengan pin sesuai "i"
  digitalWrite(i,LOW); 
   }
}

Hasilnya sesuai dengan rencana menolong sang led. Led berjalan berurutan dari led 1 menuju ke led 5 (dari pin8 berurutan ke pin12) dan kemudian balik berurutan dari led 5 menuju ke led 1 (dari pin12 berurutan ke pin8)  tanpa loncat, terusssssss begitu….. led bolak balik, kiri-kanan-kiri-kanan-kiri-kanan….seolah olah menghipnotis saya dan akhirnya saya-pun  tertidur di meja kerja…. z.. z.. z.. z…z !!!

4 comments:

  1. hahaha..... pembahasan yang keren bro.. gak bosan bacanya, soale lucu...

    ReplyDelete
  2. artikelnya bagus gan, kunjungi juga website saya di " MEMBUAT LAMPU LED BERKEDIP DENGAN ARDUINO UNO R3 "

    atau link.nya di http://www.argayudhaadhiprama.com/membuat-lampu-led-berkedip-arduino-uno-r3/

    trimakasih dari argayudhaadhiprama.com

    ReplyDelete