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";
const char *offA5 = "b"; const char *onA4 = "c"; const char *offA4 = "d"; const char *onA3 = "e"; const char *offA3 = "f"; const char *onA2 = "g";
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
……… ……… }
………
……… 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);
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");
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);
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_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
………
……… #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);
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.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;
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” ……… ………
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