You are on page 1of 22

NAMA : RUBEN SIMAREMARE

KELAS : EL-4C

NIM : 1905032038

UJIAN : MIKROPROSESOR

1.) RANCANGAN MIKROKONTROLER ATMEGA 16/32 TERKONEKSI INPUT DAN OUTPUT :


INPUT = MINIMAL 3 ( 3 BUTTON )
OUTPUT = MINIMAL 3 ( LCD, LED, TRAFFIC LIGHT, 7SEG-C0M-AN, MOTOR)

JAWABAN :

Project : RUBEN SIMAREMARE

Version : 1905032038

Date : 7/11/2021

Author : ABDULLAH

Company : POLITEKNIK NEGERI MEDAN

Comments: EL-4C

#include <mega32.h>

#include <delay.h>

while (1)

if (PIND.4==0)

PORTB.0=1;

PORTB.1=0;

PORTB.6=1;
PORTB.7=0;

PORTC.0=1;

PORTC=0x7f;

PORTC=0x1;

PORTD.0=0;

PORTD.1=1;

PORTD.2=1;

PORTD.5=1;

PORTD.6=0;

PORTD.7=1;

lcd_gotoxy(0,0);

lcd_putsf(" PROGRAM ");

lcd_gotoxy(0,1);

lcd_putsf(" BARU AKAN ");

lcd_gotoxy(0,2);

lcd_putsf(" DI MULAI ");

lcd_gotoxy(0,3);

lcd_putsf(" SEKARANG ");

delay_ms(100);

//======================================

if (PIND.3==0)

PORTB.0=1;

PORTB.1=0;

PORTB.6=0;

PORTB.7=1;

PORTC.0=0;
PORTC=0x30;

PORTC=0x4;

PORTD.0=1;

PORTD.1=1;

PORTD.3=0;

PORTD.4=1;

PORTD.5=0;

PORTD.6=1;

PORTD.7=0;

lcd_gotoxy(0,0);

lcd_putsf(" RUBEN SIMAREMARE ");

lcd_gotoxy(0,1);

lcd_putsf(" 1905032038 ");

lcd_gotoxy(0,2);

lcd_putsf(" EL-4C ");

lcd_gotoxy(0,3);

lcd_putsf(" TEKNIK LISTRIK ");

delay_ms(50);

//======================================

if (PIND.2==0)

PORTB.0=0;

PORTB.1=0;

PORTB.6=0;

PORTB.7=0;

PORTC.0=0;

PORTC=0x19;

PORTC=0x48;
PORTD.0=0;

PORTD.1=0;

PORTD.4=0;

PORTD.5=0;

PORTD.6=0;

PORTD.7=0;

lcd_gotoxy(0,0);

lcd_putsf(" PROGRAM ");

lcd_gotoxy(0,1);

lcd_putsf(" AKHIRNYA ");

lcd_gotoxy(0,2);

lcd_putsf(" SELESAI ");

lcd_gotoxy(0,3);

lcd_putsf(" SEKARAMG ");

delay_ms(50);

// Place your code here

}
1.) Jika button 1 di tekan maka :
 Lcd menampilkan tulisan
 7seg-com-an = angka 8
 Traffic light = merah dan hijau
 Kedua motor bergerak searah ke arah kiri
 Led 1 dan 3 hidup

2.) Jika button 2 di tekan maka :


 Lcd menampilkan tulisan
 7seg-com-an = angka 6
 Traffic light = kuning
 Kedua motor bergerak beralawanan arah
 Led 2 dan 3 hidup
3.) Jika button 2 di tekan maka :
 Lcd menampilkan tulisan
 7seg-com-an = angka 2
 Traffic light mati
 Kedua motor berhenti
 Semua led mati

VID_20210711_230817.mp4
2.) RANCANGAN ARDUINO TERKONEKSI INPUT DAN OUTPUT :
INPUT = MINIMAL 3 { SENSOR API, SENSOR GAS, BUTTON }
OUTPUT = MINIMAL 3 { LCD, POMPA, KIPAS, LED, TRAFFIC LIGHT, MOTOR }

JAWABAN :

int pompa = 10;


int kipas = 9;
int sensor_gas= 7;
int sensor_api= 8;
#include <LiquidCrystal.h>
LiquidCrystal lcd (A5,A4,A3,A2,A1,A0);
int tr_merah = 13;
int tr_kuning = 12;
int tr_hijau = 11;
int button = 6;
int led = 5;
int motor_plus = 4;
int motor_negatif = 3;

void setup() {
// put your setup code here, to run once:

pinMode(pompa, OUTPUT);
pinMode(kipas, OUTPUT );
pinMode(sensor_gas, INPUT);
pinMode(sensor_api, INPUT);
lcd.begin(20,4);
pinMode(tr_merah , OUTPUT);
pinMode(tr_kuning, OUTPUT);
pinMode(tr_hijau, OUTPUT);
pinMode(button, INPUT);
pinMode(led, OUTPUT);
pinMode(motor_plus, OUTPUT);
pinMode(motor_negatif, OUTPUT);

void loop() {

lcd.setCursor(0,0);
lcd.print (" TRAFFIC HIDUP ");
lcd.setCursor(0,1);
lcd.print (" GAS TERDETEKSI ");
lcd.setCursor(0,2);
lcd.print (" API TERDETEKSI ");
lcd.setCursor(0,3);
lcd.print (" POMPA HIDUP ");

digitalWrite(tr_merah, HIGH);
digitalWrite(tr_kuning,HIGH);
digitalWrite(tr_hijau, HIGH);

if ((digitalRead(sensor_api) == HIGH) && (digitalRead(sensor_gas) == HIGH))


{

digitalWrite(pompa, HIGH);
digitalWrite(kipas, LOW);
delay(1000);
}

else if((digitalRead(sensor_api) == HIGH) || (digitalRead(sensor_gas) == HIGH))


{
//==========================================================
==================
digitalWrite(pompa, HIGH);
digitalWrite(kipas, LOW);

lcd.setCursor(0,0);
lcd.print (" PROGRAM ARDUINO ");
lcd.setCursor(0,1);
lcd.print (" GAS TERDETEKSI ");
lcd.setCursor(0,2);
lcd.print (" API TERDETEKSI ");
lcd.setCursor(0,3);
lcd.print (" POMPA HIDUP ");
digitalWrite(tr_merah, HIGH);
digitalWrite(tr_kuning,HIGH);
digitalWrite(tr_hijau, LOW);

delay(1000);
}
//==========================================================
==================
else

digitalWrite(kipas, LOW);
digitalWrite(pompa, LOW);

lcd.setCursor(0,0);
lcd.print (" SISTEM ARDUINO ");
lcd.setCursor(0,1);
lcd.print (" GAS TIDAK AKTIF ");
lcd.setCursor(0,2);
lcd.print (" API TIDAK AKTIF ");
lcd.setCursor(0,3);
lcd.print (" POMPA MATI ");

digitalWrite(tr_merah, LOW);
digitalWrite(tr_kuning, HIGH);
digitalWrite(tr_hijau, HIGH);

delay(1000);

//==========================================================
==================
lcd.setCursor(0,0);
lcd.print (" TRAFFIC MERAH ");
lcd.setCursor(0,1);
lcd.print (" GAS TERDETEKSI ");
lcd.setCursor(0,2);
lcd.print (" API TERDETEKSI ");
lcd.setCursor(0,3);
lcd.print (" POMPA HIDUP ");

digitalWrite(tr_merah, HIGH);
digitalWrite(tr_kuning, LOW);
digitalWrite(tr_hijau, LOW);

if ((digitalRead(sensor_api) == HIGH) && (digitalRead(sensor_gas) == HIGH))


{

digitalWrite(kipas, LOW);
digitalWrite(pompa, HIGH);
delay(1000);

}
//==========================================================
==================
lcd.setCursor(0,0);
lcd.print (" TRAFFIC KUNING ");
lcd.setCursor(0,1);
lcd.print (" GAS TERDETEKSI ");
lcd.setCursor(0,2);
lcd.print (" API TIDAK ADA ");
lcd.setCursor(0,3);
lcd.print (" KIPAS HIDUP ");

digitalWrite(tr_merah, LOW);
digitalWrite(tr_kuning, HIGH);
digitalWrite(tr_hijau, LOW);

if((digitalRead(sensor_api) == LOW) || (digitalRead(sensor_gas) == HIGH))


{

digitalWrite(kipas, HIGH);
digitalWrite(pompa, LOW);
delay(1000);

delay(1000);
}

//==========================================================
==================
else

digitalWrite(kipas, LOW);
digitalWrite(pompa, HIGH);

lcd.setCursor(0,0);
lcd.print (" TRAFFIC HIJAU ");
lcd.setCursor(0,1);
lcd.print (" GAS TIDAK AKTIF ");
lcd.setCursor(0,2);
lcd.print (" API AKTIF ");
lcd.setCursor(0,3);
lcd.print (" POMPA HIDUP ");

digitalWrite(tr_merah, LOW);
digitalWrite(tr_kuning, LOW);
digitalWrite(tr_hijau, HIGH);

delay(1000);
}

//==========================================================
==================

lcd.setCursor(0,0);
lcd.print (" RUBEN SIMAREMARE ");
lcd.setCursor(0,1);
lcd.print (" 1905032038 ");
lcd.setCursor(0,2);
lcd.print (" EL-4C ");
lcd.setCursor(0,3);
lcd.print (" TEKNIK LISTRIK ");

digitalWrite(tr_merah, HIGH);
digitalWrite(tr_kuning,HIGH);
digitalWrite(tr_hijau, HIGH);

digitalWrite(button, LOW);
digitalWrite(led, HIGH);

digitalWrite(motor_plus , HIGH);
digitalWrite(motor_negatif , LOW);

if ((digitalRead(sensor_api) == LOW) && (digitalRead(sensor_gas) == LOW))


{

digitalWrite(pompa, HIGH);
digitalWrite(kipas, HIGH);

delay(1000);

//==========================================================
==================
lcd.setCursor(0,0);
lcd.print (" SISTEM ARDUINO ");
lcd.setCursor(0,1);
lcd.print (" AKHIRNYA ");
lcd.setCursor(0,2);
lcd.print (" SELESAI ");
lcd.setCursor(0,3);
lcd.print (" TERIMA KASIH ");

digitalWrite(tr_merah, HIGH);
digitalWrite(tr_kuning,LOW);
digitalWrite(tr_hijau, HIGH);

digitalWrite(button, LOW);
digitalWrite(led, HIGH);

digitalWrite(motor_plus , LOW);
digitalWrite(motor_negatif , HIGH);

if ((digitalRead(sensor_api) == LOW) && (digitalRead(sensor_gas) == LOW))


{

digitalWrite(pompa, HIGH);
digitalWrite(kipas, LOW);

delay(1000);

//==========================================================
==================
lcd.setCursor(0,0);
lcd.print (" ");
lcd.setCursor(0,1);
lcd.print (" ");
lcd.setCursor(0,2);
lcd.print (" ");
lcd.setCursor(0,3);
lcd.print (" ");
digitalWrite(tr_merah, LOW);
digitalWrite(tr_kuning,LOW);
digitalWrite(tr_hijau, LOW);

digitalWrite(button, LOW);
digitalWrite(led, LOW);

digitalWrite(motor_plus , LOW);
digitalWrite(motor_negatif , LOW);

if ((digitalRead(sensor_api) == LOW) && (digitalRead(sensor_gas) == LOW))


{

digitalWrite(pompa, LOW);
digitalWrite(kipas, LOW);

delay(1000);

}
// put your main code here, to run repeatedly:
}
1.) Jika sensor api dan gas terdeteksi maka :
 Pompa hidup
 Traffic light hidup : merah, kuning hijau
 Lcd menampilkan tulisan

2.) Jika antara sensor gas aktif atau sensor api aktif maka :
 Pompa hidup
 Traffic light hidup : merah, kuning
 Lcd menampilkan tulisan
3.) Jika saat kedua sensor mati maka :
 Pompa mati
 Traffic light hidup : kuning, hijau
 Lcd menampilkan tulisan

4.) Jika sensor api dan gas terdeteksi maka :


 Pompa hidup
 Traffic light hidup : merah
 Lcd menampilkan tulisan
5.) Jika sensor gas aktif , sensor api tidak aktif maka :
 Kipas hidup
 Traffic light hidup : kuning
 Lcd menampilkan tulisan

6.) Jika sensor gas tidak aktif, sensor api aktif maka :
 Pompa hidup
 Traffic light hidup : hijau
 Lcd menampilkan tulisan
7.) Menghidupkan motor melalui push button maka :
 Traffic light hidup : merah, kuning, hijau
 Putaran motor ke arah kanan
 Led, pompa, kipas hidup
 Sensor api dan gas mati
 Lcd menampilkan tulisan

8.) Menghidupkan motor melalui push button maka :


 Traffic light hidup : merah dan hijau
 Putaran motor ke arah kiri
 Led dan pompa hidup
 Kipas mati
 Sensor api dan gas mati
 Lcd menampilkan tulisan
9.) Menghidupkan motor melalui push button maka :
 semua rangkaian mati

VID_20210711_151102.mp4

VID_20210711_151102.mp4

You might also like