You are on page 1of 8

Laporan Praktikum

Sistem Tertanam

Serial
Communication

Nama: Valentino Ibrahim


NIM: 13319018
Program Studi: D3 Teknologi Komputer

INSTITUT TEKNOLOGI DEL


FAKULTAS INFORMATIKA DAN
TEKNIK ELEKTRO

Laporan Praktikum Sistem Tertanam 1


Instalasi Proteus dan Library

Minggu : 4
Setoran : Softcopy

Batas Waktu : Jumat, 26 Februari 2021


Setoran
Tujuan : Melatih kemampuan mahasiswa dalam pemahaman mengenai
Serial Communication dan dapat mengetahui tipe tipe
communication pada arduino

Example 1.6

Rangkaian:

Kode Program:

Master

#include<SPI.h>

#define LED 7

#define ipbutton 0

int buttonval;

int x;
void setup(void)

{ Serial.begin(9600);

pinMode(LED,OUTPUT);

SPI.begin();

SPI.setClockDivider(SPI_CLOCK_DIV8);

digitalWrite(SS,HIGH);

void loop() {

byte Mastersend,Masterreceive;

buttonval = analogRead(ipbutton);

Serial.println(buttonval);

if(buttonval > 500){

x = 1;

else{

x=0;

digitalWrite(SS,LOW);

Mastersend = x;

Masterreceive=SPI.transfer(Mastersend);

if(Mastersend==0)

{ digitalWrite(LED,HIGH);
Serial.println("Master LED ON");

else{ digitalWrite(LED,L

OW);

Serial.println("Master LED OFF");

delay(500);

Slave

#include <SPI.h>

#define LEDpin 7

#define buttonpin 0

volatile boolean received;

volatile byte Slavereceived,Slavesend;

int buttonval;

int x;
void setup()

{ Serial.begin(9600);

pinMode(LEDpin,OUTPUT);

pinMode(MISO,OUTPUT);

SPCR != _BV(SPE);

received = false;
SPI.attachInterrupt();

ISR(SPI_STC_vect)

{ Slavereceived =

SPDR; received = true;

void loop()

{ if(received

){

Serial.println(Slavereceived);

if(Slavereceived ==1)

{ digitalWrite(LEDpin,HIGH);

Serial.println("Slave LED ON");

else{ digitalWrite(LEDpin,L

OW);

Serial.println("Slave LED OFF");

buttonval=analogRead(buttonpin);

Serial.println(buttonval);

if(buttonval>500){

x=1;

}
else{

x=0;

Slavesend=x;

SPDR=Slavesend;

delay(500);

}
Example 2.5

Rangkaian:

Kode Program:

Master

#include <Wire.h>

int x=0;

void setup()

{ Wire.begin(

9);

Wire.onReceive(receiveEvent);

Serial.begin(9600);

void receiveEvent(int bytes){

x=Wire.read();

}
void loop()

{ Serial.println(

x); delay(300);

Slave

#include <Wire.h>

int x=0;

void setup()

{ Wire.begin

();

void loop()

{ Wire.beginTransmission(

9); Wire.write(x);

Wire.endTransmission(); x+

+;

if(x>5)x=0;

delay(100);

You might also like