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