Skip to content

Commit d9dfa3c

Browse files
committed
Show how to control the light and rumble inside the PS4 controller
1 parent 7e1feed commit d9dfa3c

File tree

2 files changed

+53
-16
lines changed

2 files changed

+53
-16
lines changed

examples/Bluetooth/PS4BT/PS4BT.ino

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ PS4BT PS4(&Btd, PAIR);
2525
//PS4BT PS4(&Btd);
2626

2727
boolean printAngle, printTouch;
28+
uint8_t oldL2Value, oldR2Value;
2829

2930
void setup() {
3031
Serial.begin(115200);
@@ -56,28 +57,46 @@ void loop() {
5657
Serial.print(F("\tR2: "));
5758
Serial.print(PS4.getAnalogButton(R2));
5859
}
60+
if (PS4.getAnalogButton(L2) != oldL2Value || PS4.getAnalogButton(R2) != oldR2Value) // Only write value if it's different
61+
PS4.setRumbleOn(PS4.getAnalogButton(L2), PS4.getAnalogButton(R2));
62+
oldL2Value = PS4.getAnalogButton(L2);
63+
oldR2Value = PS4.getAnalogButton(R2);
64+
5965
if (PS4.getButtonClick(PS)) {
6066
Serial.print(F("\r\nPS"));
6167
PS4.disconnect();
6268
}
6369
else {
64-
if (PS4.getButtonClick(TRIANGLE))
70+
if (PS4.getButtonClick(TRIANGLE)) {
6571
Serial.print(F("\r\nTraingle"));
66-
if (PS4.getButtonClick(CIRCLE))
72+
PS4.setRumbleOn(RumbleLow);
73+
}
74+
if (PS4.getButtonClick(CIRCLE)) {
6775
Serial.print(F("\r\nCircle"));
68-
if (PS4.getButtonClick(CROSS))
76+
PS4.setRumbleOn(RumbleHigh);
77+
}
78+
if (PS4.getButtonClick(CROSS)) {
6979
Serial.print(F("\r\nCross"));
70-
if (PS4.getButtonClick(SQUARE))
80+
PS4.setLedFlash(10, 10); // Set it to blink rapidly
81+
}
82+
if (PS4.getButtonClick(SQUARE)) {
7183
Serial.print(F("\r\nSquare"));
84+
PS4.setLedFlash(0, 0); // Turn off blinking
85+
}
7286

73-
if (PS4.getButtonClick(UP))
87+
if (PS4.getButtonClick(UP)) {
7488
Serial.print(F("\r\nUp"));
75-
if (PS4.getButtonClick(RIGHT))
89+
PS4.setLed(Red);
90+
} if (PS4.getButtonClick(RIGHT)) {
7691
Serial.print(F("\r\nRight"));
77-
if (PS4.getButtonClick(DOWN))
92+
PS4.setLed(Blue);
93+
} if (PS4.getButtonClick(DOWN)) {
7894
Serial.print(F("\r\nDown"));
79-
if (PS4.getButtonClick(LEFT))
95+
PS4.setLed(Yellow);
96+
} if (PS4.getButtonClick(LEFT)) {
8097
Serial.print(F("\r\nLeft"));
98+
PS4.setLed(Green);
99+
}
81100

82101
if (PS4.getButtonClick(L1))
83102
Serial.print(F("\r\nL1"));

examples/PS4USB/PS4USB.ino

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ USB Usb;
1515
PS4USB PS4(&Usb);
1616

1717
boolean printAngle, printTouch;
18+
uint8_t oldL2Value, oldR2Value;
1819

1920
void setup() {
2021
Serial.begin(115200);
@@ -47,26 +48,43 @@ void loop() {
4748
Serial.print(F("\tR2: "));
4849
Serial.print(PS4.getAnalogButton(R2));
4950
}
51+
if (PS4.getAnalogButton(L2) != oldL2Value || PS4.getAnalogButton(R2) != oldR2Value) // Only write value if it's different
52+
PS4.setRumbleOn(PS4.getAnalogButton(L2), PS4.getAnalogButton(R2));
53+
oldL2Value = PS4.getAnalogButton(L2);
54+
oldR2Value = PS4.getAnalogButton(R2);
5055

5156
if (PS4.getButtonClick(PS))
5257
Serial.print(F("\r\nPS"));
53-
if (PS4.getButtonClick(TRIANGLE))
58+
if (PS4.getButtonClick(TRIANGLE)) {
5459
Serial.print(F("\r\nTraingle"));
55-
if (PS4.getButtonClick(CIRCLE))
60+
PS4.setRumbleOn(RumbleLow);
61+
}
62+
if (PS4.getButtonClick(CIRCLE)) {
5663
Serial.print(F("\r\nCircle"));
57-
if (PS4.getButtonClick(CROSS))
64+
PS4.setRumbleOn(RumbleHigh);
65+
}
66+
if (PS4.getButtonClick(CROSS)) {
5867
Serial.print(F("\r\nCross"));
59-
if (PS4.getButtonClick(SQUARE))
68+
PS4.setLedFlash(10, 10); // Set it to blink rapidly
69+
}
70+
if (PS4.getButtonClick(SQUARE)) {
6071
Serial.print(F("\r\nSquare"));
72+
PS4.setLedFlash(0, 0); // Turn off blinking
73+
}
6174

62-
if (PS4.getButtonClick(UP))
75+
if (PS4.getButtonClick(UP)) {
6376
Serial.print(F("\r\nUp"));
64-
if (PS4.getButtonClick(RIGHT))
77+
PS4.setLed(Red);
78+
} if (PS4.getButtonClick(RIGHT)) {
6579
Serial.print(F("\r\nRight"));
66-
if (PS4.getButtonClick(DOWN))
80+
PS4.setLed(Blue);
81+
} if (PS4.getButtonClick(DOWN)) {
6782
Serial.print(F("\r\nDown"));
68-
if (PS4.getButtonClick(LEFT))
83+
PS4.setLed(Yellow);
84+
} if (PS4.getButtonClick(LEFT)) {
6985
Serial.print(F("\r\nLeft"));
86+
PS4.setLed(Green);
87+
}
7088

7189
if (PS4.getButtonClick(L1))
7290
Serial.print(F("\r\nL1"));

0 commit comments

Comments
 (0)