设为首页收藏本站

极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 278|回复: 6

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

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式
本帖最后由 cjs1748 于 2017-3-17 19:53 编辑


#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 都測試成功
PS2CARJJ.zip (13.74 KB, 下载次数: 3)
PS2CAR-1024.jpg
Untitled Sketch_bb.jpg

评分

参与人数 1威望 +30 收起 理由
Ansifa + 30 支持原创,鼓励一下

查看全部评分

回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
占个沙发,顶一个!如果有具体的硬件连接图就更好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 6 天前 | 显示全部楼层
董董soul 发表于 2017-3-17 16:45
占个沙发,顶一个!如果有具体的硬件连接图就更好了

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

使用道具 举报

发表于 4 天前 | 显示全部楼层
没接触过这个ps2的无线摇杆,楼主能给点资料吗?
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
建议直接用5v电源供电,这种马达耗电不大,画图用cadsoft的eagle元件库非常丰富,多到你怕,适合进一步学习
回复 支持 反对

使用道具 举报

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

5V我有使用過(UNO),但是減速馬達沒動作!!
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号  

GMT+8, 2017-3-23 10:18 , Processed in 0.184312 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表