Professional Documents
Culture Documents
ModuL Tugas4
ModuL Tugas4
TUGAS I:
Rancang suatu program yang dapat digunakan untuk melakukan perintah
pengendalian dari Host ke Client. Pengendalian LED pada sisi Client
Note: Tiap pasangan harus bekerja pada kanal yang berbeda
PROGRAM HOST
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
struct payload
{
char Kata[20];
};
payload Data;
void setup()
{
Serial.begin(9600);
Radio.begin();
Radio.setChannel(105);
Data.Kata[0]=S;
Data.Kata[1]=i;
Data.Kata[2]=a;
Data.Kata[3]=p; Data.Kata[4]=.;
Data.Kata[5]=.;
Radio.openWritingPipe(pipeTx); delay(50);
Radio.write(&Data, sizeof(Data) ); delay(50);
Radio.openReadingPipe(1, pipeRx);delay(50);
Radio.startListening();
}
void loop()
{
if ( Radio.available() )
{
Radio.read(&Data, sizeof(Data) );
Serial.println(Data.Kata);
}
if (Flag == true)
{
Radio.stopListening(); delay(100);
Radio.openWritingPipe(pipeTx); delay(50);
Radio.write(&Data, sizeof(Data) ); delay(50);
Flag = false;
Radio.openReadingPipe(1, pipeRx); delay(50);
Radio.startListening();
delay(100);
}
void serialEvent()
{
while (Serial.available() )
{
char data = (char)Serial.read();
Data.Kata[n] = data; n++;
if (data == '_') { Flag = true; n=0; }
}
}
PROGRAM CLIENT
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
struct payload
{
char Kata[20];
};
payload Data;
void setup()
{
Serial.begin(9600);
Radio.begin();
Radio.setChannel(110);
Data.Kata[0]='S';
Data.Kata[1]='i';
Data.Kata[2]='a';
Data.Kata[3]='p';
Data.Kata[4]='.';
Data.Kata[5]='.';
pinMode(D5, OUTPUT);
pinMode(D6, OUTPUT);
pinMode(D7, OUTPUT);
pinMode(D8, OUTPUT);
Radio.openWritingPipe(pipeTx); delay(50);
Radio.write(&Data, sizeof(Data) ); delay(50);
Radio.openReadingPipe(1, pipeRx);delay(50);
Radio.startListening();
}
void loop()
{
if ( Radio.available() )
{
Radio.read(&Data, sizeof(Data) );
Serial.println(Data.Kata);
if (Data.Kata[1] == 'H')
{digitalWrite(D5,HIGH); }
else {digitalWrite(D5, LOW); }
if (Flag == true)
{
Radio.stopListening(); delay(100);
Radio.openWritingPipe(pipeTx); delay(50);
Radio.write(&Data, sizeof(Data) ); delay(50);
Flag = false;
Radio.openReadingPipe(1, pipeRx); delay(50);
Radio.startListening();
delay(100);
}
void serialEvent()
{
while (Serial.available() )
{
char data = (char)Serial.read();
Data.Kata[n] = data; n++;
if (data == '_') { Flag = true; n=0; }
}
}
LANGKAH KERJA
a. UpLoad program diatas untuk HOST dan CLIENT dengan alamat Tx dan Rx
sesuai tabel alamat yang disepakati
b. Reset dengan menekan tombol reset. Amati apakah masing-masing
menerima pesan Siap...;
c. Ketikkan secara perintah OHLHL_ pada HOST
d. Amati perintah yang diterima oleh CLIENT dan akibat yang terjadi pada LED
D5, LED D6, LED D7 dan LED D8 ( Gunakan AVO meter untuk Uno)
Pembahasan
Hasil