0

I am making an attempt to put LED headlights in an RC car I am building. I want the headlights to turn on when I click circle on a PlayStation 4 Dual Shock controller. I currently have it working except the LED is very dim and not near as bright as if I just power it from the 5v pin on the arduino board. Since I want it to only turn on when circle is pressed I have it connected to digital pin 7. Here is my code. Any help would be much appreciated!

/*
 Example sketch for the PS4 Bluetooth library - developed by Kristian Lauszus
 For more information visit my blog: http://blog.tkjelectronics.dk/ or
 send me an e-mail: [email protected]
 */
#include <PS4BT.h>
#include <usbhub.h>
#include <Servo.h>
// Satisfy the IDE, which needs to see the include statment in the ino too.
#ifdef dobogusinclude
#include <spi4teensy3.h>
#include <SPI.h>
#endif
USB Usb;
//USBHub Hub1(&Usb); // Some dongles have a hub inside
BTD Btd(&Usb); // You have to create the Bluetooth Dongle instance like so
Servo servo1;
Servo servo2;
/* You can create the instance of the PS4BT class in two ways */
// This will start an inquiry and then pair with the PS4 controller - you only have to do this once
// You will need to hold down the PS and Share button at the same time, the PS4 controller will then start to blink rapidly indicating that it is in paring mode
PS4BT PS4(&Btd, PAIR);
// After that you can simply create the instance like so and then press the PS button on the device
//PS4BT PS4(&Btd);
const int headlights = 7;
bool printAngle, printTouch;
uint8_t oldL2Value, oldR2Value;
void setup()
{
 Serial.begin(115200);
#if !defined(__MIPSEL__)
 while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
#endif
 if (Usb.Init() == -1)
 {
 Serial.print(F("\r\nOSC did not start"));
 while (1); // Halt
 }
 Serial.print(F("\r\nPS4 Bluetooth Library Started"));
 pinMode (3, OUTPUT);
 pinMode (5, OUTPUT);
 servo1.attach (3);
 servo2.attach (5);
}
void loop()
{
 Usb.Task();
 if (PS4.connected())
 {
 servo1.write(map(PS4.getAnalogHat(RightHatX), 0, 255, 50, 0));
 servo2.write(map(PS4.getAnalogButton(R2), 0, 255, 90, 0));
 }
 else
 {
 servo1.write (25);
 servo2.write (90);
 }
 if (PS4.getAnalogHat(LeftHatX) > 137 || PS4.getAnalogHat(LeftHatX) < 117 || PS4.getAnalogHat(LeftHatY) > 137 || PS4.getAnalogHat(LeftHatY) < 117 || PS4.getAnalogHat(RightHatX) > 137 || PS4.getAnalogHat(RightHatX) < 117 || PS4.getAnalogHat(RightHatY) > 137 || PS4.getAnalogHat(RightHatY) < 117)
 {
 Serial.print(F("\r\nLeftHatX: "));
 Serial.print(PS4.getAnalogHat(LeftHatX));
 Serial.print(F("\tLeftHatY: "));
 Serial.print(PS4.getAnalogHat(LeftHatY));
 Serial.print(F("\tRightHatX: "));
 Serial.print(PS4.getAnalogHat(RightHatX));
 Serial.print(F("\tRightHatY: "));
 Serial.print(PS4.getAnalogHat(RightHatY));
 }
 if (PS4.getButtonClick(PS)) {
 Serial.print(F("\r\nPS"));
 PS4.disconnect();
 }
 else {
 if (PS4.getButtonClick(CIRCLE)) {
 Serial.print(F("\r\nCircle"));
 digitalWrite(headlights, HIGH);
 }
 if (PS4.getButtonClick(CROSS)) {
 Serial.print(F("\r\nCross"));
 digitalWrite(headlights, LOW);
 }
 if (PS4.getButtonClick(TRIANGLE)) {
 Serial.print(F("\r\nTraingle"));
 PS4.setRumbleOn(RumbleLow);
 }
 if (PS4.getButtonClick(SQUARE)) {
 Serial.print(F("\r\nSquare"));
 PS4.setLedFlash(0, 0); // Turn off blinking
 }
 if (PS4.getButtonClick(UP)) {
 Serial.print(F("\r\nUp"));
 PS4.setLed(Red);
 } if (PS4.getButtonClick(RIGHT)) {
 Serial.print(F("\r\nRight"));
 PS4.setLed(Blue);
 } if (PS4.getButtonClick(DOWN)) {
 Serial.print(F("\r\nDown"));
 PS4.setLed(Yellow);
 } if (PS4.getButtonClick(LEFT)) {
 Serial.print(F("\r\nLeft"));
 PS4.setLed(Green);
 }
 if (PS4.getButtonClick(L1))
 Serial.print(F("\r\nL1"));
 if (PS4.getButtonClick(L3))
 Serial.print(F("\r\nL3"));
 if (PS4.getButtonClick(R1))
 Serial.print(F("\r\nR1"));
 if (PS4.getButtonClick(R3))
 Serial.print(F("\r\nR3"));
 if (PS4.getButtonClick(SHARE))
 Serial.print(F("\r\nShare"));
 if (PS4.getButtonClick(OPTIONS)) {
 Serial.print(F("\r\nOptions"));
 printAngle = !printAngle;
 }
 if (PS4.getButtonClick(TOUCHPAD)) {
 Serial.print(F("\r\nTouchpad"));
 printTouch = !printTouch;
 }
 }
 }
CharlieHanson
1,4301 gold badge11 silver badges25 bronze badges
asked Jul 2, 2015 at 4:24

1 Answer 1

3

You forgot to set headlights as an output, meaning that you're attempting to power the LED through the 20k-50kohm input pullup.

answered Jul 2, 2015 at 4:35

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.