Anda di halaman 1dari 31

LAPORAN PRAKTIKUM MIKROKONTROLER

I – XV PRAKTIKUM

DOSEN :

TUGAS UTOMO, ST.MT

DISUSUN OLEH :

KELOMPOK II ( D U A )

AGUNG AULANA (17232023)


ADHEN REYNALDY . S (17232022)
ANNISA ERIZKIKA (17232026)
ARI RAMDANI (17232028)
BAGUS PERMANA ADIPA (17232029)
FANDI DWI SETYOKO (17232035)
M. AGUNG FATAHILAH (17232040)
M. RAFFI MUSTOFA (17232046)
SADDAM FIRMAN . A (17232055)
SUSANTI (17232057)

AKADEMI TEKNIK ELEKTROMEDIK (ATEM) ANDAKARA JAKARTA


Jl. Raya Kalimalang Blok E No. 4 C/D Duren Sawit
Jakarta Timur
Digital Input/Output

Dasar Teori

Digital berarti sinyal yang dikirimkan/diterima bernilai 1 atau 0, on atau off, HIGH atau
LOW. Berbeda dengan sinyal analog yang nilainya bersifat kontinyu, yakni nilai antara 0 dan 1
dipertimbangkan atau terdapat rentangan nilai dari 0 sampai 1. Secara umum pin pada Arduino dapat
dikonfigurasi ke dalam dua mode, yaitu mode input dan output. Mode input berarti mengeset pin agar
dapat digunakan untuk menerima masukan sinyal dari komponen yang terhubung ke board arduino.
Mode output berarti mengeset pin agar dapat mengirimkan sinyal dari arduino ke komponen lain atau
ke rangkaian digital. Untuk mengeset mode pin, kita gunakan fungsi pinMode(). Fungsi ini biasanya
digunakan di dalam fungsi setup(). fungsi ini memerlukan dua parameter, pinMode([nomorPin],
[mode]). Parameter pertama diisi oleh nomor pin, dan parameter kedua diisi oleh konstanta INPUT
atau OUTPUT, sesuai dengan mode yang ingin kita gunakan. Sebagai contoh, jika ingin membuat
LED berkedip, LED tersebut bisa dipasang pada salah satu pin digital dari arduino dan ground.
Karena kita ingin membuat led menyala berkedip jadi kita konfigurasi pin yang terhubung ke LED
menjadi output.

Gambar 1. Arduino Uno


Alat dan Bahan

 Arduino Uno  RGB LED


 Protoboard  PushButton
 Led  Servo motor
 Seven Segment  DHT sensor
 Resistor 220 Ohm  Ultrasound Sensor
 Resistor 330 Ohm  LDR
 Potensiometer  LCD
 Buzzer  Kabel Jumper
 Relay  Laptop
PRAKTIKUM I

BLINK INTERNAL

Coding :

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
int LED = ;
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever


void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
PRAKTIKUM II

BLINK EKSTERNAL LED

Coding :

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
int LED = 9;
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever


void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
PRAKTIKUM III

FADING LED

Coding :

int led = 9; // the PWM pin the LED is attached to


int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by

// the setup routine runs once when you press reset:


void setup() {
// declare pin 9 to be an output:
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:


void loop() {
// set the brightness of pin 9:
analogWrite(led, brightness);

// change the brightness for next time through the loop:


PRAKTIKUM IV

TRAFIC LIGHT

Coding :

int merah = 8;
int kuning = 9;
int hijau = 10;
// the setup routine runs once when you press reset:

void setup()
// initialize the digital pin as an output
{
pinMode(merah, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode(hijau, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop()
{
digitalWrite(merah, HIGH);
digitalWrite(kuning, LOW);
digitalWrite(hijau, LOW);
delay(5000);

digitalWrite(merah, LOW);
digitalWrite(kuning, HIGH);
digitalWrite(hijau, LOW);
delay(5000);

digitalWrite(merah, LOW);
digitalWrite(kuning,LOW);
digitalWrite(hijau, HIGH);
delay(5000);

digitalWrite(merah, LOW);
digitalWrite(kuning, HIGH);
digitalWrite(hijau, LOW);
delay(5000);
}
PRAKTIKUM V

DISPLAY SEVEN SEGMENT

Coding :

byte seven_seg_digits[10][7] = { { 1,1,1,1,1,1,0 }, // = 0

{ 0,1,1,0,0,0,0 }, // = 1

{ 1,1,0,1,1,0,1 }, // = 2

{ 1,1,1,1,0,0,1 }, // = 3

{ 0,1,1,0,0,1,1 }, // = 4

{ 1,0,1,1,0,1,1 }, // = 5

{ 1,0,1,1,1,1,1 }, // = 6

{ 1,1,1,0,0,0,0 }, // = 7

{ 1,1,1,1,1,1,1 }, // = 8

{ 1,1,1,0,0,1,1 } // = 9

};

void setup() {

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);
pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

writeDot(0); // start with the "dot" off

void writeDot(byte dot) {

digitalWrite(9, dot);

void sevenSegWrite(byte digit) {

byte pin = 2;

for (byte segCount = 0; segCount < 7; ++segCount) {

digitalWrite(pin, seven_seg_digits[digit][segCount]);

++pin;

void loop() {

for (byte count = 10; count > 0; --count) {

delay(1000);

sevenSegWrite(count - 1);

delay(4000);

}
PRAKTIKUM VI

KNIGHT RIDER

Coding :

int pinArray[] = {2, 3, 4, 5, 6, 7};

int count = 0;

int timer = 50;

void setup(){

// we make all the declarations at once

for (count=0;count<6;count++) {

pinMode(pinArray[count], OUTPUT);

void loop() {

for (count=0;count<6;count++) {
digitalWrite(pinArray[count], HIGH);

delay(timer);

digitalWrite(pinArray[count], LOW);

delay(timer);

for (count=5;count>=0;count--) {

digitalWrite(pinArray[count], HIGH);

delay(timer);

digitalWrite(pinArray[count], LOW);

delay(timer);

}
PRAKTIKUM VII

LED RGB

Coding :

int pinArray[] = {2, 3, 4, 5, 6, 7};

int count = 0;

int timer = 50;

void setup(){

// we make all the declarations at once

for (count=0;count<6;count++) {

pinMode(pinArray[count], OUTPUT);

void loop() {

for (count=0;count<6;count++) {

digitalWrite(pinArray[count], HIGH);
delay(timer);

digitalWrite(pinArray[count], LOW);

delay(timer);

for (count=5;count>=0;count--) {

digitalWrite(pinArray[count], HIGH);

delay(timer);

digitalWrite(pinArray[count], LOW);

delay(timer);

}
PRAKTIKUM VIII

SERIAL BEGIN/KODE MORSE

Coding :

int dataterkirim = 0;

void setup()

{ Serial.begin(9600);}

void loop()

if (Serial.available() > 0)

dataterkirim = Serial.read();

Serial.print("saya menerima data: ");

Serial.println(dataterkirim, DEC);

}
PRAKTIKUM IX

LDR

Coding :

int sensorPin = A0;

int sensorValue = 0;

void setup()

Serial.begin(9600);

void loop()

int sensorValue = analogRead(sensorPin);

Serial.println(sensorValue); //Menampilkan nilai resistansi LDR

delay(100);

if(sensorValue>=200) //Jika nilai resistansi sama dengan atau lebih besar dari 200

Serial.println(“ON”);

Serial.println();
delay(500);

else

Serial.println(“OFF”);

Serial.println();

delay(500);

}
PRAKTIKUM X

POTENSIOMETER WITH LED

Coding :

int sensorPin = A0; // select the input pin for the potentiometer

int ledPin = 13; // select the pin for the LED

int sensorValue = 0; // variable to store the value coming from the sensor

void setup() {

// declare the ledPin as an OUTPUT:

pinMode(ledPin, OUTPUT);

}
void loop() {

// read the value from the sensor:

sensorValue = analogRead(sensorPin);

// turn the ledPin on

digitalWrite(ledPin, HIGH);

// stop the program for <sensorValue> milliseconds:

delay(sensorValue);

// turn the ledPin off:

digitalWrite(ledPin, LOW);

// stop the program for for <sensorValue> milliseconds:

delay(sensorValue);

}
PRAKTIKUM XI

RELAY

Coding :

const int PIN10 = 10;

void setup(){

pinMode(PIN10, OUTPUT);

void loop() {

digitalWrite(PIN10, HIGH);

delay(5000);

digitalWrite(PIN10, LOW);

delay(5000);

}
PRAKTIKUM XII

PUSH BUTTON + LED

Coding :

byte tombol= 2;

byte led= 13;

int nilai;

void setup(){

pinMode(led, OUTPUT);

pinMode(tombol, INPUT);

void loop(){

nilai= digitalRead(tombol);

if(nilai == 1){

digitalWrite(led, HIGH);
}

else{

digitalWrite(led, LOW);

}
PRAKTIKUM XIII

DHT 11/22

Coding :

#include "DHT.h"

#define pinDHT 2

#define tipeDHT DHT11

DHT sensorDHT(pinDHT, tipeDHT);

float h, t;

void setup() {

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

Serial.begin(9600);

Serial.println("Percobaan Sensor DHT11!");

Serial.println("Inisialisasi");
for(int i = 0; i < 10; i++){

Serial.print("==");

delay(500);

Serial.println();

Serial.println("Mulai!");

delay(2000);

void loop() {

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

// Pembacaan Sensor mungkin membutuhkan waktu 2 detik.

float h = sensorDHT.readHumidity();

// Baca Sensor dalam mode Celcius

float t = sensorDHT.readTemperature();

if (isnan(h) || isnan(t)) {

Serial.println("Pembacaan Sensor DHT11 Gagal!");

return;

Serial.print("Kelembaban Udara : ");

Serial.print(h);

Serial.println(" %");

Serial.print("Suhu Udara : ");


Serial.print(t);

Serial.println(" C");

delay(500);

}
PRAKTIKUM XIV

STEP MOTOR

Coding :

#include <Servo.h>

Servo myservo; // create servo object to control a servo

// twelve servo objects can be created on most boards

int pos = 0; // variable to store the servo position

void setup() {

myservo.attach(9); // attaches the servo on pin 9 to the servo object

}
void loop() {

for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees

// in steps of 1 degree

myservo.write(pos); // tell servo to go to position in variable 'pos'

delay(15); // waits 15ms for the servo to reach the position

for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees

myservo.write(pos); // tell servo to go to position in variable 'pos'

delay(15); // waits 15ms for the servo to reach the position

}
PRAKTIKUM XV

ULTRASONIC SENSOR + LCD

Coding :

#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

const int trigPin = 11;

const int echoPin = 10;

const int led = 13;

void setup()

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

pinMode(led, OUTPUT);
lcd.begin(16, 2);

lcd.print ("Ultrasonic ");

lcd.setCursor(0, 1);

lcd.print ("Range Meter");

delay (5000);

long duration, r;

float distance;

void loop()

lcd.clear();

lcd.print("Distance in cm");

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

long r = 3.4 * duration / 2;

float distance = r / 100.00;

lcd.setCursor(0, 1);

lcd.print(distance);

delay (300);

if(distance<10)
{

digitalWrite(led,HIGH);

else

digitalWrite(led,LOW);

delay(300);

Anda mungkin juga menyukai