cjs1748 发表于 2017-3-17 14:27:27

PS2無線搖桿+雙馬達+雙舵機+LED燈 測試

本帖最后由 cjs1748 于 2017-3-26 22:03 编辑


#include <PS2X_lib.h>//導入PS2搖桿庫v1.8
#include <Servo.h>    //導入舵機庫
PS2X ps2x;

int PS2 = 0;
Servo LXservo;         //建造LX舵機
Servo RXservo;         //建造LY舵機

const int Ain1 = 4;    // direction pin 1
const int Ain2 = 9;    // direction pin 2
const int enA = 6;    // PWM pin 控制轉速用
const int Bin1 = 7;    // direction pin 1
const int Bin2 = 8;    // direction pin 2
const int enB = 5;    // PWM pin 控制轉速用,我用minipro D9 PWM 無法使用,所以跟D5互換

int fspeedLY;         // 指定LY轉速變數
int fspeedRY;         // 指定RY轉速變數

void setup(){
LXservo.attach(2);// 指定LX舵機接D2腳位
RXservo.attach(3);// 指定RX舵機接D2腳位

PS2 = ps2x.config_gamepad(13,11,10,12, true, true);   //指定PS2搖桿腳位及類比搖桿開啟

pinMode(Ain1, OUTPUT);      // connection to TB6612FNG
pinMode(Ain2, OUTPUT);      // connection to TB6612FNG
pinMode(enA, OUTPUT);       // connection to TB6612FNG
pinMode(Bin1, OUTPUT);      // connection to TB6612FNG
pinMode(Bin2, OUTPUT);      // connection to TB6612FNG
pinMode(enB, OUTPUT);       // connection to TB6612FNG
pinMode(A0, OUTPUT);   // 三角和圓形控制的LED
pinMode(A1, OUTPUT);   // 四方和X控制的LED
pinMode(A2, OUTPUT);   // LY軸控制的LED燈
pinMode(A3, OUTPUT);   // RY軸控制的LED燈
pinMode(A4, OUTPUT);   // LX軸控制的LED燈
pinMode(A5, OUTPUT);   // LX軸控制的LED燈
pinMode(A6, OUTPUT);   // RX軸控制的LED燈 無作用
pinMode(A7, OUTPUT);   // RX軸控制的LED燈 無作用

}

void loop(){
ps2x.read_gamepad();

   if(ps2x.ButtonPressed(PSB_CIRCLE)) digitalWrite(A0, LOW);
   if(ps2x.ButtonPressed(PSB_TRIANGLE)) digitalWrite(A0, HIGH);
   if(ps2x.ButtonPressed(PSB_CROSS)) digitalWrite(A1, LOW);
   if(ps2x.ButtonPressed(PSB_SQUARE)) digitalWrite(A1, HIGH);
   
   if (ps2x.Analog(PSS_LY) == 128) analogWrite(enA, 0);
   if (ps2x.Analog(PSS_LY) > 128){
    fspeedLY = map(ps2x.Analog(PSS_LY), 129, 255, 0, 150);// LY搖桿對應馬達驅動的值 0~150即可以達到全速(配合電壓及馬達樣式調整)
    digitalWrite(Ain1, LOW);
    digitalWrite(Ain2, HIGH);
    analogWrite(enA, fspeedLY);
    digitalWrite(A2, HIGH);
}
   if (ps2x.Analog(PSS_LY) < 128){
    fspeedLY = map(ps2x.Analog(PSS_LY), 0, 127, 150, 0);
    digitalWrite(Ain1, HIGH);
    digitalWrite(Ain2, LOW);
    analogWrite(enA, fspeedLY);
    digitalWrite(A2, LOW);
}
   if (ps2x.Analog(PSS_RY) == 128) analogWrite(enB, 0);
   if (ps2x.Analog(PSS_RY) > 128){
    fspeedRY = map(ps2x.Analog(PSS_RY), 129, 255, 0, 150);
    digitalWrite(Bin1, LOW);
    digitalWrite(Bin2, HIGH);
    analogWrite(enB, fspeedRY);
    digitalWrite(A3, HIGH);
}
   if (ps2x.Analog(PSS_RY) < 128){
    fspeedRY = map(ps2x.Analog(PSS_RY), 0, 127, 150, 0);
    digitalWrite(Bin1, HIGH);
    digitalWrite(Bin2, LOW);
    analogWrite(enB, fspeedRY);
    digitalWrite(A3, LOW);
}

LXservo.write(map(ps2x.Analog(PSS_LX), 0, 255, 20, 160));// LX搖桿對應舵機角度 20~160

RXservo.write(map(ps2x.Analog(PSS_RX), 0, 255, 20, 160));

    if (ps2x.Analog(PSS_LX) < 120){
    digitalWrite(A4, HIGH);
    digitalWrite(A5, LOW);
}
    if (ps2x.Analog(PSS_LX) > 150){
    digitalWrite(A4, LOW);
    digitalWrite(A5, HIGH);
}
    if (ps2x.Analog(PSS_LX) > 120 && ps2x.Analog(PSS_LX) < 150){
    digitalWrite(A4, LOW);
    digitalWrite(A5, LOW);
}
    if (ps2x.Analog(PSS_RX) < 120){
    digitalWrite(A6, HIGH);
    digitalWrite(A7, LOW);
}
    if (ps2x.Analog(PSS_RX) > 150){
    digitalWrite(A6, LOW);
    digitalWrite(A7, HIGH);
}
    if (ps2x.Analog(PSS_RX) > 120 && ps2x.Analog(PSS_RX) < 150){
    digitalWrite(A6, LOW);
    digitalWrite(A7, LOW);
}

delay(50);
}   



之前做過六個舵機的測試,結果時間一久就都忘了!!又重新測試!!
所以趕快留一個紀錄!!下次就不用再撞牆了!!

1.外部電源12V1.5A 對馬達驅動板及MINIPRO RAW腳
2.馬達驅動板邏輯電源及PS2接收器接3.3V
3.UNO 及 MINIPRO 都測試成功

董董soul 发表于 2017-3-17 16:45:18

占个沙发,顶一个!如果有具体的硬件连接图就更好了:lol

cjs1748 发表于 2017-3-17 19:06:33

董董soul 发表于 2017-3-17 16:45
占个沙发,顶一个!如果有具体的硬件连接图就更好了

下午才在爬您的文說.....
您來這發言真是我這個菜鳥的榮幸!!
.
.
本來是要畫圖的,但是fritzing找不到TB6612FNG的圖,所以就放棄了....
基本上,接腳在程式內都有說明,待會再嘗試畫畫看!!

duanyz 发表于 2017-3-19 22:53:00

没接触过这个ps2的无线摇杆,楼主能给点资料吗?

Ansifa 发表于 2017-3-19 23:01:17

建议直接用5v电源供电,这种马达耗电不大,画图用cadsoft的eagle元件库非常丰富,多到你怕,适合进一步学习

cjs1748 发表于 2017-3-19 23:42:55

Ansifa 发表于 2017-3-19 23:01
建议直接用5v电源供电,这种马达耗电不大,画图用cadsoft的eagle元件库非常丰富,多到你怕,适合进一步学习

5V我有使用過(UNO),但是減速馬達沒動作!!

cjs1748 发表于 2017-3-20 18:17:21

duanyz 发表于 2017-3-19 22:53
没接触过这个ps2的无线摇杆,楼主能给点资料吗?

http://geek-workshop.com/thread-172-14-1.html
站內大神的教學~~
或是自己搜索 PS2 搖桿
資料真的是很多~~

cjs1748 发表于 2017-3-23 19:59:29

本帖最后由 cjs1748 于 2017-3-30 18:49 编辑

使用NANO加擴充版也測試OK!!
注意喔!! PS2搖桿的電源輸入腳是沒接線的.....
但是可以正常使用.
不過D9的PWM一樣不太正常..

jasonwang1208 发表于 2017-3-24 10:51:50

3Q for sharing.
無線搖桿那裡買的有連結嗎?:)

cjs1748 发表于 2017-3-24 23:09:32

我在沒屋頂買的,不過應該也是淘寶網過來的。

悠然小调 发表于 2017-3-29 14:31:06

搖桿庫下载不了啊

cjs1748 发表于 2017-3-30 00:04:33

可以去外面找找看,我也不知道為何下載不了

弘毅 发表于 2017-3-30 08:09:54

悠然小调 发表于 2017-3-29 14:31
搖桿庫下载不了啊

我去检查下。。。。

弘毅 发表于 2017-3-30 08:42:58

cjs1748 发表于 2017-3-30 00:04
可以去外面找找看,我也不知道為何下載不了

已经修复好论坛bug了。。。莫名其妙论坛后台配置被人改了。。。结果附件失效,郁闷了。。如果可以的话看看能重传下附件吗

cjs1748 发表于 2017-3-30 18:46:52

感謝熱心的弘毅兄~:)
页: [1] 2
查看完整版本: PS2無線搖桿+雙馬達+雙舵機+LED燈 測試