Anda di halaman 1dari 37

LAPORAN

PRAKTIKUM MIKRO KOMPUTER

NAMA KELOMPOK

1. ALTAR SYUKUR NESIMNASI


2. YUAN L TAKUBESSI
3. EDVIAN D F LAOERE
4. KWAT KARHAN RAKMENI
5. ROSALIN I P HEDE

PRODI TEKNIK KOMPUTER DAN JARINGAN

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI KUPANG

2023
1. Lampu kelap-kelip.
 Menggunakan arduino pada proteus untuk membuat beberapa led kelap-kelip secara
bersamaan
 Diawali dengan membuat rangkaian sederhana pada aplikasi proteus/isis dengan
merangkai beberapa led seperti contoh di bawah ini.

 Kemudian kita beralih pada aplikasi arduino, membuat coding untuk dapat
dijalankan pada rangkaian yang telah dibuat dalam proteus diatas. Berikut adalah
coding sederhana untuk membuat Led menyala menyala secara bersamaan(kelap-
kelip).
2. LED berurutan
 Berikut masi sama seperti nomor satu. Menggunakan arduino pada proteus untuk
membuat beberapa led menyala cecara berurutan.
 Berikut adalah contoh membuat rangkaian sederhana lampu berurutan pada
aplikasi proteus/isis .

 Kemudian kita masuk pada aplikasi arduino, lalu membuat LED berjalan atau
running led menggunakan arduino dasar yang sama dengan cara di atas, hanya saja
nanti akan ada tambahan fungsi delay(). Fungsi dari delay(1000/500) digunakan
saat programmer ingin memberi jeda pada led. Berikut coding sederhana led
berurutan seperti dibawah ini.
3. For kelap-kelip
 Berikut sama seperi awal kita menggunakan proteus untuk membuat beberapa led kelap-
kelip menggunakan perulangan for(int i=….; i=…; i++);
 Pertama-tama kita membuat rangkaian sederhana pada aplikasi proteus/isis, berikut
adalalah sebagai contoh.

 For kelap_kelip adalah lampu yang hidup secara berurutan namun kita
menambahkan codiyng for agar mempermudah kita dalam membuat sebuah
codiyng tanpa harus mengulang-ulang coding seperti terdapat pada nomor dua,
namun lampu akan hidup dari bawah ke atas atau dari kanan ke kiri sesuai
penyusunan kita.
4. LED Lalu_Lintas
 Pada nomor empat ini kita akan membuat lampu lalu_lintas pada aplikasi proteus dengan
tiga warna led red, yellow dan green dengan membuat coding berulang-ulang.
 Diawali dengan rangkain sederhana dengan tiga warna lampu di empat bagian atau
sisi seperti gambar di bawah ini.

 Kemudian pada aplikasi arduino, kita akan membut coding berulang untuk
dijalankan menggunakan coding digitalWrite(…, LOW/HIGH) dan delay() untuk
menentukan jedahnya led tersebut, seperti contoh coding dibawah ini.
5. Tombol/Button
 Berikut menggunakan arduino pada proteus dengan membuat beberapa button dan led
untuk led berjumlah empat dan button berjumlah empat buah.
 Diawali dengan membuat rangkaian sederhana seperti terdapat empat buah led,
empat buah button dan beberapa resistor seperti gambar di bawah ini.

 Kemudian beralih pada aplikasi arduino, membuat coding untuk dijalankan pada
rangkaian button yang telah di buat dalam aplikasi proteus. Berikut adalah contoh
coding sederhana dalam membuat led button/tombol.
6. Satu Tombol Satu Lampu
 Berikut kita menggunakan arduino pada proteus untuk membuat satu led dan satu tombol
dan fungsi button untuk hidupakan led dan matikan led.
 Berikut kita membuat rangkaian sederhana menggunakan satu button dan satu led
pada aplikasi proteus/isis, seperti contoh di bawah ini.
 Kemudian beralih pada aplikasi arduino, membuat coding untuk jalankan pada
rangkaian yang sudah buat dalam proteus di atas.
Berikut adalah coding sederhan untuk membuat button bisa mengontrol led yang
ada tersebut.

7. Dua Tombol Satu Lampu


 menggunakan arduino pada proteus untuk membuat rangkaian dua button dan satu led,
fungsinya dari button1 untuk menghidupkan lampu dan button2 untuk mematikan lampu.
 Berikut di awali dengan membuat rangkaian sederhana pada aplikasi proteus
seperti gambar di bawah ini.
 Kemudian kita beralih pada aplikasi arduino, membuat coding untuk bisa jalankan
pada rangkaian yang telah kita buat pada aplikasi proteus di atas. Berikut adalah
cntoh rangkaian dua button dan satu led.
Semester IV

1. Sensor api dan buzzer


Contoh gambar rangkaian:
Contoh program:
// inialisasi pin sensor dan alarm/buzzer
const int pinApi = 8;
const int pinAlarm = 9;
// inialisasi variabel data
int data;
// ----------- program default/setting awal ----------- //
void setup()
{
// inialisasi status I/O pin
pinMode(pinApi, INPUT); // pin sebagai input
pinMode(pinAlarm, OUTPUT); // pin sebagai output
}

// ----- program utama, looping/berulang terus-menerus ----- //


void loop()
{
// variabel data adalah hasil dari pembacaan sensor
// berupa logic LOW/HIGH
data = digitalRead(pinApi);

// jika data bernilai logic LOW


if (data == LOW)
{
// alarm dinyalakan
digitalWrite(pinAlarm, HIGH);
delay(100);
}
// jika data tidak bernilai logic LOW
else
{
// alarm dimatikan
digitalWrite(pinAlarm, LOW);
delay(100);
}
}
Penjelasan:
Jika api terdeteki maka sensor akan bekerja dan buzzer akan mengeluarkan suara seperti alaram

2. Sensor api, led,dan buzzer


Contoh gambar rangkaian:

Contoh program:

#include<SoftwareSerial.h>

int sensorPin = A0; //pin yg di gunakan


int sensorValue = 0;

int led = 2; // pin led yg di gunakan

int buzzer = 4; // pin buzzer

void setup(){

Serial.begin(9600);

pinMode(led, OUTPUT);

pinMode(buzzer, OUTPUT);

void loop()

Serial.println("pembacaan sensor api");

sensorValue = analogRead(sensorPin);

Serial.println(sensorValue);

if (sensorValue < 100)

Serial.println(" ada api");


digitalWrite(led,HIGH);

digitalWrite(buzzer, HIGH);

delay(1000);

digitalWrite(led,LOW);

digitalWrite(buzzer, LOW);

delay(sensorValue);

Penjelasan:

Sama seperti projet diatas tetapi projet ini menambah led, Jika api terdeteki maka sensor akan
bekerja, buzzer akan mengeluarkan suara seperti alaram dan led akan menyala.

3. Sensor ultarsonic, buzzer dan led


Contoh gambar rangkaian:
Contoh program:

const int trigPin = 10;


const int echoPin = 9;
int lampu = 13 ;

void setup() {
Serial.begin(9600);
pinMode(lampu, OUTPUT);
}

long duration, inches, cm;

void loop()
{
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);

inches = microsecondsKeInchi(duration);
cm = microsecondsKeCenti(duration);

Serial.print(inches);
Serial.print(" in, ");
Serial.print(cm);
Serial.print(" cm");
Serial.println();

lampuNyala() ;

delay(1000);
}

long microsecondsKeInchi(long microseconds)


{
return microseconds / 74 / 2;
}

long microsecondsKeCenti(long microseconds)


{
return microseconds / 29 / 2;
}
void lampuNyala(){
if(cm > 0 && cm <=30){
digitalWrite(lampu,HIGH) ;
}
else{
digitalWrite(lampu,LOW) ;
}
}
Penjelasan:
Jika benda berjarak kurang dari 30 cm maka ultrasonik akan bekerja, led akan menyala, dan
buzzer akan berbunyi.

4. Sensor ultrasonic, buzzer dan 3 led


Contoh gambar rangkaian:
Contoh program:
//Deklarasi PIN
int trig = 6; // membuat varibel trig yang di set ke-pin D6
int echo = 7; // membuat variabel echo yang di set ke-pin D7
long durasi, jarak; // membuat variabel durasi dan jarak
int merah = 4;
int kuning = 3;
int hijau = 2;
int buzzer = 5;

void setup() {
pinMode(trig, OUTPUT); // set pin trig menjadi OUTPUT
pinMode(echo, INPUT); // set pin echo menjadi INPUT
pinMode(merah, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode(hijau, OUTPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600); // digunakan untuk komunikasi Serial dengan komputer
}

void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(8);
digitalWrite(trig, HIGH);
delayMicroseconds(8);
digitalWrite(trig, LOW);
delayMicroseconds(8);
durasi = pulseIn(echo, HIGH); // menerima suara ultrasonic
jarak = (durasi / 2) / 29.1; // mengubah durasi menjadi jarak (cm)
if(jarak >= 16){
digitalWrite(hijau, HIGH);
digitalWrite(merah, LOW);
digitalWrite(kuning, LOW);
digitalWrite(buzzer, LOW);
}else if((jarak > 5)&&(jarak <16)){
digitalWrite(hijau, LOW);
digitalWrite(merah, LOW);
digitalWrite(kuning, HIGH);
digitalWrite(buzzer, LOW);
}else {
digitalWrite(hijau, LOW);
digitalWrite(merah, HIGH);
digitalWrite(kuning, LOW);
digitalWrite(buzzer, HIGH);
}
// Serial.print("Jarak Benda : ");
// Serial.print(jarak) ; // menampilkan jarak pada Serial Monitor
// Serial.println(" Cm");
}

Penjelasannya:
Jika jarak benda lebih dari 16 cm maka led 1 akan menyalah dan buzzer tetap mati, jika jarak
benda kurang dari 16 cm dan lebih dari 5 cm maka led 2 akan menyala dan buzzer tetap mati, dan
jika jarak benda kurang dari 5 cm maka led 3 akan menyala dan buzzer akan aktif dan
mengeluarkan suara.
5. Lcd menggunkan arduino
Contoh rangkaian:
Contoh program:

#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
lcd.begin(0,16);
lcd.init();
lcd.backlight();

void loop(){

//ke kiri
for (int i = 0; i <= 16; i++){
lcd.setCursor(1,0);
lcd.scrollDisplayLeft();
lcd.print("TEAM GACOR");
delay(300);
}
lcd.clear();
//ke kanan
for (int i = 0; i <= 16; i++){
lcd.setCursor(0,1);
lcd.scrollDisplayLeft();
lcd.print("YUAND,RIRIN,ATAX,KARHAN");
delay(300);
}
lcd.clear();
}

Penjelasan:
LCD akan menampilkan kata-kata sesuai dengan kode program yang telah di tulis atau dibuat.
6. Joystick dan 4 LED
Contoh gambar rangkaian:
Contoh program:

//Subscribe AJTekno

const int pinVRX = A0;

const int pinVRY = A1;

const int pinSW = A2;

const int pinAtas = 9;

const int pinBawah = 10;

const int pinKiri = 7;

const int pinKanan = 8;

void setup() {

// put your setup code here, to run once:

Serial.begin (9600);

pinMode (pinAtas, OUTPUT);

pinMode (pinBawah, OUTPUT);

pinMode (pinKiri, OUTPUT);

pinMode (pinKanan, OUTPUT);

void loop() {

// put your main code here, to run repeatedly:

int nilaiX = analogRead (pinVRX);

int nilaiY = analogRead (pinVRY);

int nilaiSW = analogRead (pinSW);

Serial.print ("X: ");

Serial.print (nilaiX);

Serial.print (", Y: ");


Serial.print (nilaiY);

Serial.print (", SW: ");

Serial.println(nilaiSW);

delay (100);

if (nilaiX > 520 ){ //atas

digitalWrite (pinAtas, HIGH);

digitalWrite (pinBawah, LOW);

digitalWrite (pinKiri, LOW);

digitalWrite (pinKanan, LOW);

else if (nilaiX < 500){ //bawah

digitalWrite (pinAtas, LOW);

digitalWrite (pinBawah, HIGH);

digitalWrite (pinKiri, LOW);

digitalWrite (pinKanan, LOW);

else if (nilaiY < 400 ){ //kiri

digitalWrite (pinAtas, LOW);

digitalWrite (pinBawah, LOW);

digitalWrite (pinKiri, HIGH);

digitalWrite (pinKanan, LOW);

else if (nilaiY > 510 ){ //kanan

digitalWrite (pinAtas, LOW);

digitalWrite (pinBawah, LOW);


digitalWrite (pinKiri, LOW);

digitalWrite (pinKanan, HIGH);

else if (nilaiSW == 0){

digitalWrite (pinAtas, HIGH);

digitalWrite (pinBawah, HIGH);

digitalWrite (pinKiri, HIGH);

digitalWrite (pinKanan, HIGH);

else { //netral

digitalWrite (pinAtas, LOW);

digitalWrite (pinBawah, LOW);

digitalWrite (pinKiri, LOW);

digitalWrite (pinKanan, LOW);

Penjelasan:

Jika joystick di gerakan maka led akan menyalah sesuai arah gerak joystick, dan jika joystick
tidak di gerakan maka led tidak menyalah.
7. Potensio dan lcd 0,27
Contoh gambar rangkaian:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// Inisialisasi input port


int inputpotensio = A0;
int nilaipotensio = 0;

void setup() {
lcd.begin(16, 2);
}
void loop() {
nilaipotensio = analogRead(inputpotensio);
lcd.setCursor(0, 0);
lcd.print("nolai potensio = ");
lcd.setCursor(0, 1);
lcd.print(nilaipotensio);
delay(100);
}

Penjelasan:
Jika potensio diputar maka LED akan menampilkan nilai dri putaran tersebut.
8. Led, motor, relay,dan Lcd
Contoh gambar rangkaian:
Contoh program:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Inisialisasi objek LCD

int ledPin = 13; // Pin LED


int relayPin = 7; // Pin relay
int analogPin = A0; // Pin input tegangan analog

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(relayPin, OUTPUT);
lcd.begin(16, 2); // Inisialisasi LCD dengan ukuran 16x2
lcd.print("Nilai Tegangan:"); // Teks awal pada LCD
}
void loop() {
float voltage = analogRead(analogPin) * (5.0 / 1023.0); // Membaca tegangan analog
lcd.setCursor(0, 1);
lcd.print(" "); // Menghapus teks sebelumnya
lcd.setCursor(0, 1);
lcd.print(voltage, 2); // Menampilkan nilai tegangan dengan 2 desimal

if (voltage > 2.5) {


digitalWrite(ledPin, HIGH); // Menyalakan LED
digitalWrite(relayPin, HIGH); // Mengaktifkan relay dan motor DC
} else {
digitalWrite(ledPin, LOW); // Mematikan LED
digitalWrite(relayPin, LOW); // Mematikan relay dan motor DC
}

delay(1000); // Delay 1 detik


}

Penjelasan:
Arduino akan mengendalikan LED, motor, relay, dan LCD sesuai dengan kode program yang
telah ditulis. Jika potensio di putar maka led akan menyala dan motor/dinamo akan menerima
nilai dri relay dan motor/dinamo akan hidup.

9. Ultrasonic dan led


Contoh gambar rangkaian:
Contoh program:

const int trigPin = 10;


const int echoPin = 9;
int lampu = 13 ;

void setup() {
Serial.begin(9600);
pinMode(lampu, OUTPUT);
}

long duration, inches, cm;

void loop()
{
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);

inches = microsecondsKeInchi(duration);
cm = microsecondsKeCenti(duration);

Serial.print(inches);
Serial.print(" in, ");
Serial.print(cm);
Serial.print(" cm");
Serial.println();

lampuNyala() ;

delay(1000);
}

long microsecondsKeInchi(long microseconds)


{
return microseconds / 74 / 2;
}

long microsecondsKeCenti(long microseconds)


{
return microseconds / 29 / 2;
}

void lampuNyala(){
if(cm > 0 && cm <=30){
digitalWrite(lampu,HIGH) ;
}
else{
digitalWrite(lampu,LOW) ;
}
}

Penjelasan:
Jika benda didekatkan pada ultra sonic dengan jarak kurang dari 30cm maka untra sonik akan
hidup dan LED akan menyala, Jika benda berjarak lebih dari 30cm maka ultra sonic dan LED
akan mati bersamaan.
10. Potensio dan motor/dinamo
Contoh gambar:
Contoh program:

// Kode untuk mengontrol dinamo menggunakan potensiometer dan Serial Monitor

const int potentiometerPin = A0; // Pin analog untuk potensiometer

const int dinamoPin = 2; // Pin digital untuk dinamo

void setup() {

pinMode(dinamoPin, OUTPUT); // Mengatur pin dinamo sebagai output

Serial.begin(9600); // Memulai komunikasi serial dengan kecepatan 9600 bps

void loop() {

int potValue = analogRead(potentiometerPin); // Membaca nilai potensiometer

if (potValue > 512) {

digitalWrite(dinamoPin, HIGH); // Menghidupkan dinamo

} else {

digitalWrite(dinamoPin, LOW); // Mematikan dinamo

Serial.print("Nilai potensiometer: ");

Serial.println(potValue); // Mencetak nilai potensiometer ke Serial Monitor

Penjelasan:

Jika potensio di putar sampai bernilai lebih dari 512 maka dinamo/motor akan berputar, dan jika
potensio tidak di putar atau putaran potensio bernilai kurang dari 512 maka dinamo tidak berputar.

Anda mungkin juga menyukai