#include <PS4Controller.h>
#include <Wire.h>
#include <SPI.h>
#define DR1 16 //2
#define DR2 17 //15
#define PWMR 4 //13
/////////////////////////////////
#define DL1 15 //16
#define DL2 2 //17
#define PWML 13 //4
void setup() {
pinMode(DL1, OUTPUT);
pinMode(DL2, OUTPUT);
pinMode(PWML, OUTPUT);
pinMode(DR1, OUTPUT);
pinMode(DR2, OUTPUT);
pinMode(PWMR, OUTPUT);
Serial.begin(115200);
PS4.begin("10:06:1c:f4:d5:2e");
Serial.println("Ready.");
}
void loop() {
// Below has all accessible outputs from the controller
if (PS4.isConnected()) {
run(0, 0);
if (PS4.Right()) run(180,-180);
if (PS4.Down()) run(-180,-180);
if (PS4.Up()) run(180,180);
if (PS4.Left()) run(-180,180);
if (PS4.Square()) run(-250,250);
if (PS4.Cross()) run(-250,-250);
if (PS4.Circle()) run(250,-250);
if (PS4.Triangle()) run(250,250);
delay(200);
}
}
void run(int spl, int spr) // ประกาศฟังก์ชัน run(กำลังมอเตอร์ซ้าาย,กำลังมอเตอร์ขวา);
{
if (spl > 0) {
digitalWrite(DL1, LOW);
digitalWrite(DL2, HIGH);
analogWrite(PWML, spl);
}
else if (spl < 0)
{ digitalWrite(DL1, HIGH);
digitalWrite(DL2, LOW);
analogWrite(PWML, -spl);
}
else
{
digitalWrite(DL1, HIGH);
digitalWrite(DL2, HIGH);
}
//////////////////////////////////////
if (spr > 0) {
digitalWrite(DR1, LOW);
digitalWrite(DR2, HIGH);
analogWrite(PWMR, spr);
}
else if (spr < 0)
{
digitalWrite(DR1, HIGH);
digitalWrite(DR2, LOW);
analogWrite(PWMR, -spr);
}
else
{
digitalWrite(DR1, HIGH);
digitalWrite(DR2, HIGH);
}
}
#include <PS4Controller.h>
#include <Wire.h>
#include <SPI.h>
#include <ESP32Servo.h>
#define DR1 16 //2
#define DR2 17 //15
#define PWMR 4 //13
/////////////////////////////////
#define DL1 15 //16
#define DL2 2 //17
#define PWML 13 //4
#define pos1min 0 //ค่าตำแหน่งน้อยสุดที่ยอมให้เซอโว 1 ทำงาน (ตัวยก)
#define pos1max 100 //ค่าตำแหน่งมากสุดที่ยอมให้เซอโว 1 ทำงาน (ตัวยก)
#define pos2min 0 //ค่าตำแหน่งน้อยสุดที่ยอมให้เซอโว 2 ทำงาน (ตัวหนีบ)
#define pos2max 100 //ค่าตำแหน่งมากสุดที่ยอมให้เซอโว 2 ทำงาน (ตัวหนีบ)
int ss1 = 18; // เปิดใช้งาน s2 ที่พอร์ต 3
int ss2 = 4; // เปิดใช้งาน s3 ที่พอร์ต
Servo sv1; // ประกาศการใช้งาน sv1
Servo sv2;
int pos1 = 0;
int pos2 = 0;
int posL = 0;
int posK = 0;
void setup() {
pinMode(DL1, OUTPUT);
pinMode(DL2, OUTPUT);
pinMode(PWML, OUTPUT);
pinMode(DR1, OUTPUT);
pinMode(DR2, OUTPUT);
pinMode(PWMR, OUTPUT);
sv1.attach(ss1); // เรียกใช้งานเตรียมตอบสนองเซอร์โว sv1
sv2.attach(ss2); // เรียกใช้งานเตรียมตอบสนองเซอร์โว sv2
sv1.write(pos1);
sv2.write(pos2);
Serial.begin(115200);
PS4.begin("10:06:1c:f4:d5:2e"); /// กรอกmacAddress
Serial.println("Ready.");
}
void loop() {
// Below has all accessible outputs from the controller
if (PS4.isConnected()) {
run(0, 0);
if (PS4.Right()) run(180,-180);
if (PS4.Down()) run(-180,-180);
if (PS4.Up()) run(180,180);
if (PS4.Left()) run(-180,180);
if (PS4.Square()) run(-250,250);
if (PS4.Cross()) run(-250,-250);
if (PS4.Circle()) run(250,-250);
if (PS4.Triangle()) run(250,250);
if (PS4.UpRight()){ Serial.println("Up Right");}
if (PS4.DownRight()){ Serial.println("Down Right");}
if (PS4.UpLeft()) {Serial.println("Up Left");}
if (PS4.DownLeft()) { Serial.println("Down Left");}
if (PS4.L1()) {sv1.write(pos1=pos1+5);}
if (PS4.R1()){ sv2.write(pos2=pos2+5); }
if (PS4.Share()) {Serial.println("Share Button");}
if (PS4.Options()){ Serial.println("Options Button");}
if (PS4.L3()) {Serial.println("L3 Button");}
if (PS4.R3()){ Serial.println("R3 Button");}
if (PS4.PSButton()){ Serial.println("PS Button");}
if (PS4.Touchpad()) {Serial.println("Touch Pad Button");}
if (PS4.L2()) {
sv1.write(pos1=pos1+5);
}
if (PS4.R2()) {
sv2.write(pos2=pos2-5); }
if (PS4.LStickX()) {
Serial.printf("Left Stick x at %d\n", PS4.LStickX());
}
if (PS4.LStickY()) {
Serial.printf("Left Stick y at %d\n", PS4.LStickY());
}
if (PS4.RStickX()) {
Serial.printf("Right Stick x at %d\n", PS4.RStickX());
}
if (PS4.RStickY()) {
Serial.printf("Right Stick y at %d\n", PS4.RStickY());
}
if (PS4.Charging()) Serial.println("The controller is charging");
if (PS4.Audio()) Serial.println("The controller has headphones attached");
if (PS4.Mic()) Serial.println("The controller has a mic attached");
delay(200);
}
}
void run(int spl, int spr) // ประกาศฟังก์ชัน run(กำลังมอเตอร์ซ้าาย,กำลังมอเตอร์ขวา);
{
if (spl > 0) {
digitalWrite(DL1, LOW);
digitalWrite(DL2, HIGH);
analogWrite(PWML, spl);
}
else if (spl < 0)
{ digitalWrite(DL1, HIGH);
digitalWrite(DL2, LOW);
analogWrite(PWML, -spl);
}
else
{
digitalWrite(DL1, HIGH);
digitalWrite(DL2, HIGH);
}
//////////////////////////////////////
if (spr > 0) {
digitalWrite(DR1, LOW);
digitalWrite(DR2, HIGH);
analogWrite(PWMR, spr);
}
else if (spr < 0)
{
digitalWrite(DR1, HIGH);
digitalWrite(DR2, LOW);
analogWrite(PWMR, -spr);
}
else
{
digitalWrite(DR1, HIGH);
digitalWrite(DR2, HIGH);
}
}
ดาวน์โหลดและติตตั้งโปรแกรม sixaxispairtoolsetup-0.3.1
ค้นหา ชื่อบลูทูธ และ MacAddress
#include <PS4Controller.h>
#include <esp_bt_main.h>
#include <esp_bt_device.h>
void setup()
{
Serial.begin(115200);
PS4.begin();
const uint8_t* address = esp_bt_dev_get_address();
char str[100];
sprintf(str, "ESP32's Bluetooth MAC address is - %02x:%02x:%02x:%02x:%02x:%02x", address[0],address[1],address[2],address[3],address[4],address[5]);
Serial.println(str);
}
void loop()
{
}