Perancangan Sistemremote Dalam Mengontrol Beban Dengan Media Komunikasi RF Berbasis Mikrokontroleratmega 328P

SKETCH PROGAM
………………………………………………………………………………
/ Project 1 Creating a Wireless Remote Control, Transmitter Sketch By
Berry Sebayang

Pernyataan diatas digunakan sebagai komentar
………………………………………………………………………………
………………………………………………………………………………
#include
#include

Pustaka yang digunakan untuk mengontrol pengiriman data dan LCD
………………………………………………………………………………
………………………………………………………………………………
const int PIN_RS = 12;
const int PIN_E = 11;
const int PIN_DB4 = 7;
const int PIN_DB5 = 8;
const int PIN_DB6 = 9;
const int PIN_DB7 = 10;


Deretan perintah diatas digunakan untuk mendefinisikan konstanta pin-pin
Mikrokontroler ATMega 328P yang dipakai dalam rangkaian LCD
………………………………………………………………………………
………………………………………………………………………………
LiquidCrystal lcd(PIN_RS,PIN_E,PIN_DB4,PIN_DB5,PIN_DB6,PIN_DB7);

Digunakan untuk pembuatan objek bernama LCD
………………………………………………………………………………
………………………………………………………………………………
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;

Digunakan sebagai virtual wire oleh modul RF
………………………………………………………………………………
………………………………………………………………………………
const char *onA5 = "a";
const char *offA5 = "b";
const char *onA4 = "c";
const char *offA4 = "d";
const char *onA3 = "e";

const char *offA3 = "f";
const char *onA2 = "g";

Universitas Sumatera Utara

const char *offA2 = "h";
const char *onA1 = "i";
const char *offA1 = "j";
const char *onA0 = "k";
const char *offA0 = "l";
const char *on13 = "m";
const char *off13 = "n";

Deretan perintah diatas digunakan untuk mendefinisikan konstanta
karakter yang pada saat tombol ditekan dan tidak ditekan
………………………………………………………………………………
……………………………………………………………………………....
void setup()
{


Digunakan untuk menjalankan fungsi pertama kali
………………………………………………………………………………
………………………………………………………………………………
vw_set_ptt_inverted(true);
vw_setup(300);
vw_set_tx_pin(1);

Digunakan sebagai kontrol kecepatan transmisi data dan dihubungkan
pada mikrokontroler sebagai pin transmisi data ke modul RF
………………………………………………………………………………
………………………………………………………………………………
pinMode(A5, INPUT);
pinMode(A4, INPUT);
pinMode(A3, INPUT);
pinMode(A2, INPUT);
pinMode(A1, INPUT);
pinMode(A0, INPUT);
pinMode(13, INPUT);

Digunakan untuk mendefenisikan pin mode yang digunakan pada

Mikrokontroler Atmega 328P
………………………………………………………………………………
………………………………………………………………………………
lcd.begin(16,2);

Digunakan untuk memberitahukan LCD yang digunakan mempunyai 16
karakter dan jumlah baris adalah 2
………………………………………………………………………………
………………………………………………………………………………
}

Digunakan untuk menutup fungsi pertama kali

Universitas Sumatera Utara

………………………………………………………………………………

………………………………………………………………………………
void loop()
{


Fungsi yang secara otomatis dijalankan oleh mikrokontroler ATMega
328P setelah funggsi setup dijalankan
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(A5)==HIGH)
{
lcd.clear();
lcd.print("output 1");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
vw_send((uint8_t *)onA5, strlen(onA5));
vw_wait_tx();
delay(50);
}

Apabila pin A5 “HIGH”, print LCD “output 1 ON” dan digunakan untuk
mengirim karakter “a”
………………………………………………………………………………

………………………………………………………………………………
if (digitalRead(A5)==LOW)
{
lcd.clear();
lcd.print("output 1");
lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
vw_send((uint8_t *)offA5, strlen(offA5));
vw_wait_tx();
delay(50);
}

Apabila pin A5 “LOW”, print LCD “output 1 OFF” dan digunakan untuk
mengirim karakter “b”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(A4)==HIGH)
{
lcd.clear();

lcd.print("output 2");
lcd.setCursor(0, 1);

Universitas Sumatera Utara

lcd.print("ON");
delay(200);
vw_send((uint8_t *)onA4, strlen(onA4));
vw_wait_tx();
delay(50);
}

Apabila pin A4 “HIGH”, print LCD “output 2ON” dan digunakan untuk
mengirim karakter “c”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(A4)==LOW)
{
lcd.clear();
lcd.print("output 2");

lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
vw_send((uint8_t *)offA4, strlen(offA4));
vw_wait_tx();
delay(50);
}

Apabila pin A4 “LOW”, print LCD “output 2OFF” dan digunakan untuk
mengirim karakter “d”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(A3)==HIGH)
{
lcd.clear();
lcd.print("output 3");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
vw_send((uint8_t *)onA3, strlen(onA3));

vw_wait_tx();
delay(50);
}

Apabila pin A3 “HIGH”, print LCD “output 3ON” dan digunakan untuk
mengirim karakter “e”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(A3)==LOW)
{
lcd.clear();
lcd.print("output 3");
lcd.setCursor(0, 1);
lcd.print("OFF");

Universitas Sumatera Utara

delay(200);
vw_send((uint8_t *)offA3, strlen(offA3));
vw_wait_tx();

delay(50);
}

Apabila pin A3 “LOW”, print LCD “output 3OFF” dan digunakan untuk
mengirim karakter “f”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(A2)==HIGH)
{
lcd.clear();
lcd.print("output 4");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
vw_send((uint8_t *)onA2, strlen(onA2));
vw_wait_tx();
delay(50);
}

Apabila pin A2 “HIGH”, print LCD “output 4ON” dan digunakan untuk

mengirim karakter “g”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(A2)==LOW)
{
lcd.clear();
lcd.print("output 4");
lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
vw_send((uint8_t *)offA2, strlen(offA2));
vw_wait_tx();
delay(50);
}

Apabila pin A2 “LOW”, print LCD “output 4OFF” dan digunakan untuk
mengirim karakter “h”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(A1)==HIGH)
{
lcd.clear();
lcd.print("output 5");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);

Universitas Sumatera Utara

vw_send((uint8_t *)onA1, strlen(onA1));
vw_wait_tx();
delay(50);
}

Apabila pin A1 “HIGH”, print LCD “output 5ON” dan digunakan untuk
mengirim karakter “i”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(A1)==LOW)
{
lcd.clear();
lcd.print("output 5");
lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
vw_send((uint8_t *)offA1, strlen(offA1));
vw_wait_tx();
delay(50);
}

Apabila pin A1 “LOW”, print LCD “output 5OFF” dan digunakan untuk
mengirim karakter “j”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(A0)==HIGH)
{
lcd.clear();
lcd.print("output 6");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
vw_send((uint8_t *)onA0, strlen(onA0));
vw_wait_tx();
delay(50);
}

Apabila pin A0 “HIGH”, print LCD “output 6ON” dan digunakan untuk
mengirim karakter “k”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(A0)==LOW)
{
lcd.clear();
lcd.print("output 6");
lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
vw_send((uint8_t *)offA0, strlen(offA0));

Universitas Sumatera Utara

vw_wait_tx();
delay(50);
}

Apabila pin A0 “LOW”, print LCD “output 6OFF” dan digunakan untuk
mengirim karakter “l”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(13)==HIGH)
{
lcd.clear();
lcd.print("output 7");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
vw_send((uint8_t *)on13, strlen(on13));
vw_wait_tx();
delay(50);
}

Apabila pin 13 “HIGH”, print LCD “output 7ON” dan digunakan untuk
mengirim karakter “m”
………………………………………………………………………………
………………………………………………………………………………
if (digitalRead(13)==LOW)
{
lcd.clear();
lcd.print("output 7");
lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
vw_send((uint8_t *)off13, strlen(off13));
vw_wait_tx();
delay(50);
}

Apabila pin 13 “LOW”, print LCD “output 7OFF” dan digunakan untuk
mengirim karakter “n”
………………………………………………………………………………
………………………………………………………………………………
}
Digunakan sebagai akhir dari fungsi

………………………………………………………………………………
………………………………………………………………………………
// Project 2 Creating a Wireless Remote Control, Receiver Sketch By Berry
Sebayang

Pernyataan diatas digunakan sebagai komentar

Universitas Sumatera Utara

………………………………………………………………………………

………………………………………………………………………………
#include
#include

Pustaka yang digunakan untuk mengontrol pengiriman data dan LCD
………………………………………………………………………………
………………………………………………………………………………
const int PIN_RS = A1;
const int PIN_E = A0;
const int PIN_DB4 = 2;
const int PIN_DB5 = 3;
const int PIN_DB6 = 4;
const int PIN_DB7 = 5;

Deretan perintah diatas digunakan untuk mendefinisikan konstanta pin-pin
Mikrokontroler ATMega 328P yang dipakai dalam rangkaian
………………………………………………………………………………
………………………………………………………………………………
LiquidCrystal lcd(PIN_RS,PIN_E,PIN_DB4,PIN_DB5,PIN_DB6,PIN_DB7);

Digunakan untuk pembuatan objek bernama LCD
………………………………………………………………………………
………………………………………………………………………………
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;

Digunakan sebagai virtual wire oleh modul RF
………………………………………………………………………………
………………………………………………………………………………
void setup()
{

Digunakan untuk menjalankan fungsi pertama kali
………………………………………………………………………………
………………………………………………………………………………
vw_set_ptt_inverted(true);
vw_setup(300);
vw_set_rx_pin(0);
vw_rx_start();

Digunakan sebagai kontrol kecepatan transmisi data dan dihubungkan
pada mikrokontroler sebagai pin receiver data dari modul RF
………………………………………………………………………………
………………………………………………………………………………
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);

Universitas Sumatera Utara

pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);

Digunakan untuk mendefenisikan pin mode yang digunakan pada
Mikrokontroler ATMega 328P
………………………………………………………………………………
………………………………………………………………………………
lcd.begin(16,2);

Digunakan untuk memberitahukan LCD yang digunakan mempunyai 16
karakter dan jumlah baris adalah 2
………………………………………………………………………………
………………………………………………………………………………
}

Digunakan untuk menutup fungsi pertama kali
………………………………………………………………………………
………………………………………………………………………………
void loop()
{

Fungsi yang secara otomatis dijalankan oleh mikrokontroler Atmega 328P
setelah funggsi setup dijalankan.Sketch dijalankan secara berulang-ulang.
………………………………………………………………………………
………………………………………………………………………………
if (vw_get_message(buf, &buflen))
{
switch(buf[0])
{
Sebagai jalur penerimaan karakter yang dikirim dari Modul RF
transmiter.Kemudian data dikirim ke mikrokontroler.

………………………………………………………………………………
………………………………………………………………………………
case 'a':
digitalWrite(13, HIGH);
lcd.clear();
lcd.print("output 1");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
break;

Diterima karakter “a”, buat pin 13 “HIGH” dan print LCD “output1 ON”
………………………………………………………………………………
………………………………………………………………………………
case 'b':
lcd.clear();
lcd.print("output 1");

Universitas Sumatera Utara

lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
digitalWrite(13, LOW);
break;

Diterima karakter “b”, buat pin 13 “LOW” dan print LCD “output1 OFF”
………………………………………………………………………………
……………………………………………………………………………
case 'c':
lcd.clear();
lcd.print("output 2");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
digitalWrite(12, HIGH);
break;

Diterima karakter “c”, buat pin 12 “HIGH” dan print LCD “output2 ON”
………………………………………………………………………………
………………………………………………………………………………
case 'd':
lcd.clear();
lcd.print("output 2");
lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
digitalWrite(12, LOW);
break;

Diterima karakter “d”, buat pin 12 “LOW” dan print LCD “output2 OFF”
………………………………………………………………………………
………………………………………………………………………………
case 'e':
lcd.clear();
lcd.print("output 3");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
digitalWrite(11, HIGH);
break;

Diterima karakter “e”, buat pin 11 “HIGH” dan print LCD “output3 ON”
………………………………………………………………………………
………………………………………………………………………………
case 'f':
lcd.clear();
lcd.print("output 3");
lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
digitalWrite(11, LOW);
break;

Universitas Sumatera Utara

Diterima karakter “f”, buat pin 11 “LOW” dan print LCD “output3 OFF”
………………………………………………………………………………

………………………………………………………………………………
case 'g':
lcd.clear();
lcd.print("output 4");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
digitalWrite(10, HIGH);
break;

Diterima karakter “g”, buat pin 10 “HIGH” dan print LCD “output4 ON”
………………………………………………………………………………
………………………………………………………………………………
case 'h':
lcd.clear();
lcd.print("output 4");
lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
digitalWrite(10, LOW);
break;

Diterima karakter “h”, buat pin 10 “LOW” dan print LCD “output4 OFF”
………………………………………………………………………………
………………………………………………………………………………
case 'i':
lcd.clear();
lcd.print("output 5");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
digitalWrite(9, HIGH);
break;

Diterima karakter “i”, buat pin 9 “HIGH” dan print LCD “output5 ON”
………………………………………………………………………………
………………………………………………………………………………
case 'j':
lcd.clear();
lcd.print("output 5");
lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
digitalWrite(9, LOW);
break;

Diterima karakter “j”, buat pin 9 “LOW” dan print LCD “output5 OFF”
………………………………………………………………………………
………………………………………………………………………………

Universitas Sumatera Utara

case 'k':
lcd.clear();
lcd.print("output 6");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
digitalWrite(8, HIGH);
break;

Diterima karakter “k”, buat pin 8 “HIGH” dan print LCD “output6 ON”
………………………………………………………………………………
………………………………………………………………………………
case 'l':
lcd.clear();
lcd.print("output 6");
lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
digitalWrite(8, LOW);
break;

Diterima karakter “l”, buat pin 8 “LOW” dan print LCD “output6 OFF”
………………………………………………………………………………
………………………………………………………………………………
case 'm':
lcd.clear();
lcd.print("output 7");
lcd.setCursor(0, 1);
lcd.print("ON");
delay(200);
digitalWrite(7, HIGH);
break;

Diterima karakter “m”, buat pin 7 “HIGH” dan print LCD “output7 ON”
………………………………………………………………………………
………………………………………………………………………………
case 'n':
lcd.clear();
lcd.print("output 7");
lcd.setCursor(0, 1);
lcd.print("OFF");
delay(200);
digitalWrite(7, LOW);
break;

Diterima karakter “n”, buat pin 7 “LOW” dan print LCD “output7 OFF”
………………………………………………………………………………
………………………………………………………………………………
}
}
}
Akhir dari setiap fungsi

………………………………………………………………………………

Universitas Sumatera Utara

Universitas Sumatera Utara