LAPORAN PRAKTIKUM PEMROGRAMAN ELEKTROMEKANIK
DISUSUN OLEH : NAMA
:
DESTA ZUL FAUZI
NIM
:
031600466
PRODI
:
ELEKTROMEKANIKA
JURUSAN
:
TEKNO FISIKA NUKLIR
SEKOLAH TINGGI TEKNOLOGI NUKLIR BADAN TENAGA NUKLIR NASIONAL YOGYAKARTA 2018
BAB I PENDAHULUAN
I.
Judul Percobaan 1. Percobaan 1 - Pengiriman Pengiriman data data dengan tampilan LED. LED. 2. Percobaan 2 - Menggunakan FOOR LOOP. LOOP. 3. Percobaan 3 - Menggunakan ARRAY.
II.
Tujuan 1. Percobaan 1 - Mahasiswa memahami rangkaian mikrokontroller untuk mengendalikan LED. - Mahasiswa dapat memahami pemrograman mikrokontroller untuk menghidupkan dan mematikan LED serta menghidupkan LED dari kiri ke kanan dan dari kanan kekiri (LED Berjalan) - Mahasiswa dapat memahami penggunaan delay waktu untuk mengatur waktu penyalaan LED 2. Percobaan 2 - Mahasiswa memahami rangkaian mikrokontroller untuk mengendalikan LED. - Mahasiswa dapat memahami penggunaan FOR LOOP di pemrograman Arduino 3. Percobaan 3 - Mahasiswa memahami rangkaian mikrokontroller untuk mengendalikan LED. - Mahasiswa dapat memahami penggunaan array di pemrograman Arduino
III.
Latar Belakang Pada jaman yang semakin maju dan modern ini, teknologi t eknologi juga berkembang begitu pesat guna memenuhi kebutuhan hidup manusia. Dengan adanya perkembangan teknologi tentu saja ilmu Komputer juga berkembang. Dalam hal ini ilmu computer sangat berpengaruh terhadap kehidupan manusia. Hal ini mendorong manusia untuk membuat hardware dan software yang mendukung perkembangan teknologi teknologi dan ilmu computer dunia untuk memudahkan user dalam berkomunikasi dengan komputer. Arduino merupakan pengendali pengendali mikro single-board yang bersifat bersifat
open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri. Arduino sendiri merupakan pengendali pengendali mikro single-board yang yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri. Ar duino dikatakan sebagai sebuah platform dari physical computing yang bersifat open source. Pertama-tama perlu dipahami bahwa kata “platform” di sini adalah sebuah pilihan kata yang tepat. Arduino tidak hanya sekedar sebuah alat pengembangan, tetapi ia adalah kombinasi dari hardware, bahasa pemrograman dan Integrated Development Environment (IDE) yang canggih. IDE adalah sebuah software yang sangat berperan untuk menulis program, mengcompile menjadi kode biner dan meng-upload ke dalam memory microcontroller. Ada banyak projek dan alat-alat di kembangkan oleh akademisi dan profesional dengan menggunakan Arduino, selain itu juga ada banyak modul-modul pendukung (sensor, tampilan, penggerak dan sebagainya) yang dibuat oleh pihak lain untuk bisa disambungkan dengan Arduino. Arduino berevolusi menjadi sebuah platform karena ia menjadi pilihan dan acuan bagi banyak praktisi.
BAB II METODE PRAKTIKUM
I.
Alat dan Bahan 1. Modul arduino 2. PC atau laptop yang telah dilengkapi program arduino 3. Kabel Konektor 4. LED + Resistor 100ohm
II.
Dasar Teori Proyek arduino berawal dilvre, italia pada tahun 2005. Sekarang telah lebih dari 120.000 unit terjual sampai dengan 2010. Pendirinya adalah Massimo Banzidan David Cuartiellez. Arduino merupakan pengendali mikro single-board yang bersifat open-source, yang di turunkan dari wiring platfor m, yang di rancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwernya memiliki prosesor atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri Secara software arduino adalah Open source IDE yang digunakan untuk mendevelop aplikasi mikrokontroller yang berbasis arduino platform.Sedangkan secara hardware arduino adalah ingle board mikrokontroller yang bersifat open source hardware yang dikembangkan untuk arsitektur mikrokontroller AVR 8 bit dan ARM 32 bit.Maka dapat disimpulkan arduino adalah kit elektronik atau papan rangkaian elektronik open source yang didalamnya terdapat komponen utamaya itu sebuah chip mikrokontroller dengan jenis AVR. Mikrokontroller itu sendiri adalah chip atau IC (integrated Circuit) yang bisa diprogram menggunakan komputer. Tujuan menanamkan program pada mikrokontroller adalah agar rangkaian elektronik dapat membaca input, memproses input tersebut dan kemudian menghasilkan output seperti yang diinginkan. Jadi mikrokontroller bertugas sebagai otak yang mengendalikan input, proses ,dan output sebuah rangkaian elektonik. Hardware Arduino sendiri diprogram menggunakan bahasa pemrograman C/C++, yang sudah disederhanakan dan dimodifikasi Arduino mengikuti pola pemrogramsn Wiring (syntax dan library). Sementara untuk editor pemrograman nya (IDE – Intergrated Development Enviroment ) dikembangkan dari Processing.Software Arduino dapat dijalankan pada sistem .
,
operasi Windows, Macintosh OSX, dan Linux. Banyak sistem mikrokontroler lain hanya bisa dijalankan di Windows. 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. LED terdiri dari sebuah chip semikonduktor yang di doping sehingga menciptakan junction P dan N. Yang dimaksud dengan proses doping dalam semikonduktor adalah proses untuk menambahkan ketidakmurnian (impurity) pada semikonduktor yang murni sehingga menghasilkan karakteristik kelistrikan yang diinginkan. Ketika LED dialiri tegangan maju atau bias forward yaitu dari Anoda (P) menuju ke Katoda (K), Kelebihan Elektron pada N-Type material akan berpindah ke wilayah yang kelebihan Hole (lubang) yaitu wilayah yang bermuatan positif (P-Type material). Saat Elektron berjumpa dengan Hole akan melepaskan photon dan memancarkan cahaya monokromatik (satu warna). Resistor merupakan komponen elektronik dua kutub yang didesain untuk menahan arus listrik dengan memproduksi tegangan listrik di antara kedua kutubnya, nilai tegangan terhadap resistansi berbanding dengan arus yang mengalir. Resistor digunakan sebagai bagian dari jejaring elektronik dan sirkuit elektronik, dan merupakan salah satu komponen yang paling sering digunakan. Resistor dapat dibuat dari bermacammacam kompon dan film, bahkan kawat resistansi (kawat yang dibuat dari paduan resistivitas tinggi sepertinikelkromium).Karakteristik utama dari resistor adalah resistansinya dan daya listrik yang dapat dihantarkan. Karakteristik lain termasuk koefisien suhu, desahlistrik, dan induktansi.Resistor dapat diintegrasikan kedalam sirkuit hibrida dan papan sirkuit cetak,bahkan sirkuit terpadu. Ukuran dan letak kaki bergantung pada desain sirkuit, kebutuhan daya resistor harus cukup dan disesuaikan dengan kebutuhan arus rangkaian agar tidak terbakar .
III.
Langkah Percobaan 1. Percobaan 1 - Pada modul arduino Uno, hubungkan pin 13, pin 12, pin 11, pin 10 ke LED seperti gambar percobaan 1 - Hubungkan modul arduino uno ke CPU / laptop dengan kabel USB - Buka Program Arduino 1.8.5 - Ketik atau masukkan listing program percobaan 1 : A dan B - Kemudian pilh tanda untuk mengkompilasi program tersebut, jika hasil kompilasi terjadi error maka periksa letak kesalahan pada listing arduino.
-
Lakukan pengamatan pada LED
2. Percobaan 2 - Hubungkan kaki-kaki + LED ke pin digital 2,3,4,5,6,dan 7 Arduino. - Hubungkan kaki-kaki - LED ke tiap resistor 220 Ohm. - Hubungkan tiap Resistor ke pin Gnd Arduino menggunakan kabel jumper (warna hitam). - Pasangkan board Arduino dengan port USB komputer menggunakan kabel USB. - Bukalah IDE Arduino kemudian ketikkan sketch berikut. - compile menggunakan tombol "verify" . - Upload ke Board Arduino menggunakan tombol "Upload" atau melalui File > Upload
3. Percobaan 3 - Hubungkan kaki-kaki + LED ke pin digital 2,3,4,5,6,dan 7 Arduino. - Hubungkan kaki-kaki - LED ke tiap resistor 220 Ohm. -
Hubungkan tiap Resistor ke pin Gnd Arduino menggunakan kabel jumper.
-
Pasangkan board Arduino dengan port USB komputer menggunakan kabel USB.
-
Bukalah IDE Arduino kemudian ketikkan sketch berikut.
-
compile menggunakan tombol "verify" .
-
Upload ke Board Arduino menggunakan tombol "Upload" atau melalui File > Upload
IV.
Diagram Alir
V.
Listing Program 1. Percobaan 1 a. Menyalakan LED int LED1=2; //LED1 menggunakan pin 2 int LED2=4; //LED2 menggunakan pin 4 int LED3=6; //LED2 menggunakan pin 6 int LED4=8; //LED2 menggunakan pin 8 void setup() { pinMode(LED1, OUTPUT); //pin LED1 sebagai output pinMode(LED2, OUTPUT); //pin LED2 sebagai output pinMode(LED3, OUTPUT); //pin LED3 sebagai output pinMode(LED4, OUTPUT); //pin LED4 sebagai output } void loop() { digitalWrite(LED1, HIGH); //LED 1 menyala digitalWrite(LED2, HIGH); //LED 2 menyala digitalWrite(LED3, HIGH); //LED 3 menyala digitalWrite(LED4, HIGH); //LED 4 menyala }
b. Memadamkan LED int LED1=2; //LED1 menggunakan pin 2 int LED2=4; //LED2 menggunakan pin 4 int LED3=6; //LED2 menggunakan pin 6 int LED4=8; //LED2 menggunakan pin 8 void setup() { pinMode(LED1, OUTPUT); //pin LED1 sebagai output pinMode(LED2, OUTPUT); //pin LED2 sebagai output pinMode(LED3, OUTPUT); //pin LED3 sebagai output pinMode(LED4, OUTPUT); //pin LED4 sebagai output } void loop() { digitalWrite(LED1, HIGH); //LED 1 menyala digitalWrite(LED2, LOW); //LED 2 mati digitalWrite(LED3, HIGH); //LED 3 menyala digitalWrite(LED4, LOW); //LED 4 mati }
c. LED berjalan int LED1 = 4; //LED1 menggunakan pin 4 int LED2 = 5; //LED2 menggunakan pin 5 int LED3 = 9; //LED3 menggunakan pin 9 int LED4 = 10; //LED4 menggunakan pin 10
void setup() { pinMode(LED1, OUTPUT); //pin LED1 sebagai output pinMode(LED2, OUTPUT); //pin LED2 sebagai output pinMode(LED3, OUTPUT); //pin LED3 sebagai output pinMode(LED4, OUTPUT); //pin LED4 sebagai output } void loop() { digitalWrite(LED1, HIGH); //LED1 menyala delay(1000); //LED 1 menyala selama 1 detik digitalWrite(LED1, LOW); //LED1 mati digitalWrite(LED2, HIGH); //LED2 menyala delay(2000); //LED 2 menyala selama 2 detik digitalWrite(LED2, LOW); //LED2 mati digitalWrite(LED3, HIGH); //LED3 menyala delay(1000); //LED 3 menyala selama 1 detik digitalWrite(LED3, LOW); //LED3 mati digitalWrite(LED4, HIGH); //LED4 menyala delay(2000); //LED 4 menyala selama 2 detik digitalWrite(LED4, LOW); //LED4 mati }
2. Percobaan 2 int timer = 2000; //waktu jeda tiap LED 2 detik void setup() {
for (int thisPin = 5; thisPin < 11; thisPin++) //pin yang digunakan untuk LED mulai dari 5 sampai kurang dari 11 { pinMode(thisPin, OUTPUT); //pin yang digunakan untuk output } } void loop() { for (int thisPin = 5; thisPin < 11; thisPin++) //pin yang digunakan untuk menyalakan LED dalam keadaan maju mulai dari 5 sampai kurang dari 11 (batas LED yang menyala sampai pin 10) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } for (int thisPin = 10; thisPin >= 5; thisPin--) //pin yang digunakan menyalakan LED dalam keadaan mundur mulai dari pin 10 sampai pin 5 (batas LED yang menyala sampai pin 5) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } }
3. Percobaan 3 int timer = 500; //waktu jeda antar LED 0,5 detik int ledPins[ ] = { 7, 8, 6, 5, 3, 4}; int jumlahPin = 6; //urutan pin yang disambungkan ke LED untuk dinyalakan serta jumlah pin untuk menyalakan LED void setup() { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan { pinMode(ledPins[thisPin], OUTPUT); //pin LED yang digunakan sebagai output } } void loop () { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan {
digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED sesuai urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED } for (int thisPin = jumlahPin-1; thisPin >= 0; thisPin--) //urutan berkebalikan jumlah pin yang digunakan namun dikurangi LED terakhir { digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED berkebalikan urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED } }
VI.
Analisis Data 1. Percobaan 1 a. Menyalakan dan memadamkan LED
LED
DATA 1
DATA 2
DATA 3
DATA 4
OUTPUT 1
OUTPUT 2
OUTPUT 3
OUTPUT 4
LED 1
0
1
0
1
OFF
ON
OFF
ON
LED 2
0
0
1
1
OFF
OFF
ON
ON
LED 3
0
0
1
1
OFF
OFF
ON
ON
LED 4
0
1
0
1
OFF
ON
OFF
ON
Prinsip kerja menyalakan dan memadamkan LED sendiri jika masukan bernilai 0 (LOW) maka output LED yang dihasilkan dalam keadaan mati.Sebaliknya jika masukan bernilai 1 (HIGH) maka output LED yang dihasilkan dalam keadaan nyala. b. LED berjalan LED
OUTPUT1
OUTPUT2
OUTPUT3
OUTPUT4
LED1
ON
OFF
OFF
OFF
LED2
OFF
ON
OFF
OFF
LED3
OFF
OFF
ON
OFF
LED4
OFF
OFF
OFF
ON
Prinsip kerja LED berjalan ini sama dengan menyalakan dan memadamkan LED.Jika masukan bernilai 0 (LOW) maka output LED yang dihasilkan dalam keadaan mati.Sebaliknya jika masukan bernilai 1 (HIGH) maka output LED yang dihasilkan dalam keadaan nyala.Namun disini diberikan perintah berupa jeda waktu yang sesuai yang diinginkan.Saat LED 1 menyala maka LED 2,3 dan 4 mati. Saat LED 2 menyala maka LED 1,3 dan 4 mati. Saat LED 3 menyala maka LED 1,2 dan 4 mati.Terkahir Saat LED 4 menyala maka LED 1,2 dan 3 mati.Setelah itu akan kembali ke saat S LED 1 menyala maka LED 2,3 dan 4 mati dan seterusnya. c. Flowcart Menghidupkan dan memadamkan LED o
o
LED Berjalan
d. Analisis : Untuk menyalakan dan memadamkan LED sendiri jika masukan bernilai 0 (LOW) maka output LED yang dihasilkan dalam keadaan mati.Sebaliknya jika masukan bernilai 1 (HIGH) maka output LED yang dihasilkan dalam keadaan nyala. LED berjalan ini sama dengan menyalakan dan memadamkan LED.Jika masukan bernilai 0 (LOW) maka output LED yang dihasilkan dalam keadaan mati.Sebaliknya jika masukan bernilai 1 (HIGH) maka output LED yang dihasilkan dalam keadaan nyala.Namun disini diberikan perintah berupa jeda waktu yang sesuai yang diinginkan.Saat LED 1 menyala maka LED 2,3 dan 4 mati. Saat LED 2 menyala maka LED 1,3 dan 4 mati. Saat LED 3 menyala maka LED 1,2 dan 4 mati.Terkahir Saat LED 4 menyala maka LED 1,2 dan 3 mati.Setelah itu akan kembali ke saat S LED 1 menyala maka LED 2,3 dan 4 mati dan seterusnya.
2. Percobaan 2 a. Ganti nilai dari int timer. Buatlah agar lama nyala LED sedikit lebih lama.(3 detik sekali) int timer = 3000; //waktu jeda tiap LED 3 detik void setup() { for (int thisPin = 5; thisPin < 11; thisPin++) //pin yang digunakan untuk LED mulai dari 5 sampai kurang dari 11 { pinMode(thisPin, OUTPUT); //pin yang digunakan untuk output } } void loop() { for (int thisPin = 5; thisPin < 11; thisPin++) //pin yang digunakan untuk menyalakan LED dalam keadaan maju mulai dari 5 sampai kurang dari 11 (batas LED yang menyala sampai pin 10) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } for (int thisPin = 10; thisPin >= 5; thisPin--) //pin yang digunakan menyalakan LED dalam keadaan mundur mulai
dari pin 10 sampai pin 5 (batas LED yang menyala sampai pin 5) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } }
b. Tambah lagi 4 LED tambahan pada pin 9, 10, 11 dan 12. Ubah sketch agar LED tersebut ikut dalam barisan LED sebelumnya. Gunakan metode for loop . int timer = 3000; //waktu jeda tiap LED 3 detik void setup() { for (int thisPin = 3; thisPin < 13; thisPin++) //pin yang digunakan untuk LED mulai dari 3 sampai kurang dari 13 { pinMode(thisPin, OUTPUT); //pin yang digunakan untuk output } } void loop() { for (int thisPin = 3; thisPin < 13; thisPin++) //pin yang digunakan untuk menyalakan LED dalam keadaan maju
mulai dari 3 sampai kurang dari 13 (batas LED yang menyala sampai pin 12) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } for (int thisPin = 12; thisPin >= 3; thisPin--) //pin yang digunakan menyalakan LED dalam keadaan mundur mulai dari pin 12 sampai pin 3 (batas LED yang menyala sampai pin 3) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } }
c. Analisis : Untuk percobaan 2 ini LED menyala dalam keadaan maju dan mundur.LED menyala dalam keadaan maju (kekanan) dengan lama waktu yang sesuai kebutuhan.Setelah maju (kekanan) sampai penggunaan pin LED habis,maka LED akan menyala dalam keadaan mundur/kembali (kekiri). 3. Percobaan 3 a. Ganti nilai data yang ada pada Array ledPins.(Pastikan nilainya sama hanya ubah posisi urutannya) int timer = 500; //waktu jeda antar LED 0,5 detik
int ledPins[ ] = { 8, 7, 6, 5, 4, 3}; int jumlahPin = 6; //urutan pin yang disambungkan ke LED untuk dinyalakan serta jumlah pin untuk menyalakan LED void setup() { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan { pinMode(ledPins[thisPin], digunakan sebagai output
OUTPUT);
//pin
LED
yang
} } void loop () { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan { digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED sesuai urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED } for (int thisPin = jumlahPin-1; thisPin >= 0; thisPin--) //urutan berkebalikan jumlah pin yang digunakan namun dikurangi LED terakhir { digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED berkebalikan urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED } }
b. Tambah lagi 2 LED tambahan. Ubah sketch agar LED tersebut ikut dalam barisan LED sebelumnya int timer = 1000; //waktu jeda antar LED 1 detik int ledPins[ ] = { 9, 8, 7, 6, 5, 4, 3, 2}; int jumlahPin = 8; //urutan pin yang disambungkan ke LED untuk dinyalakan serta jumlah pin untuk menyalakan LED void setup() { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan { pinMode(ledPins[thisPin], OUTPUT); //pin LED yang digunakan sebagai output } } void loop () { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan { digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED sesuai urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED
} for (int thisPin = jumlahPin-1; thisPin >= 0; thisPin--) //urutan berkebalikan jumlah pin yang digunakan namun dikurangi LED terakhir { digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED berkebalikan urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED } }
c. Analisis : Untuk percobaan 3 LED menyala sesuai urutan pin yang dipakai.LED menyala selama waktu yang telah ditentukan.Jika pin LED telah menyala semua,maka urutan menyala LED akan dimulai dari awal.
BAB IV PEMBAHASAN 1. Percobaan 1 Pada percobaan 1 ini kami melakukan 2 percobaan yaitu menyalakan dan memadamkan LED serta LED berjalan.Pada percobaan 1 berprinsip kerja HIGH dan LOW.nilai HIGH sendiri adalah 1 sedangkan LOW adalah 0.Pada percobaan menyalakan dan memadamkan LED ini menggunakan 4 LED dengan masukan pin 2,4,6, dan 8.Untuk menyalakan LED maka diperlukan masukan pada program yaitu HIGH.Sedangkan untuk memadamkan LED maka menggunakan masukan pada program yaitu LOW.Program yang dipakai sendiri untuk menyalakan LED adalah int LED1=2; //LED1 menggunakan pin 2 int LED2=4; //LED2 menggunakan pin 4 int LED3=6; //LED2 menggunakan pin 6 int LED4=8; //LED2 menggunakan pin 8 void setup() { pinMode(LED1, OUTPUT); //pin LED1 sebagai output pinMode(LED2, OUTPUT); //pin LED2 sebagai output pinMode(LED3, OUTPUT); //pin LED3 sebagai output pinMode(LED4, OUTPUT); //pin LED4 sebagai output } void loop() { digitalWrite(LED1, HIGH); //LED 1 menyala digitalWrite(LED2, HIGH); //LED 2 menyala digitalWrite(LED3, HIGH); //LED 3 menyala digitalWrite(LED4, HIGH); //LED 4 menyala }
Sedangkan program yang digunakan untuk memadamkan LED adalah int LED1=2; //LED1 menggunakan pin 2 int LED2=4; //LED2 menggunakan pin 4 int LED3=6; //LED2 menggunakan pin 6 int LED4=8; //LED2 menggunakan pin 8 void setup() {
pinMode(LED1, OUTPUT); //pin LED1 sebagai output pinMode(LED2, OUTPUT); //pin LED2 sebagai output pinMode(LED3, OUTPUT); //pin LED3 sebagai output pinMode(LED4, OUTPUT); //pin LED4 sebagai output } void loop() { digitalWrite(LED1, HIGH); //LED 1 menyala digitalWrite(LED2, LOW); //LED 2 mati digitalWrite(LED3, HIGH); //LED 3 menyala digitalWrite(LED4, LOW); //LED 4 mati } Untuk LED berjalan prinsipnya sama seperti menyalakan dan memadamkan LED namun disini diberi masukan waktu menyala.Waktu menyala ini diisi bervariasi.Untuk LED 1 dan LED 3 menyala selama 1 detik.Untuk LED 2 dan LED 4 menyala selama 2 detik.Pin yang digunakan untuk Led sendiri adalah pin 4,5,9 dan 10.Untuk prinsip kerjanya sendiri yaitu saat LED 1 menyala maka LED 2,3 dan 4 mati. Saat LED 2 menyala maka LED 1,3 dan 4 mati. Saat LED 3 menyala maka LED 1,2 dan 4 mati.Terkahir Saat LED 4 menyala maka LED 1,2 dan 3 mati.Setelah itu akan kembali ke saat S LED 1 menyala maka LED 2,3 dan 4 mati dan seterusnya.Program yang digunaka untuk LED berjalan ini adalah int LED1 = 4; //LED1 menggunakan pin 4 int LED2 = 5; //LED2 menggunakan pin 5 int LED3 = 9; //LED3 menggunakan pin 9 int LED4 = 10; //LED4 menggunakan pin 10 void setup() { pinMode(LED1, OUTPUT); //pin LED1 sebagai output pinMode(LED2, OUTPUT); //pin LED2 sebagai output pinMode(LED3, OUTPUT); //pin LED3 sebagai output pinMode(LED4, OUTPUT); //pin LED4 sebagai output } void loop() { digitalWrite(LED1, HIGH); //LED1 menyala delay(1000); //LED 1 menyala selama 1 detik digitalWrite(LED1, LOW); //LED1 mati digitalWrite(LED2, HIGH); //LED2 menyala
delay(2000); //LED 2 menyala selama 2 detik digitalWrite(LED2, LOW); //LED2 mati digitalWrite(LED3, HIGH); //LED3 menyala delay(1000); //LED 3 menyala selama 1 detik digitalWrite(LED3, LOW); //LED3 mati digitalWrite(LED4, HIGH); //LED4 menyala delay(2000); //LED 4 menyala selama 2 detik digitalWrite(LED4, LOW); //LED4 mati }
2. Percobaan 2 Pada percobaan 2 ini yaitu percobaan menggunakan FOOR LOOP.Percobaan ini menggunakan 5 buah LED dengan masukan pin 5,6,7,8,9, dan 10.Percobaan ini menyalakan LED sesuai urutan PIN secara bergantian dengan rentang waktu yang ditentukan.Dalam percobaan ini ,praktikan menggunakan rentang waktu 2 detik.LED ini akan maju (ke kanan) sesuai urutan pin.LED menyala dengan waktu 2 detik.Setelah maju kekanan sampai penggunaan pin LED habis,maka
LED akan menyala dalam keadaan mundur/kembali (kekiri).Program yang digunakan untuk percobaan ini yaitu int timer = 2000; //waktu jeda tiap LED 2 detik void setup() { for (int thisPin = 5; thisPin < 11; thisPin++) //pin yang digunakan untuk LED mulai dari 5 sampai kurang dari 11 { pinMode(thisPin, OUTPUT); //pin yang digunakan untuk output } } void loop() { for (int thisPin = 5; thisPin < 11; thisPin++) //pin yang digunakan untuk menyalakan LED dalam keadaan maju mulai dari 5 sampai kurang dari 11 (batas LED yang menyala sampai pin 10) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } for (int thisPin = 10; thisPin >= 5; thisPin--) //pin yang digunakan menyalakan LED dalam keadaan mundur mulai dari pin 10 sampai pin 5 (batas LED yang menyala sampai pin 5) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } } Selanjutnya untuk tugas pada percobaan 2.tugas yang pertama yaitu mengganti nyala LED menjadi 3 det ik.untuk mengganti waktu ini maka int timer pada program diganti menjadi 3000.Program yang dipakai yaitu int timer = 3000; //waktu jeda tiap LED 3 detik void setup()
{ for (int thisPin = 5; thisPin < 11; thisPin++) //pin yang digunakan untuk LED mulai dari 5 sampai kurang dari 11 { pinMode(thisPin, OUTPUT); //pin yang digunakan untuk output } } void loop() { for (int thisPin = 5; thisPin < 11; thisPin++) //pin yang digunakan untuk menyalakan LED dalam keadaan maju mulai dari 5 sampai kurang dari 11 (batas LED yang menyala sampai pin 10) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } for (int thisPin = 10; thisPin >= 5; thisPin--) //pin yang digunakan menyalakan LED dalam keadaan mundur mulai dari pin 10 sampai pin 5 (batas LED yang menyala sampai pin 5) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } } Untuk tugas selanjutnya yaitu menambah 4 LED pada pin 9,10,11,12.Sebelumnya kami menggunakan pin 5,6,7,8,9,dan 10.Setelah ditambahkan,pin yang di gunakan yaitu 3,4,5,6,7,8,9,10,11,dan 12.Program yang digunakan yaitu int timer = 3000; //waktu jeda tiap LED 3 detik void setup() { for (int thisPin = 3; thisPin < 13; thisPin++) //pin yang digunakan untuk LED mulai dari 3 sampai kurang dari 13 { pinMode(thisPin, OUTPUT); //pin yang digunakan untuk output }
} void loop() { for (int thisPin = 3; thisPin < 13; thisPin++) //pin yang digunakan untuk menyalakan LED dalam keadaan maju mulai dari 3 sampai kurang dari 13 (batas LED yang menyala sampai pin 12) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } for (int thisPin = 12; thisPin >= 3; thisPin--) //pin yang digunakan menyalakan LED dalam keadaan mundur mulai dari pin 12 sampai pin 3 (batas LED yang menyala sampai pin 3) { digitalWrite(thisPin,HIGH); delay(timer); //menyalakan LED dengan waktu jeda yang ditentukan digitalWrite(thisPin,LOW); //mematikan LED } }
3. Percobaan 3 Pada percobaan 3 ini melakukan percobaan menggunakan ARRAY.Percobaan ini menyalakan LED sesuai urutan pin dengan waktu yang ditentukan.Jumlah pin yang digunakan sebanyak 6 pin.Pada percobaan ini kami menggunakan urutan pin 7,8,6,5,3,4 dengan jeda waktu menyala LED 0,5 detik.LED akan menyala sesuai urutan pin.Jika LED telah menyala semua maka urutan nyala LED akan dimulai dari awal.Program yang digunakan yaitu int timer = 500; //waktu jeda antar LED 0,5 detik
int ledPins[ ] = { 7, 8, 6, 5, 3, 4}; int jumlahPin = 6; //urutan pin yang disambungkan ke LED untuk dinyalakan serta jumlah pin untuk menyalakan LED void setup() { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan { pinMode(ledPins[thisPin], OUTPUT); //pin LED yang digunakan sebagai output } } void loop () { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan { digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED sesuai urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED } for (int thisPin = jumlahPin-1; thisPin >= 0; thisPin--) //urutan berkebalikan jumlah pin yang digunakan namun dikurangi LED terakhir { digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED berkebalikan urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED } } Selanjutnya mengerjakan tugas yang diberikan.Tugas yang diberikan yaitu dengan mengganti array led pins dengan hanya mengubah posisi urutannya.Urutan yang digunakan yaitu 8,7,6,5,4,3.Program yang digunakan yaitu
int timer = 500; //waktu jeda antar LED 0,5 detik int ledPins[ ] = { 8, 7, 6, 5, 4, 3}; int jumlahPin = 6; //urutan pin yang disambungkan ke LED untuk dinyalakan serta jumlah pin untuk menyalakan LED void setup() { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan { pinMode(ledPins[thisPin], OUTPUT); //pin LED yang digunakan sebagai output } } void loop () { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan { digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED sesuai urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED } for (int thisPin = jumlahPin-1; thisPin >= 0; thisPin--) //urutan berkebalikan jumlah pin yang digunakan namun dikurangi LED terakhir { digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED berkebalikan urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED } } Untuk tugas selanjutnya yaitu dengan menambah 2 buah LED.Pin yang digunakan setelah penambahan 2 LED yaitu 9,8,7,6,5,4,3,2.Disini kami juga mengubah wakry nyala antar LED menjadi 1 detik.Program yang digunakan yaitu int timer = 1000; //waktu jeda antar LED 1 detik int ledPins[ ] = { 9, 8, 7, 6, 5, 4, 3, 2}; int jumlahPin = 8; //urutan pin yang disambungkan ke LED untuk dinyalakan serta jumlah pin untuk menyalakan LED
void setup() { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan { pinMode(ledPins[thisPin], OUTPUT); //pin LED yang digunakan sebagai output } } void loop () { for (int thisPin = 0; thisPin < jumlahPin; thisPin++) //urutan jumlah pin yang digunakan { digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED sesuai urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED } for (int thisPin = jumlahPin-1; thisPin >= 0; thisPin--) //urutan berkebalikan jumlah pin yang digunakan namun dikurangi LED terakhir { digitalWrite(ledPins[thisPin], HIGH);delay(timer); //menghidupkan LED berkebalikan urutan pin dengan jeda waktu yang sudah ditentukan digitalWrite(ledPins[thisPin], LOW); //mematikan LED } }
BAB V KESIMPULAN 1. LED dapat dinyalakan jika pada program diberi masukan 1 atau HIGH. 2. LED dapat dimatikan jika pada program diberi masukan 0 atau LOW. 3. LED dapat menyala atau mati dengan waktu yang ditentukan dengan mengatur delay timer pada program. 4. Percobaan FOR LOOP berprinsip kerja yaitu LED menyala sesuai urutan pin yang digunakan dengan waktu yang ditentukan. 5. Pecobaan ARRAY berprinsip kerja hampir sama dengan FOR LOOP namun pin yang digunakan dapat diacak.