#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define CE_PIN   9
#define CSN_PIN 10

const uint64_t pipe = 0xE8E8F0F0E1LL; // Define the transmit pipe

RF24 radio(CE_PIN, CSN_PIN); // Create a Radio

int joystick[7];  // 7 element

int bt1 = 2; //motor1
int bt2 = 3; //motor2
int bt3 = 4; //motor3
int bt4 = 5; //motor4
int bt5 = 6; //buzzer
int bt6 = 7; //led light
int bt7 = 8; //led light

int ledstate = HIGH;
int ledpin;
int buttonstate;
int lastbuttonstate = LOW;

unsigned long lastdebouncetime = 0;
unsigned long debouncedelay = 50;

//DBZ

void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe(pipe);
  radio.stopListening();
  
  //declare pinMode for all buttons and initial state
  pinMode(bt1,INPUT_PULLUP);
  pinMode(bt2,INPUT_PULLUP);
  pinMode(bt3,INPUT_PULLUP);
  pinMode(bt4,INPUT_PULLUP);
  pinMode(bt5,INPUT_PULLUP);
  pinMode(bt6,INPUT_PULLUP); //led
  pinMode(bt7,INPUT_PULLUP); //led

  digitalWrite(ledpin, ledstate);
}

void loop() {
  {
  int reading = digitalRead(bt6);
  if(reading != lastbuttonstate){
    lastdebouncetime = millis();
  }
  if((millis() - lastdebouncetime) > debouncedelay){
    if (reading != buttonstate){
      buttonstate = reading;
    if (buttonstate == LOW){
      ledstate = !ledstate;
    }
    }
  }
digitalWrite(ledpin, ledstate);
lastbuttonstate = reading;
} 
  joystick[0] = digitalRead(bt1);
  joystick[1] = digitalRead(bt2);
  joystick[2] = digitalRead(bt3);
  joystick[3] = digitalRead(bt4);
  joystick[4] = digitalRead(bt5);
  joystick[5] = ledstate; //led
  joystick[6] = digitalRead(bt7);
   
  radio.write( joystick, sizeof(joystick) );
  delay(10);
}
