• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
13
0
0

Teks penuh

(1)

SKETCH PROGAM

………

/ Project 1 Creating a Wireless Remote Control, Transmitter Sketch By

Berry Sebayang

Pernyataan diatas digunakan sebagai komentar

………

………

#include <VirtualWire.h> #include <LiquidCrystal.h>

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";

(2)

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

………

……… }

(3)

………

……… 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();

(4)

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();

(5)

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();

(6)

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);

(7)

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

(8)

………

……… #include <VirtualWire.h>

#include <LiquidCrystal.h>

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);

(9)

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();

(10)

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);

(11)

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” ………

(12)

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

(13)

Referensi

Dokumen terkait

Pada penelitian ini penulis akan mengenali tulisan tangan berupa angka arab timur, berdasarkan data dari hasil pra pengolahan citra dan ekstraksi ciri dijadikan input pada proses

Tujuan utama analisis cluster adalah mengetahui struktur data dengan menempatkan kesamaan objek observasi ke dalam satu grup atau dengan mengelompokkan sekumpulan objek ke

Adapunhal yang ingin diketahui oleh peneliti dalam penelitian ini, meliputi: (1) bagaimana kemampuan siswa menulis karangan persuasi sebelum diberi perlakuan menggunakan media

Secara umum, semua kegiatan pencegahan dan pengendalian serta surveilans infeksi rumah sakit dilaksanakan secara terus menerus oleh seluruh pegawai rumah sakit

Pada setiap titik ukur mengindikasikan zona nyaman, namun sama seperti gambar sebelumnya bahwa nilai Temperatur Efektif pada titik A, C, G, dan I yang merupakan

Mengakibatkan kawasan Malioboro dari sisi pedestrian berada pada kondisi buruk (jenuh), sehingga perlu dilakukan penataan ulang area pejalan kaki di sepanjang Jalan

disimpulkan bahwa pengembangan media presentasi visual powerpoint for android dengan pendekatan kontekstual valid digunakan dan efektif serta praktis dari pada

Penelitian ini mempunyai keterbatasan-keterbatasan yang dapat dijadikan bahan pertimbangan bagi peneliti berikutnya agar mendapatkan hasil penelitian yang lebih baik