Sie sind auf Seite 1von 8

JOB SHEET P2 :

ANTARMUKA PORT SERIAL ARDUINO


1

Tujuan Praktek :
a. Mampu membuat program pengiriman data dari Arduino ke PC atau sebaliknya melalui serial
monitor.
b. Mampu membuat program pengiriman data dari Arduino ke PC atau sebaliknya melalui program
Processing.

Daftar Perangkat/Komponen :
No

Perangkat/Komponen

Jumlah

No

Perangkat/Komponen

Jumlah

Komputer/Laptop

Resistor 470 untuk RGB LED

Board Arduino Uno

Sensor suhu LM35

Kabel USB A-B

Sensor cahaya LDR

Potensiometer 10k

10

Protoboard

Push Button

11

Kabel jumper

RGB LED

Secukupnya

Page 1 of 8 | Job Sheet P2 : Antarmuka Port Serial Arduino

Kegiatan Praktek
P2.1

P2.2

// Sketch P2.1 : Pantau PBS dari sermon

// Sketch P2.2 : Pantau potensio dari sermon

void setup()
{
Serial.begin(9600);
digitalWrite(2,HIGH); //enable r pull-up
}

void setup()
{
Serial.begin(9600);
}

void loop()
{
int pbs = digitalRead(2);
if (pbs == LOW)
{
Serial.println("PBS = closed");
}
else
Serial.println("PBS = open");
delay(500);
}

void loop()
{
int pot = analogRead(A0);
float potV = pot * 5.0 / 1023;
float potP = (potV / 5.0) * 100;
Serial.print("Nilai pot (desimal) = ");
Serial.println(pot);
Serial.print("Nilai pot (volt) = ");
Serial.println(potV);
Serial.print("Nilai pot (%) = ");
Serial.println(potP);
delay(500);
Serial.println();
}

Page 2 of 8 | Job Sheet P2 : Antarmuka Port Serial Arduino

P2.3

P2.4

// Sketch P2.3 : Pantau PBS dan pot.dr.


sermon

// Sketch P2.4 : Kendali LED dari sermon

String pbsPos = " ";

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

void setup()
{
Serial.begin(9600);
digitalWrite(2,HIGH);
}
void loop()
{
int pbs = digitalRead(2);
if (pbs == LOW)
{
pbsPos = "closed";
}
else
pbsPos = "open";
int pot = analogRead(A0);
float potV = (pot * 5.0) / 1023;
float potP = (potV / 5.0) * 100;
Serial.print ("H"); // kode Header
Serial.print(",");
Serial.print(pbsPos);
Serial.print(",");
Serial.print(potP);

void loop()
{
if (Serial.available() > 0)
{
//baca data serial sebagai integer
int dataLed = Serial.read();
if (dataLed == 49)
// 49 = ASCII "1"
{
digitalWrite(13,HIGH);
}
else if (dataLed == 48) // 48 = ASCII "0"
{
digitalWrite(13,LOW);
}
else (Serial.flush());
}
}

Page 3 of 8 | Job Sheet P2 : Antarmuka Port Serial Arduino

Serial.println(",");
Serial.println();
delay(500);
}

P2.5
// Sketch P2.5 : Kendali RGB LED dr. sermon

void setup()
{
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
Serial.begin(9600);
}
void loop ()
{
if (Serial.available() > 0)
{
//baca data serial sebagai karakter
char dataSer = Serial.read();
switch (datSer)
{
case '2':
blinkPin(2);
break;
case '3':
blinkPin(3);

P2.6
// Sketch P2.6 : Kendali RGB LED dari sermon
// Copyright 2013 Jeremy Blum
//Sending Multiple Variables at once exp.255,0,0
//Define LED Pins
const int RED
=11;
const int GREEN =10;
const int BLUE =9;
//Variables for RGB levels
int rval = 0;
int gval = 0;
int bval = 0;
void setup()
{
Serial.begin(9600); // 9600 baud
//Set pins as outputs
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
}
Page 4 of 8 | Job Sheet P2 : Antarmuka Port Serial Arduino

break;
case '4':
blinkPin(4);
break;
}
}
}
void blinkPin(int pin)
{
digitalWrite(pin, HIGH);
delay(250);
digitalWrite(pin, LOW);
delay(250);
}

void loop()
{
//Keep working as long as data is in the buffer
while (Serial.available() > 0)
{
rval = Serial.parseInt();//first valid int
gval = Serial.parseInt();//second valid int
bval = Serial.parseInt();//third valid int
//display RGB value
Serial.println(rval);
Serial.println(gval);
Serial.println(bval);
Serial.println();
//set LED
analogWrite(RED, rval);
analogWrite(GREEN, gval);
analogWrite(BLUE, bval);
}
}

P2.7a - Arduino

P2.7p - Processing

// Sketch P2.7a : Kirim data pot ke PC


// Copyright 2013 Jeremy Blum

// Sketch P2.7p : Baca data dan ubah warna layar


// Copyright 2013 Jeremy Blum

//Sending POT value to the computer

//Import and initialize serial port library


import processing.serial.*;
Serial port;

const int POT=0; //Pot on Analog Pin 0

Page 5 of 8 | Job Sheet P2 : Antarmuka Port Serial Arduino

int val; //For holding mapped pot value

float brightness = 0; //For holding value from pot

void setup()
{
Serial.begin(9600); //Start Serial
}

void setup()
{
size(500,500); //Window size
port = new Serial(this,"/dev/ttyACM0",9600);
port.bufferUntil('\n'); //Setup port to read
}

void loop()
{
val = map(analogRead(POT),0,1023,0,255);
Serial.println(val); //Send value
delay(50);
}

void draw()
{
background(0,0,brightness); //Updates the window
}
void serialEvent (Serial port)
{
//Gets val
brightness = float(port.readStringUntil('\n'));
}

P2.8a - Arduino

P2.8p - Processsing

// Sketch P2.8a :Kendali RGB LED dari PC


// Copyright 2013 Jeremy Blum

// Sketch P2.8p : Set warna RGB LED


// Copyright 2013 Jeremy Blum

//Sending Multiple Variables at Once


//Define LED Pins
const int RED
=11;
const int GREEN =10;
const int BLUE =9;

import processing.serial.*; //Import Serial Lib.


PImage img;
//Image Object
Serial port;
//Serial Port Object
void setup()
{
Page 6 of 8 | Job Sheet P2 : Antarmuka Port Serial Arduino

//Variables for RGB levels


int rval = 0;
int gval = 0;
int bval = 0;

size(640,256); //Size of HSV image


img = loadImage("hsv.jpg"); //Load in back image
//Open serial port
port = new Serial(this, "/dev/ttyACM0", 9600);
}

void setup()
{
Serial.begin(9600); // 9600 baud
//Set pins as outputs
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);

void draw()
{
background(0);
image(img,0,0);
}

//Black Background
//Overlay image

void mousePressed()
}
{
color c = get(mouseX, mouseY); //Get the RGB
void loop()
// color where mouse was pressed
{
String colors = int(red(c))+","+int(green(c))
//Keep working as long as data is in buffer +","+int(blue(c))+"\n"; //extract values from clr.
while (Serial.available() > 0)
print(colors); //print colors for debugging
{
port.write(colors); //Send values to Arduino
rval = Serial.parseInt(); //1st int
}
gval = Serial.parseInt(); //2nd int
bval = Serial.parseInt(); //3rd int
if (Serial.read() == '\n') //done transmt
{
//set LED
analogWrite(RED, rval);
analogWrite(GREEN, gval);
analogWrite(BLUE, bval);
}
}
}

Page 7 of 8 | Job Sheet P2 : Antarmuka Port Serial Arduino

Do-It-Yoursel (DIY) :
a. Buatlah sistem pemantauan suhu dan cahaya ruangan melalui serial monitor.
--- kumpulkan gambar skematik, flow chart, dan source code (sketch) hari ini --b. Buatlah gambar skematik, analisis program, dan flow chart dari P2.1 sampai P2.8.
--- kumpulkan paling lambat minggu depan --awagyana@gmail.com

Page 8 of 8 | Job Sheet P2 : Antarmuka Port Serial Arduino

Das könnte Ihnen auch gefallen