You are on page 1of 6

char DataTegangan1[6];

char DataTegangan2[6];

char DataTegangan3[6];

char DataArus[6];

void setup() {

// put your setup code here, to run once:

Serial.begin(9600);

Serial.print("Test");

pinMode(7, OUTPUT); //TRXCE

pinMode(9, OUTPUT); //TXEN

pinMode(8, OUTPUT); //PWR_UP

pinMode(10, OUTPUT); //CSN

pinMode(13, OUTPUT); //SCK

pinMode(11, OUTPUT); //MOSI

pinMode(12, INPUT); // MISO

pinMode(3, INPUT); //DR

pinMode(4, INPUT); //CD

pinMode(2, INPUT); //AM

//default mode

digitalWrite(10, HIGH);

digitalWrite(13, LOW);

digitalWrite(10, LOW);

SendCommand(0x09); // Write Xof

SendCommand(0xDF);
digitalWrite(10, HIGH);

digitalWrite(10, LOW);

SendCommand(0x00); // Write Config Reg

SendCommand(0x6C);

SendCommand(0x00);

SendCommand(0x44);

SendCommand(0x20);

SendCommand(0x20);

SendCommand(0x01);

SendCommand(0x02);// Addrs RX

SendCommand(0x03);

SendCommand(0x04);

SendCommand(0xDF);

digitalWrite(10, HIGH);

BacaConfigRegister();

void loop() {

// put your main code here, to run repeatedly:

StandbyRX();

digitalWrite(7, HIGH);//Receiver Powered UP

while(1){
int Stats = digitalRead(4); // Baca CD

if (Stats == HIGH) break;

while(1){

int Stats = digitalRead(2); // Baca AM

if (Stats == HIGH) break;

while(1){

int Stats = digitalRead(3); // Baca DR

if (Stats == HIGH) break;

digitalWrite(7, LOW);//Receiver Powered DOWN

digitalWrite(10, LOW);

SendCommand(0x24); // Read RX_Payload

for(int j = 0; j<3; j++){

DataTegangan1[j] = BacaData();

Serial.print(DataTegangan1[j]);

Serial.print(";");

for(int j = 0; j<3; j++){

DataTegangan2[j] = BacaData();

Serial.print(DataTegangan2[j]);

//int NilaiTeg = DataTegangan;

Serial.print(";");
for(int j = 0; j<3; j++){

DataTegangan3[j] = BacaData();

Serial.print(DataTegangan3[j]);

//int NilaiTeg = DataTegangan;

Serial.print(";");

for(int j = 0; j<4; j++){

DataArus[j] = BacaData();

Serial.print(DataArus[j]);

//int NilaiArus = DataArus;

Serial.println(";");

//String data_kirim = String (NilaiTeg)+";"+String(NilaiArus)+";";

digitalWrite(10, HIGH);

void StandbyRX(){

digitalWrite(9, LOW); //TXEN

digitalWrite(8, HIGH);

digitalWrite(7, LOW);

void BacaConfigRegister(){

digitalWrite(10, LOW);

Serial.println("Start");

SendCommand(0x10);

Baca(10);
Serial.println("Selesai");

digitalWrite(10, HIGH);

void SendCommand(char Data){

int O;

for(int i = 0; i<8; i++){

O = Data & (1 << (7-i));

if (O == (1 << (7-i))) digitalWrite(11, HIGH);

else digitalWrite(11, LOW);

Oscar();

unsigned char BacaData(){

int DataBit;

unsigned char Dataku = 0x00;

for(int i = 0; i<8; i++){

DataBit = digitalRead(12);

if(DataBit == HIGH){

Dataku = Dataku | (1 << (7-i));

else Dataku = Dataku & (0xFE << (7-i));

Oscar();

return Dataku;

void Baca(int kali){


int DataBit;

for(int j = 0; j<kali; j++){

for(int i = 0; i<8; i++){

DataBit = digitalRead(12);

if(i == 7)Serial.println(DataBit);

else Serial.print(DataBit);

Oscar();

void Oscar(){

digitalWrite(13, HIGH);

delay(1);

digitalWrite(13, LOW);

delay(1);

You might also like