Buku-buku elektronika

Teori membawa kita dari benturan sana-sini, yuk baca buku.

Skema dan PCB

Cari skema rangkaian? atau dengan layout? Disini tempatnya.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Sabtu, 17 September 2016

Membuat GUI dengan processing untuk Arduino pada Protheus

Selamat datang kembali!

Alhamdulillah, penulis telah menyelesaikan studi S1 dan inshaa Allah akan mengaktifkan blog ini dengan posting-postingan yang bermanfaat, dan lebih intens.

Pada pembahasan kali ini, kita akan belajar membuat sebuah GUI (Graphic User Interface) menggunakan software Processing untuk mengendalikan sebuah LED menggunakan Arduino, namun bukan dengan Arduino sungguhan, tapi virtual dengan bantuan software Protheus. Jadi kalian gak harus beli Arduinonya.

Hmmm.... menarik kan? Baca sampai habis ya.

Okay, sebelumnya kalian harus mengerti terlebih dahulu fungsi dari masing-masing software yang kita gunakan yakni Protheus, Processing, dan Arduino IDE.

Software yang dibutuhkan :
  • LabCenters Proteus software yang telah dipasang library Arduino
  • Virtual Serial Port Emulator
  • Processing
  • Arduino IDE
 Okeh kita mulai 

1. Virtual Serial Port Emulator
Virtual Serial Port Emulator digunakan untuk membuat komunikasi secara virtual, sehingga kita  dapat menghubungkan Arduino (virtual) yang ada di Protheus dengan Processing.



download dan install VSPE di web berikut
http://www.eterlogic.com/Products.VSPE.html

 2.  Membuat sebuah COM PORT baru
- Buka software VSPE


- Pada device type pilih Pair
 

- Klik Finish





- Okeh sekarang, kita berhasil membuat serta mengaktifkan dua COM Port terminal baru, yakni COM1 dan COM2


3. Membuat sebuah projek di Protheus
Buka software protheus atau isis. Lalu siapkan komponen yang dibutuhkan :
- Arduino Uno
- LED-RED
- COMPIM
- Resistor 220 Ohm

Buatlah rangkaian seperti gambar di bawah ini.



4. Mengatur komunikasi COMPIM pada Protheus
Klik 2 kali pada COMPIM, lalu atur setiap parameternya seperti pada gambar di bawah ini. Ingat! karena tadi kita mengatur terminal COM PORT pada VSPE di COM1, maka kita harus menyesuaikannya di software protheus, yakni COM1 pada Physical port.
 
Picture of Set up the communications

5. Buat Program Arduino
Berikutnya adalah membuat sketch Arduino pada IDE, perhatikan source code berikut.

/* 
 *  Kontrol Lampu LED secara Virtual
 *  dengan Processing dan Protheus
 *  Made By Rian Glori Suseno
 *  Katro 12 UNJ
 */

int input=0;  // Variabel untuk menampung data dari processing

void setup()
{
  Serial.begin(9600); // Atur Baudrate sesuai dengan protheus
  pinMode(13,OUTPUT);
} 
 void loop()
{
  if(Serial.available()>0)
  {
    input =Serial.parseInt(); // Baca data serial hanya tipe data integer
  }
  digitalWrite(13,input);
}


kemudian compile dan copy direktori file hex-nya. Seperti gambar di bawah ini



Lalu, buka kembali software protheus, klik dua kali pada board Arduino lalu paste pada Program File


6. Membuat GUI dengan Processing
Buka processing, lalu perhatikan source code berikut. Perlu diperhatikan, karena Device type yang kita gunakan adalah Pair pada VSPE, maka atur COM Port serial di processing pada COM2.

/*
* GUI Untuk Kontrol LED dengan Arduino
* Pada Protheus
* Made By Rian Glori Suseno
* Katro 12
*/


import controlP5.*;  // Library untuk membuat gui
import processing.serial.*;  // Library untuk komunikasi serial

// Membuat Objek
ControlP5 cp5;
Serial arduinoGue;

int LED=0;

void setup()
{
  size(300,100);
  cp5= new ControlP5 (this);
  arduinoGue=new Serial (this,"COM2",9600);
  noStroke();
  
  // Buat sebuah tombol toggle
  cp5.addToggle("LED")
     .setPosition(20,20)
     .setSize(20,50)
     ;
}

void draw()
{
  background(128,128,0);
  if(LED==1)  // Jika ditekan maka lingkaran merah
  {
    fill(255,0,0); 
    ellipse(100,50,50,50);
  }
  
  else   // jika tidak maka putih
  {
    fill(255);
    ellipse(100,50,50,50);
  }
  
  // Kirim data 
  arduinoGue.write(LED+"\n");
}


7. Finishing
Buka software protheus, lalu jalankan simulasinya. Kemudian buka software processing lalu jalankan programnya.


Sekarang, coba klik tombol toggle LED. Dan tara... anda telah berhasil membuat GUI.

Selasa, 02 Agustus 2016

Kupas tuntas penilitian si-Glori (Part-1)


Wajah Bahagia Penulis Bersama Trainer, Pasca Sidang Skripsi!

Sebelumnya, izinkan saya mengucapkan Alhamdulillahirabbil'alamin , puji syukur ke hadirat Allah Subhana Wa Ta'ala yang telah memberikan saya kesempatan untuk dapat menyelesaikan studi sarjana pendidikan teknik elektronika Pada tanggal 26 Juli 2016. Saya menghaturkan rasa terima kasih sebesar-besarnya kepada semua pihak yang telah banyak membantu penulis baik secara materi dan moril.

Okeh, setelah melewati masa-masa kritis, rasanya tangan ini sudah sangat rindu untuk menulis hal-hal tentang elektronika kembali. Nah, mumpung penilitian skripsi saya sangat berhubungan sekali dengan elektronika. Kali ini, saya akan berbagi tentang penilitian yang telah saya lakukan kurang lebih satu tahun lamanya." Buset lama banget bro, ente ngapain aja?" ngapain ya? banyak deh kalo diceritain.

Tulisan ini cukup panjang makanya ane split beberapa bagian. Hehe... Bacanya santai aja ya. Oya, karena saya berasal dari program studi pendidikan teknik elektronika, penilitian saya juga berhubungan dengan dunia pendidikan, khususnya pada bidang media pembelajaran. Baik kita mulai dari trainer!

Trainer
Apa yang terlintas dalam pikiran teman-teman pembaca ketika mendengar kata 'Trainer'? Hmmm... pastinya kalian akan berpikir bahwa trainer itu adalah pelatih atau pembimbing kan? Nah, kalo dilihat dari segi terminologi (red:bahasa) trainer memang memiliki arti 'pelatih'. Tapi, trainer yang saya maksud disini adalah sebuah perangkat atau set peralatan laboratorium yang digunakan sebagai media pendidikan atau alat bantu belajar yang merupakan gabungan model kerja dan mock-up (media visual), tujuan penggunaan trainer  untuk menerapkan pengetahuan peserta didik yang diperoleh pada benda nyata (real). Jadi intinya trainer itu alat bantu ajar yang punya bentuk fisik (hardware). Bagi kalian yang pernah sekolah di SMK Jurusan Elektronika, mungkin kalian sering menggunakan trainer dalam proses belajar. Sebagai contoh trainer di bawah ini, uPF-1 . Trainer yang digunakan untuk mempelajari tentang arsitektur, cara kerja, dan penggunaan dari sebuah sistem mikroprosesor.


Trainer uPf-1, digunakan untuk belajar tentang mikroprosesor


Kenapa sih harus pake trainer? Perlu diketahui, keberhasilan proses belajar mengajar salah satu faktornya dipengaruhi dari media pembelajaran atau alat bantu ajar. Hal ini diperkuat berdasarkan hasil penilitian dari Edgar Dale, seorang peniliti  dalam bidang alat bantu ajar. Dia mengatakan bahwa pengalaman belajar seseorang dapat diperoleh dengan melakukan simulasi atau mengerjakan hal yang nyata, yang artinya pada saat proses belajar, peserta didik harus dapat melihat, meraba, berbuat, dan mengamati secara langsung (kongkret), terkait konsep atau pengetahuan yang sedang dipelajarinya. Dengan kata lain penggunaan trainer sebagai alat bantu ajar, siswa bukan hanya diasah kemampuan kognitifnya saja, namun juga psikomotorik.


Kerucut pengalaman belajar Edgar Dale

 Beberapa sekolah atau perguruan tinggi saat ini, banyak menggunakan trainer sebagai media pembelajaran. Sebagai contoh tempat saya kuliah (sebut saja ex-IKIP JAKARTA), beberapa mata kuliah yang sudah saya ikuti seperti sistem mikroprosesor, sensor dan transduser, sistem kendali pneumatik, mekatronika dan sistem kendali PLC semua menggunakan trainer.

Terus, apa aja sih yang keunggulan trainer sehingga banyak guru atau dosen memilihnya sebagai alat bantu ajar? 

1. Gak semua pelajaran dapat direpresentasikan dalam bentuk model matematis.
Inget, Elektronika itu ilmu yang membutuhkan banyak praktek bukan hanya teori. Karena banyak praktek, makanya materi tentang elektronika tidak semua dapat ditafsirkan dengan sebuah model matematis, sebagai contoh materi terkait sistem mikroprosessor, dan sistem mikrokontroller, penulis belum pernah menemukan buku atau artikel yang membahas kedua materi tersebut dalam model matematis, TIDAK PERNAH, sekalipun ada, penulis juga ogah mempelajarinya, karena sulit..

2. Praktek tanpa adanya resiko pada sistem nyata.
Ini yang paling penting, seseorang yang memiliki hasrat tinggi belajar elektronika biasanya suka bongkar barang-barang elektronik di rumahnya dengan alasan ingin praktek. Padahal sudah dibilang sama bapak atau ibunya untuk jangan dibongkar, karena khawatir malah merusak dan alat tersebut sering digunakan. (Pengalaman penulis, hehe...). Namun, dengan adanya trainer memungkinkan untuk melakukan praktek tanpa harus menanggung resiko barang-barang yang sering dipakai tersebut seperti tv, radio,kulkas, dan lain-lain menjadi rusak. 

3. Trainer memungkinkan untuk mempersingkat masa studi menjadi relatif lebih singkat.
Apa jadinya, jika kalian mau belajar tentang prinsip kerja dioda sebagai penyearah arus, kalian harus siapin bahan-bahanya terlebih dahulu untuk praktek. Seperti trafo, kabel AC, multimeter, oskiloskop, breadboard, kabel jumper dan lain-lain.  Dan ini bukan hanya untuk praktek dioda saja, tapi semua praktek yang lain....
Pasti merepotkan, bukan???? Apalagi jika kalian seorang guru elektronika, pasti banyak memakan waktu dari proses persiapan bahan sampai praktikum selesai, praktikum yang harusnya dapat diselesaikan dalam waktu 1x50 menit ternyata lebih. Ditambah, jam mengajar anda yang tidak begitu banyak namun dituntut untuk menuntaskan semua materi dalam waktu yang sempit.... huffftt (ini juga pengalaman penulis)
Nah, dengan adanya trainer, waktu untuk proses persiapan bahan praktek dapat dipangkas, selain itu trainer juga disusun dengan modul praktikum pembelajaran yang telah diuji kelayakannya, sehingga menjadikan proses pembelajaran yang lebih efektif dan efisien.

Jumat, 08 April 2016

Kendali elemen pemanas Resistor dengan Algoritma P, pake Arduino! (Part 1)

    Penulis dapat tantangan dari anak FMIPA (Cielah... anak MIPA melulu), dia minta gue untuk membuat sebuah sistem pemanas dimana besarnya suhu dapat dikontrol. Nah, berangkat dari situ gue pun langsung ngoprek lab pribadi gue dan cari-cari teori tentang sistem pemanas. Ternyata, eh ternyata sistem pada suatu pemanas menggunakan konsep sistem kendali umpan balik tertutup, bahasa gaulnya adalah closed loop feedback system. 
   Sebelum kita ngerancang sistem pemanas, gue kasih tahu dikit tentang dasar sistem kendali  umpan balik tertutup. Jadi gini, coba bayangkan lu berada di suatu ruangan yang suhunya 10C(brrr.... dingin), nah terus lu nyalain pemanas ruangan, dan lu set suhunya jadi 30C . Pertanyaannya, apakah suhu ruangan itu langsung mencapai suhu 30C ? atau suhu ruangannya secara perlahan menuju 30C? Hmmm.... kalo lu belum bisa jawab mending lu nyalain setrika dan pegang bawahnya, langsung panas atau gak? Dari situ lu bakal nemu jawabnya.
   Okay, kita tahu bahwa pemanas ruangan gak langsung seketika membuat suhu ruangan jadi 30C.  Tapi perlahan, ya per-la-han. Nah sekarang coba lu bayangin lagi, ketika suhu ruangan udah mencapi 30C, apa pemanas ruangan makin panas  atau gak? Pastinya gak makin panas kan. Sekarang, gimana caranya pemanas ruangan tersebut tahu bahwa suhu ruangan sudah 30C? Jawabnya adalah dengan sensor panas, atau kayak thermometer.
    Lagi, bayangin sekali lagi, gimana caranya agar pemanas ruangan tersebut tetap membuat suhu ruangan stabil di 30C? Kuncinya adalah, ada yang mengendalikan, yap inilah inti dari suatu sistem kendali umpan balik tertutup ada kendali (controller). Coba lihat gambar berikut.

 

     Gambar diatas merupakan diagram blok sistem pemanas ruangan . Jadi gini Desired Dryness merupakan suhu ruangan yang lu inginkan, ambil contoh di atas, suhunya adalah 30C. Nah, Controller akan mengaktifkan Heating Element, sehingga suhu ruangan akan menjadi panas. Kemudian, Suhu ruangan (Actual Dryness) diukur dengan sensor, dan ternyata bukan 30C. Tapi cuma 12C, selisih Suhu ruangan sebenarnya dengan nilai yang diingkan akan menghasilkan Error. Dengan besar Error:
Error = Actual Dryness-Desired Dryness
Error = 30 - 12 C
Error = 18 C
     Nilai Error kemudian diumpan balikkan ke Controller dan menjadi acuan bagi controller apakah Heating Elements Makin dipanaskan atau dikurangi panasnya. Pada kasus ini, controller akan terus memanaskan Heating Elements, karena terdapat nilai error yang cukup tinggi. Ketika suhu ruangan sebenarnya (Actual  Dryness ) hampir mencapai suhu yang diinginkan (Desired Dryness), nilai Error akan semakin kecil. Alhasil controller akan mengurangi panas yang dihasilkan oleh Heating Elements. Proses ini akan terus menerus berputar. Sehingga suhu ruangan akan tetap stabil di 30C.


Rabu, 30 Maret 2016

Kenapa anak elektro cocok sama anak MIPA?

   
Anak elektro, dikampus manapun pasti akan selalu menjadi primadona... haha ! Primadona, karena anak elektro itu biasanya tampilannya nyentrik tapi tetep jenius, sholeh, dan tidak sombong. Walau begitu, sebenarnya anak elektro itu merupakan mahasiswa yang tingkat kesetresannya cukup tinggi lho, bayangin aja. Mata kuliah fisika, kalkulus, rangkaian listrik dasar, kimia, semuanya ada disini . Wajar saja jika banyak dari anak elektro tidurnya gak teratur, jarang mandi, mukanya kusut, sampe suka nyengar-nyengir sendiri, hehe... jadi curhat gue, belum lagi prakteknya yang selalu berhubungan dengan listrik, taruhannya sudah jelas hidup dan mati coy. Setelah praktikum terbitlah laporan yang harus ditulis tangan, dengan rapih, bersih, tak boleh kusut, dan teliti. Belum lagi dosen killer yang selalu siap dengan pulpen yang tak segan memberi nilai E.   Tapi, anak elektro gak perlu cemas, karena selalu ada anak MIPA yang biasanya selalu jadi belahan hatinya anak elektro atau sohib setia, mau tahu alasannya? nih gue kasih tahu.

1. Anak MIPA cerdas-cerdas
Gak bisa dipungkiri, banyak para ilmuwan dan guru-guru itu berasal dari anak MIPA. Mereka selalu ditekan oleh dosen mereka untuk berpikir ilmiah, kritis, teoritis, dan konseptual. Bahkan banyak dari mereka mulai dari semester satu sudah membuat penilitian, gila gak tuh? Buat lu anak elektro, lu bisa manfaatin peluang ini untuk jadikan anak MIPA sebagai dospem ketiga lu untuk masalah penulisan sama teori ketika lagi nyusun skripsi lu.

2. Kalem
Entah kenapa, kalo gue bandingin anak-anak dikampus gue. Gue selalu berpikir bahwa anak MIPA itu kalem, sopan, santun, ramah, dan tamah. Mungkin lingkungan kampus yang tenang, dan atmosfer pembelajaran yang bersahabat menjadikan mereka manusia dengan tingkat kekaleman tertinggi. Berdasarkan pengalaman gue kenal sama anak MIPA, hanya 1 dari 50 orang yang ngerokok sama bersikap layaknya brandalan.Itupun

3. Banyak duit
 Jangan heran kalo lu lihat anak MIPA sok sibuk, dan sok rajin. Karena sebenarnya itu adalah tuntutan dan budaya mereka. Karena bagi mereka waktu adalah uang, banyak anak MIPA meskipun baru semester dua sudah ngajar private, ngajar bimbel, ngajar KIR, dan ngajar yang lainnya. Makanya mereka selalu mengerjakan tugas apapun dengan tepat waktu, karena jadwal ngajar yang padat. Gue pribadi menganggap ini sebagai peluang, karena  semisal lu jadian sama anak MIPA, lu gak perlu ngeluarin duit. Karena mereka sebenarnya punya penghasilan lebih ketimbang lu anak elektro.... haha...

4.Didominasi oleh perempuan
Yoi, jika anak elektro didominasi oleh para batangan yang bujangan. Sebaliknya, anak MIPA itu didominasi anak perempuan yang ukhti-ukhti gitu. Menurut teori hierarki kebutuhan maslow, manusia itu butuh kasih sayang, nah anak elektro itu juga manusia sudah jelas butuh kasih sayang makanya tidak sedikit dari mereka mencari pasangannya dari MIPA karena stoknya banyak, haha... tapi bukan berarti anak MIPA bakalan nerima lu dengan gampang, karena gue sendiri aja gak pernah dapet anak MIPA. haha.... tapi gue masih usaha lho....

Nah segitu aja dulu yak....

Jumat, 18 Maret 2016

Belajar elektronika? Ngapain aja tuh?

Basic Elements of Electronics
(Materi dasar elektronika)
 

     Udah lama nih ane gak posting, sedikit cerita aja ya. Penulis sekarang sedang menyusun skripsi (red: Skripsi Sweet ), buat lu yang kuliah pasti tahu gimana rasanya nyusun skripsi, mulai dari bimbingan yang gak menentu, nyusun bab 3 yang gak kelar-kelar, permintaan dosen bimbingan yang diluar kemampuan kita, hingga masalah asmara yang tak kunjung padam sampai sekarang... T_T Ah pokoknya susah dah, ya namanya juga final test pasti kompleks dan muyengin. Intinya bawa enjoy aja, dosen bilang gini ya lu ikutin aja, cari aman dan main cantik! Sip, gitu aja ya.

     Nah, sekarang ane bakalan ngasih tahu tentang apa-apa aja yang bakalan lu pelajari di elektronika. Bagi lu yang baru belajar elektronika perhatiin baik-baik ya, tapi bagi lu yang udah terjun di elektronika dijamin ilmu ente jadi tambah berkembang, atau mungkin ingin mengulang pelajarannya biar makin jago dan mahir.

    Okay, pertama-tama kita cari tahu arti dari elektronika. 
Menurut Om Wikipedia, elektronika merupakan ilmu yang mempelajari alat listrik arus lemah yang dioperasikan dengan cara mengontrol aliran elektron atau partikel bermuatan listrik dalam suatu alat seperti komputer, peralatan elektronik, termokopel, semikonduktor, dan lain sebagainya. Ilmu yang mempelajari alat-alat seperti ini merupakan cabang dari ilmu fisika, sementara bentuk desain dan pembuatan sirkuit elektroniknya adalah bagian dari teknik elektro, teknik komputer, dan ilmu/teknik elektronika dan instrumentasi.

    Ambil kesimpulannya ya, elektronika itu ilmu yang mempelajari alat-alat listrik ber-arus lemah, nah arus lemah ini biasanya orang-orang sebut DC atau Direct Current namun dengan besar arus listrik yang tidak terlalu besar. Contoh alatnya handphone, laptop, mobil tamiya, mobil crush gear, dll. (hehehe....) 

    Dah ngerti kan? Nah sekarang kita masuk tentang apa-apa aja yang bakal lu pelajarin di elektronika. 
Pertama, elektronika itu merupakan turunan ilmu fisika, makanya jangan heran kalo lu bakal ketemu sama hukum-hukum yang pernah lu pelajarin di fisika bakalan ada lagi pas lu belajar elektronika. Kayak hukum ohm, hukum kirchoff 1 &2, hukum gauss, hukum daya, dll. Nah hukum-hukum ini merupakan teori yang wajib lu pelajarin, karena dengan hukum-hukum inilah lu bisa membuktikan tentang gejala-gejala yang terjadi pada rangkaian elektronika. Bukan cuma hukum-hukum doang, tapi juga ada teori-teori yang lain, seperti mempelajar istilah-istilah dalam dunia elektronika, dsb. Jadi ditahap pertama ini lu akan belajar TEORI.

    Kedua, setelah ngerti teori diharapkan lu tahu tentang komponen-komponen elektronika. Komponen elektronika sangat buanyak ya, jadi belajarnya dikit-dikit aja dulu. Kalo lu mau lihat komponen elektronika, lu bongkar hape lu, dan disitu lu bakal nemuin komponen elektronika, mulai dari resistor, kapasitor, IC, batterai. Nah komponen elektronika dibagi menjadi dua berdasarkan cara kerjanya, ada yang pasif dan aktif. Haha... pokoknya banyak lah.

    Ketiga, belajar alat ukur. Untuk mengetahui nilai dari suatu komponen, udah jelas dong lu butuh alat ukur. Kalo semisal lu pengen ukur tinggi badan lu, lu butuh meteran kan. Nah sama halnya dengan komponen elektronika, lu butuh sebuah alat ukur untuk mengetahui besarnya ukuran resistansi dari suatu resistor, atau besar kapasitansi dari kapasitor. Buat lu yang baru belajar elektronika, alat ukur yang dipake biasanya cuma multimeter dan osiloskop. Multimeter lu pake buat ukur arus listrik, tegangan, sama tahanan. Osikiloskop untuk lihat sinyal listrik, sehingga lu bakal dapet nilai amplitudo dan periodanya.

(Bersambung)

Selasa, 01 Maret 2016

[Belajar Arduino] Multitasking di Arduino dengan menggunakan fungsi millis()

    
Pernahkah kalian berpikir, mengapa komputer dapat melakukan pekerjaan dalam waktu yang sama. Contohnya, ketika kalian membuka M*icrosoft Word untuk mengetik suatu berkas, kalian juga dapat memutar lagu, dan itu semua dilakukan pada waktu yang sama.
    Padahal, seharusnya komputer bekerja secara sistematis dan runtut, artinya jika suatu proses belum tereksekusi maka proses selanjutnya tidak dapat tereksekusi. Ayo, diinget lagi pelajaran algoritma dan pemrogramannya.
    Sebenarnya, multitasking bukan berarti komputer mengeksekusi beberapa proses pada waktu yang bersamaan akan  tetapi mengeksekusinya dengan periode yang super singkat, mikro sekon sampai dengan milli sekon. Wow, great! Gue kasih contoh ya, semisal ada dua program yang dijalankan bersamaan, hmmm.... semisal Winamp untuk memutar lagu sama Mozilla firefox untuk internetan. Saat ini komputer sedang multitasking, nah, sebenarnya komputer mengeksekusi proses yang ada di winamp dan proses yang ada di mozilla secara bergantian. Dan itu semua di-JADWALKAN, maksudnya pas di 1 millisekon proses yang ada di mozilla dieksekusi, kemudian pas di 2 millisekon proses winamp baru dieksekusi, dan begitu seterusnya. Nah, karena otak manusia gak mampu berpikir cepat, makanya kita berpikir bahwa seolah-olah dua program tersebut bekerja bersamaan. Bayangkan satu milli sekon, itu sama dengan 1/1000 sekon.

Nah, pada topik kali ini kita akan belajar untuk membuat Arduino layaknya sebuah komputer yang akan bekerja secara multitasking. Program yang gue buat adalah running led, jika sebelumnya gue udah buat program running LED pada Membuat running LED menggunakan Arduino [Simulation & Syntax] menggunakan delay. Sekarang gue kembangin lagi menjadi tanpa delay! dan gue gunain millis, lho kenapa pake millis, emang kenapa dengan delay?
Okay, jadi gini. Delay itu adalah sebuah sub-routine yang tugasnya membuat sibuk prosesor dalam jangka waktu yang telah ditentukan, jadi ketika lu pake fungsi delay(2000) arduino akan sibuk selama dua detik. Ketika hal ini terjadi, arduino gak bisa ngapa-ngapain, seperti menerima input, mengolah angka, dsb. Sub-routine yang lain gak bakal jalan, ketika delay berlangsung.

Kalau lu udah lihat rangkaian running LED yang udah gue buat, disitu terlihat lima LED yang berjejer dengan dua push button yang digunakan untuk mengatur putaran LED. Kalo semisal, gue pake fungsi delay(), ketika gue pencet push button dan si delay() sedang beraksi, arduino gak bakal ngerespon  apapun. Jadinya, gue harus pencet terus sampe tiba saatnya fungsi delay() tersebut berakhir.

Oleh karenanya gue harus pake fungsi millis(), sehingga arduino dapat membuat LED terus  berjalan (running) dan dapat menerima input dari push button, tanpa harus  mencet berkali-kali.


/* Program Running LED
Percobaan 3 Mikrokontroler
*/
                                        // Pengaturan output menggunakan Array
int ledpins[]={2,3,4,5,6};  // Port Output yang digunakan hanya lima dari port 2 ke 5
int i=0;
int val=0;                          // Variabel untuk menyimpan data
int state=0;
int val1=0;
//int val2=0;
int state1=0;
int old_val=0;
int old_val1=0;
int old_val2=0;
unsigned long waktusekarang=0;
unsigned long waktuatur=0;
int ledstate=LOW;
int tunda=10;
void setup()
{                                       // inisialisasi output
  for(int i=0; i<5; i++)        // jika i kurang dari lima maka nilai i ditambah 1
  pinMode(ledpins[i], OUTPUT);
  pinMode(9, INPUT);            // Tombol Kiri ke kanan
  pinMode(8, INPUT);
  pinMode(10,INPUT);            // Tombol Kanan ke kiri
  Serial.begin(9600);
}

void loop()
{
  val=digitalRead(9);      // Membaca tombol dan memasukkannya ke variabel agar interloc
  val1=digitalRead(10);
  val2=digitalRead(8);
 
  if((val==HIGH) &amp;&amp; (old_val==LOW)){      // Jika tombol kiri ke kanan ditekan maka
    waktusekarang=millis();
    state1=0;
    state=1-state;
      // state akan bernilai satu, dan jika state bernilai satu dan tombol ditekan maka state bernilai 0
  delay(10);                              // delay digunakan untuk mencegah bouncing
  }
  old_val=val;                            // old val digunakan untuk mencegah bouncing juga
 
  if((val1==HIGH) &amp;&amp; (old_val1==LOW)){
    waktusekarang=millis();
    state=0;
    state1=1-state1;
  delay(10);
  }
  old_val1=val1;

if((val2==HIGH)&amp;&amp; (old_val2==LOW))
  {waktuatur=millis();
  delay(5);
  }
old_val2=val2;
if ((val2==HIGH)&amp;&amp;(old_val2==HIGH)){
 
if ((val2==HIGH)&amp;&amp;(millis()-waktuatur)&gt;20)
{tunda++;
delayMicroseconds (100);
if (tunda&gt;500){
  tunda=50;
}
}
Serial.println(tunda);
}


if (state==1)
  //(digitalRead(9)==HIGH)
{
 digitalWrite(ledpins[i], HIGH);
 //Serial.println(state);
if ((state==1)&amp;&amp; (millis()-waktusekarang)&gt;=tunda){
  waktusekarang=millis();
  //Serial.println(waktusekarang);
  digitalWrite(ledpins[i],LOW);
  i++;
  while (i==5){i=0;}
  }
}

else if (state1==1){
  //(digitalRead(9)==HIGH)

 digitalWrite(ledpins[i], HIGH);
 //Serial.println(state1);
if ((state1==1)&amp;&amp; (millis()-waktusekarang)&gt;=tunda){
  waktusekarang=millis();
  //Serial.println(waktusekarang);
  digitalWrite(ledpins[i],LOW);
  while(i==0){i=5;}
  i--;
  }
}

 else
{digitalWrite(ledpins[i], LOW);}
}