// include the library code:
#include <LiquidCrystal.h>
#include <LedControl.h>
float JoyStickX;
float JoyStickY;
//long remPressID;
bool remoteMode=false;
//[new][old]
int remLoc[2][2]={{4,4},{4,4}};
//add additional squared to make 2x2 to top left
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
LedControl lc(23,25,22,1);
#define JOYSTICK_X_PIN A0
#define JOYSTICK_Y_PIN A1
#define JOYSTICK_BUTTON_PIN 34
#include <IRremote.h>
const int RECV_PIN = 31; // signal pin connected to pin 13
void setup() {
lcd.begin(16, 2);
lc.shutdown(0,false);
lc.setIntensity(0,0);
lc.clearDisplay(0);
pinMode(JOYSTICK_BUTTON_PIN, INPUT);
digitalWrite(JOYSTICK_BUTTON_PIN, HIGH);
Serial.begin(9600);
IrReceiver.begin(RECV_PIN); // setup and assign receive pin
// Print a message to the LCD.
//lcd.print("deez NUTS!!!");
lc.setLed(0,4,2,true);
}
void loop() {
JoyStickX = map(analogRead(JOYSTICK_X_PIN), 0, 1023, -1000, 1000)/20000.0;
JoyStickY = map(analogRead(JOYSTICK_Y_PIN), 0, 1023, -1000, 1000)/20000.0;
//lcd.setCursor(0,1);
if (digitalRead(JOYSTICK_BUTTON_PIN) == 0){
if (remoteMode){
remoteMode=false;
lcd.setCursor(0,0);
lcd.print("Joystick Mode");
}
//lcd.print("press");
}
else{
//lcd.print("relea");
}
if (IrReceiver.decode()) { // Returns 0 if no data ready, 1 if data ready.
//remPressID=IrReceiver.decodedIRData.decodedRawData;
//Serial.print("Code: ");
Serial.println(IrReceiver.decodedIRData.decodedRawData);
switch (IrReceiver.decodedIRData.decodedRawData){
case 4244832000:
//up
if (remLoc[0][0]<=8){
remLoc[0][0]=remLoc[0][0]+1;
}
break;
case 1738080000:
//down
if (remLoc[0][0]>=0){
remLoc[0][0]=remLoc[0][0]-1;
}
break;
case 534839040:
//left
if (remLoc[0][1]>=0){
remLoc[0][1]=remLoc[0][1]+1;
}
break;
case 1871773440:
//right
if (remLoc[0][1]<=8){
remLoc[0][1]=remLoc[0][1]-1;
}
break;
case 1570963200:
//mode switch
if (!remoteMode){
remoteMode=true;
lcd.setCursor(0,0);
lcd.print("Remote Mode ");
}
break;
}
lcd.setCursor(0,1);
lcd.print(IrReceiver.decodedIRData.decodedRawData);
// IrReceiver.decodedIRData.decodedRawData returns the raw decoded value, 32 bits
IrReceiver.resume(); // ready to receive next value
}
//==================draw code========================
}