2.1. Tujuan
1. Praktikan dapat memahami konsep Arduino Mega 2560.
2. Praktikkan mampu membuat rangkaian menggunakan Arduino.
3. Praktikkan mampu menggunakan software Proteus.
4. Praktikkan mampu menggunakan Arduino IDE.
5. Praktikkan mampu menggunakan Tinkercad.
6. Praktikkan mampu menjelaskan penggunaan Arduino dalam kehidupan
sehari-hari.
7. Pratikan mampu membuat rangkaian pada Tinkercad.
8. Pratikan dapat memahami cara kerja dari rangkaian yang dibuat pada
praktikum kali ini.
2.2. Alat dan Bahan
2.2.1. Laptop/PC
Gambar 2. 1 Laptop
Gambar 2. 2 Proteus
2.2.6. Breadboard
Gambar 2. 6 Breadboard
2.2.7. LED
Gambar 2. 7 Red LED
Gambar 2. 9 Resistor
Gambar 2. 11 Proteus
Dalam TinkerCad juga disediakan fitur Class dimana kita dapat membuat
kelas untuk melakukan pembelajaran antara guru dan siswa dalam pembelajaran
di bidang desain 3D, elektronik, dan codeblock. Serta terdapat fitur Educator
untuk guru dan Student untuk siswa.
Gambar 2. 13 Dashboard TinkerCad
(Sumber: https://www.teknodika.com/2020/04/mengenal-tinkercad-platform-belajar.html)
2.3.4. Arduino Mega 2560
Pada gambar diatas kita bisa lihat, Vcc tersambung ke pin, sehingga pin
akan mendapatkan signal HIGH, dan ketika push button ditekan, arus Vcc akan
mengalir ke ground (0v), sehingga pin akan mendapat signal LOW. Kondisi ini
mirip (tidak sama) dengan kondisi "normaly close".Sedangkan Pull-down resistor,
salah satu kaki resistor dihubungkan ke kutub ground (0v), sedangkan kaki
resistor yang lain dicabangkan, satu ke pin input MCU, dan yang lain ke switch
on/off untuk disambungkan ke Vcc (5v/3.3v).
(Sumber: https://kepython.blogspot.com/2018/03/pull-up-dan-pull-down-
resistor.html#:~:text=Pull%2DUp%20dan%20Pull%2DDown,arus%20listrik%2C%20juga
%20pada%20input.)
2.4. Langkah Kerja
2.4.1 Percobaan I (Menyalakan LED)
1. Sebelum memulai percobaan pada Proteus, diperlukannya library
tambahan yaitu Arduino dari file yang sudah di unduh melalui link yang
sudah disediakan, lalu ekstrak file tersebut.
2. Setelah itu, copy dan paste file tersebut keadalam Library Proteus pada
tempat instalasi.
void setup() {
// put your setup code here, to run once:
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ledPin1, HIGH);
delay(1000);
digitalWrite(ledPin2, HIGH);
delay(1000);
digitalWrite(ledPin3, HIGH);
delay(1000);
digitalWrite(ledPin4, HIGH);
delay(1000);
digitalWrite(ledPin1, LOW);
delay(1000);
digitalWrite(ledPin2, LOW);
delay(1000);
digitalWrite(ledPin3, LOW);
delay(1000);
digitalWrite(ledPin4, LOW);
delay(1000);
}
9. Pilihlah board Arduino Mega 2560 pada tools.
12. Buka Peoteus dan klik board Arduino Mega 2560 dan paste Hex yang
sebelumnya ada pada Arduino IDE.
Gambar 2. 27 Paste Hex Pada Proteus
Gambar 2. 33 Rangkaian
int buttonPin = 2;
int ledPin = 8;
int buttonState = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop(){
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
Serial.println("Jomblo");
digitalWrite(ledPin, HIGH);
}
else {
Serial.println("Ora Jomblo");
digitalWrite(ledPin, LOW);
}
}
7. Jalankan rangkaian tersebut dan amati.
Gambar 2. 39 Rangkaian
int nilaipb1 = 0;
int nilaipb2 = 0;
void setup() {
pinMode(pb1, INPUT);
pinMode(red, OUTPUT);
pinMode(pb2, INPUT);
pinMode(green, OUTPUT);
Serial.begin (9600);
}
void loop() {
nilaipb1 = digitalRead(pb1);
nilaipb2 = digitalRead(pb2);
Serial.println (digitalRead(pb2));
if (nilaipb1 == HIGH) {
digitalWrite(red, HIGH);
}
else {
digitalWrite(red, LOW);
}
if (nilaipb2 == HIGH) {
digitalWrite(green, HIGH);
}
else {
digitalWrite(green, LOW);
}
}
7. Jalankan rangkaian tersebut dan amati.
Setelah disusun sedemikian rupa, lalu masukkan source code yang ada ke
dalam Arduino ide dan tekan tombol verify.
Tabel 2. 4 Source code percobaan 1
Selanjutnya salin kode hex yang tertera pada Arduino ide. Lalu buka
proteus dan klik 2 kali Arduino nya, tempel kode hex-nya ked alam program file.
Lalu jalankan simulasi yg ada dan amati.
LE LE LE LE
No. Waktu Gambar Output
D1 D2 D3 D4
1 1000 mS 1 0 0 0
2 2000 mS 1 1 0 0
3 3000 mS 1 1 1 0
4 4000 mS 1 1 1 1
5 5000 mS 0 1 1 1
6 6000 mS 0 0 1 1
7 7000 mS 0 0 0 1
8 8000 mS 0 0 0 0
Gambar 2. 45 Tinkercard
Gambar 3. 1 Rangkaian
Setelah disusun sedemikian rupa, lalu masukkan source code yang ada ke
dalam modul source code pada Tinkercad
Gambar 2. 46 Source code
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop(){
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
Serial.println("Jomblo");
digitalWrite(ledPin, HIGH);
}
else {
Serial.println("Ora Jomblo");
digitalWrite(ledPin, LOW);
}
}
No Push LE
Gambar
. Buttom D
1 1 1
2 0 0
Gambar 2. 48 Rangkaian
Setelah disusun sedemikian rupa, lalu masukkan source code yang ada
kedalam modul source code pada Tinkercad
Push Puss
No LED LE
Buttom buttom Gambar
. 1 D2
1 2
1 0 0 1 0
2 0 1 0 0
3 1 0 1 1
4 1 1 0 1
void setup() {
// put your setup code here, to run once:
pinMode(MP1, OUTPUT);
pinMode(MP2, OUTPUT);
pinMode(MP3, OUTPUT);
pinMode(MP4, OUTPUT);
pinMode(KP1, OUTPUT);
pinMode(KP2, OUTPUT);
pinMode(KP3, OUTPUT);
pinMode(KP4, OUTPUT);
pinMode(HP1, OUTPUT);
pinMode(HP2, OUTPUT);
pinMode(HP3, OUTPUT);
pinMode(HP4, OUTPUT);
pinMode(BP1, INPUT);
pinMode(BP2, INPUT);
pinMode(BP3, INPUT);
pinMode(BP4, INPUT);}
void loop() {
// put your main code here, to run repeatedly:
kondisi();
p1();
kondisi();
p2();
kondisi();
p3();
kondisi();
p4();
}
Program diawali dengan const int MP1 = 1;yang digunakan untuk
inisialisasi variabel yang digunakan untuk pin dalam board yang mempermudah
dalam memprogram. Kelompok kami membuat 6 buah fungsi tambahan. yakni
fungsi p1, p2, p3, dan p4 sebagai fungsi untuk mengoperasikan lampu tiap
persimpangan yang dipanggil dengan perintah p1(); pada void loop. Pada tiap
fungsi p() terkandung 2 perintah menyalakan dan mematikan LED yang ditulis
bertutut-turut digitalWrite(MP3, HIGH); dan digitalWrite(MP3, LOW);.
Serta terdapat interupt waktu untuk membuat jeda sebelum perintah selanjutnya di
lakukan yakni delay (3000);.Lalu terdapat juga 2 fungsi sebagai interupt yakni
menyembarang() dan fungsi cek yakni kondisi(). Pada fungsi menyeberang()
membuat semua lampu merah hidup dan semua lampu lain mati. Dan pada fungsi
kondisi() menggunakan if-else-if yang mana apabila terdapat push buttom
yang bernilai 1 maka jalankan fungsi menyeberang().
Tabel 2. 11 Hasil Pengamatan
Wakt MP KP HP MP KP HP MP KP HP MP KP HP
u (s) 1 1 1 2 2 2 3 3 3 4 4 4
1-9 0 0 1 1 0 0 1 0 0 1 0 0
10-
0 1 0 1 0 0 1 0 0 1 0 0
12
13-
1 0 0 0 0 1 1 0 0 1 0 0
21
22-
1 0 0 0 1 0 1 0 0 1 0 0
24
25-
1 0 0 1 0 0 0 0 1 1 0 0
33
24- 1 0 0 1 0 0 0 1 0 1 0 0
36
27-
1 0 0 1 0 0 1 0 0 0 0 1
45
46-
1 0 0 1 0 0 1 0 0 0 1 0
48
(On
PB) 1 0 0 1 0 0 1 0 0 1 0 0
10
Dari tabel pengamatan diatas dapat kita ketahui bahwa pada setiap
persimpangan mendapat waktu menyala untuk lampu hijau 9 detik kuning 3 detik
dan lampu merah 36 detik dan apabila push buttom di tekan maka lampu akan
merah semua selama 10 detik dan akan dilanjutkan seperti semula.
Kondisi yang ditampilkan oleh LED terjadi karena fungsi p1() yang
membuat persimpangan 1 LED hijau menyala, persimpangan 2,3 dan 4 LED
merah menyala dan fungsi ini akan di delay selama 9 detik.
Kondisi yang ditampilkan oleh LED terjadi karena fungsi p1() yang
membuat persimpangan 1 LED kuning menyala, persimpangan 2,3 dan 4 LED
merah menyala dan fungsi ini akan di delay selama 3 detik.
Gambar 2. 53 Lampu HP2 hidup
Kondisi yang ditampilkan oleh LED terjadi karena fungsi p2() yang
membuat persimpangan 2 LED hijau menyala, persimpangan 1,3 dan 4 LED
merah menyala dan fungsi ini akan di delay selama 9 detik.
Kondisi yang ditampilkan oleh LED terjadi karena fungsi p2() yang
membuat persimpangan 2 LED kuning menyala, persimpangan 1,3 dan 4 LED
merah menyala dan fungsi ini akan di delay selama 3 detik.
Kondisi yang ditampilkan oleh LED terjadi karena fungsi p3() yang
membuat persimpangan 3 LED hijau menyala, persimpangan 1,2 dan 4 LED
merah menyala dan fungsi ini akan di delay selama 9 detik.
Gambar 2. 56 Lampu KP3 hidup
Kondisi yang ditampilkan oleh LED terjadi karena fungsi p3() yang membuat
persimpangan 3 LED kuning menyala, persimpangan 1, 2, dan 4 LED merah
menyala dan fungsi ini akan di delay selama 3 detik.
Kondisi yang ditampilkan oleh LED terjadi karena fungsi p4() yang
membuat persimpangan 4 LED hijau menyala, persimpangan 1,2 dan 3 LED
merah menyala dan fungsi ini akan di delay selama 9 detik.
Kondisi yang ditampilkan oleh LED terjadi karena fungsi kondisi() yang
digunakan untuk mengecek push buttom dan Karena push buttom ditekan maka
membuat syarat kondisi terpenuhi untuk memanggil fungsi menyeberang() hijau
menyala, persimpangan 2,3 dan 4 LED merah menyala dan fungsi ini akan di
delay selama 9 detik.
2.7. Kesimpulan
1. Arduino mega 2560 adalah suatu board yang terintegrasi dengan
mikrokontroler Atmega 2560 yang dapat digunakan untuk membangun
suatu sistem pemroses input-output.
2. Dalam pembuatan program menggunakan bahasa C yang di compile
dengan Arduino IDE yang mana baru dapat di instal ke dalam
mikrokontroler.
3. Pada praktik kali ini dapat menggunakan 2 platform Web yakni tinkercard
dan aplikasi offline proteus.
4. Dalam membuat rangkaian sistem arduino inisialisasi pin sangatlah
penting dan akan menyebabkan kesalahan yang fatal bila terjadi kesalahan.
5. Pada percobaan 1 proteus membutuhkan suatu copiler untuk membuat
program Arduino, proteus membutuhkan bantuan pihak ke 3 seperti
Arduino IDE.
6. Pada tinkercard tidak diperlukan sebuah kompile karena sudah terdapat
satu set lengkap board dan juga kompile tetapi fitur dati board yang di
sediakan tidak sekaya proteus.
7. Arduino mengenal bahasa tingkat tinggi yang memungkinkan kita
menggunakan custum fungsi untuk mempermudah dan mempercepat serta
efisien dalam menulis sintak.
8. Arduino juga sudah terdapat interupt waktu jeda yang mana tidak
membutuhkan perangkat lain untuk fungsi ini.
9. Pada kehidupan sehari-hari arduino dapat dimanfaatkan untuk automatis
asi alat dalam kehidupan seharihari misal lampu lalu lintas ataupun deteksi
maling pada rumah kita.
10. Arduino tidak mengerti atau dapat memproses sinyal selain LOW atau
HIGH misal kabel yang belum terhubung denagn CVV ataupun GRD
maka sinyal tersebut tidak akan dapat di mengerti.