/** * PS2 4WD遥控车* * 2022.09.08* MADE BY 艾泽(YWZ) 3D打印创新实验室&3D打印协会(DIY3D打印爱好者协会) HIT(WH)* 运行前请下载PS2X_lib.h库* 需要准备:L298N*2 PS2&转换口,降压模块12-5v arduino系列单片机,电机*4* 此程序仅供学习,使用或转载请备注作者* *
*/
#include <PS2X_lib.h>
PS2X ps2x;#define CLK 2
#define DAT 3
#define CMD 4
#define SEL 5
//设置ps2接收机引脚
#define in1 6
#define in2 7
#define in3 8
#define in4 9
#define in5 10
#define in6 11
#define in7 A3
#define in8 A4
//设置电机引脚void setup()
{// put your setup code here, to run once:Serial.begin(9600);ps2x.config_gamepad(CLK,CMD,SEL,DAT, true, false);delay(300);pinMode(in1,OUTPUT);pinMode(in2,OUTPUT);pinMode(in3,OUTPUT);pinMode(in4,OUTPUT);pinMode(in5,OUTPUT);pinMode(in6,OUTPUT);pinMode(in7,OUTPUT);pinMode(in8,OUTPUT);
}void loop()
{// put your main code here, to run repeatedly:ps2x.read_gamepad(false,0);delay(30);//刷新ps2数据if(ps2x.Button(PSB_PAD_UP)&&(ps2x.Analog(PSS_RY)==127)){RUN1();delay(50);}else if(ps2x.Analog(PSS_RY)>127){RUN();delay(50);}else if(ps2x.Analog(PSS_RY)<127){BACK();delay(50);}else if(ps2x.Button(PSB_PAD_DOWN)&&(ps2x.Analog(PSS_LX)==128)){BACK1();delay(50);}else if(ps2x.Analog(PSS_LX)>128){LEFT();delay(50);}  else if(ps2x.Analog(PSS_LX)<128){RIGHT();delay(50);}  else if(ps2x.Button(PSB_L1)){STOP();delay(50);}else{DOWN();}
/*
//--------------------------ps2 text-----------------------------
//-------------------use arduino ide 串口监视器----------------------Serial.print("right x:");Serial.print(ps2x.Analog(PSS_RX));delay(50);//右侧xSerial.print("right y:");Serial.println(ps2x.Analog(PSS_RY));delay(500);//右侧ySerial.print("left  x:");Serial.print(ps2x.Analog(PSS_LX));delay(50);//左侧xSerial.print("left  y:");Serial.println(ps2x.Analog(PSS_LY));delay(500);//左侧Y
//--------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------
*/
}//-----------常规姿态控制----------------------------------------------------------------------------------------------------AIZE(YWZ)----------------void RUN()
{int SPEED=ps2x.Analog(PSS_RY);digitalWrite(in1,HIGH);digitalWrite(in2,LOW);  digitalWrite(in3,HIGH);digitalWrite(in4,LOW); analogWrite(in1,SPEED);analogWrite(in3,SPEED);digitalWrite(in5,HIGH);digitalWrite(in6,LOW);  digitalWrite(in7,HIGH);digitalWrite(in8,LOW); analogWrite(in5,SPEED);analogWrite(in7,SPEED);
}
//--------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------void BACK()
{int SPEED=ps2x.Analog(PSS_RY)+127;digitalWrite(in1,LOW);digitalWrite(in2,HIGH);  digitalWrite(in3,LOW);digitalWrite(in4,HIGH); analogWrite(in2,SPEED);analogWrite(in4,SPEED);digitalWrite(in5,LOW);digitalWrite(in6,HIGH);  digitalWrite(in7,LOW);digitalWrite(in8,HIGH); analogWrite(in6,SPEED);analogWrite(in8,SPEED);
}//--------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------void LEFT()
{int SPEED=ps2x.Analog(PSS_LX);digitalWrite(in1,HIGH);digitalWrite(in2,LOW);  digitalWrite(in3,LOW);digitalWrite(in4,HIGH); analogWrite(in1,SPEED);analogWrite(in4,SPEED);digitalWrite(in5,HIGH);digitalWrite(in6,LOW);  digitalWrite(in7,LOW);digitalWrite(in8,HIGH);analogWrite(in5,SPEED);analogWrite(in8,SPEED);
}
//--------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------void RIGHT()
{int SPEED=ps2x.Analog(PSS_LX)+128;digitalWrite(in1,LOW);digitalWrite(in2,HIGH);  digitalWrite(in3,HIGH);digitalWrite(in4,LOW); analogWrite(in2,SPEED);analogWrite(in3,SPEED);digitalWrite(in5,LOW);digitalWrite(in6,HIGH);  digitalWrite(in7,HIGH);digitalWrite(in8,LOW); analogWrite(in6,SPEED);analogWrite(in7,SPEED);
}
//--------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------void DOWN()
{digitalWrite(in1,LOW);digitalWrite(in2,LOW);  digitalWrite(in3,LOW);digitalWrite(in4,LOW); digitalWrite(in5,LOW);digitalWrite(in6,LOW);  digitalWrite(in7,LOW);digitalWrite(in8,LOW); }//--------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------void STOP()
{digitalWrite(in1,HIGH);digitalWrite(in2,HIGH);  digitalWrite(in3,HIGH);digitalWrite(in4,HIGH); digitalWrite(in5,HIGH);digitalWrite(in6,HIGH);  digitalWrite(in7,HIGH);digitalWrite(in8,HIGH); analogWrite(in1,250);analogWrite(in2,250);analogWrite(in3,250);analogWrite(in4,250);analogWrite(in5,250);analogWrite(in6,250);analogWrite(in7,250);analogWrite(in8,250);
}  //---------------------------------------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------void RUN1()
{digitalWrite(in1,HIGH);digitalWrite(in2,LOW);  digitalWrite(in3,HIGH);digitalWrite(in4,LOW); digitalWrite(in5,HIGH);digitalWrite(in6,LOW);  digitalWrite(in7,HIGH);digitalWrite(in8,LOW); analogWrite(in1,250);analogWrite(in3,250);analogWrite(in5,250);analogWrite(in7,250);}//--------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------
void BACK1()
{digitalWrite(in1,LOW);digitalWrite(in2,HIGH);  digitalWrite(in3,LOW);digitalWrite(in4,HIGH); digitalWrite(in5,LOW);digitalWrite(in6,HIGH);  digitalWrite(in7,LOW);digitalWrite(in8,HIGH); analogWrite(in2,250);analogWrite(in4,250);analogWrite(in6,250);analogWrite(in8,250);
}  //---------------------------------------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------/*舵机版预留
void BACKLEFT()
{digitalWrite(in1,HIGH);digitalWrite(in2,LOW);  digitalWrite(in3,LOW);digitalWrite(in4,HIGH); analogWrite(in1,SPEED);analogWrite(in4,SPEED);digitalWrite(in5,HIGH);digitalWrite(in6,LOW);  digitalWrite(in7,LOW);digitalWrite(in8,HIGH); analogWrite(in5,SPEED);analogWrite(in8,SPEED);
}
//--------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------void BACKRIGHT()
{digitalWrite(in1,LOW);digitalWrite(in2,HIGH);  digitalWrite(in3,HIGH);digitalWrite(in4,LOW); analogWrite(in2,SPEED);analogWrite(in3,SPEED);digitalWrite(in5,LOW);digitalWrite(in6,HIGH);  digitalWrite(in7,HIGH);digitalWrite(in8,LOW); analogWrite(in6,SPEED);analogWrite(in7,SPEED);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------AIZE(YWZ)----------------*/

ps2遥控小车arduino程序初版相关推荐

  1. 基于红外遥控的arduino遥控小车

    遥控小车是每个人童年的最爱,不仅好奇它的奇妙,更是喜欢它带来的刺激.小编为大家带来几篇博客,来给大家讲讲制作遥控小车的程序. 看大标题可知我们一共有五个方法去制作一款带有遥控功能的小车,小编分开来给大 ...

  2. 基于手机蓝牙的arduino遥控小车

    遥控小车是每个人童年的最爱,不仅好奇它的奇妙,更是喜欢它带来的刺激.小编为大家带来几篇博客,来给大家讲讲制作遥控小车的程序. 看大标题可知我们一共有五个方法去制作一款带有遥控功能的小车,小编分开来给大 ...

  3. 开源免费代码_02_单摇杆远程遥控小车,基于Arduino的ESP-NOW,ESP32发送指令、ESP32接收指令,实现小车毫秒级完美控制_公羽兴

    发文希望能够帮忙物联网爱好者少走弯路,少被割韭菜.如果觉得此文对您有帮助的话帮忙点个赞,感谢!!! 哔哩哔哩网址:开源免费代码_02_单摇杆远程遥控小车,基于Arduino的ESP-NOW,ESP32 ...

  4. 基于无线NRF24L01的ardunio遥控小车

    遥控小车是每个人童年的最爱,不仅好奇它的奇妙,更是喜欢它带来的刺激.小编为大家带来几篇博客,来给大家讲讲制作遥控小车的程序. 看大标题可知我们一共有五个方法去制作一款带有遥控功能的小车,小编分开来给大 ...

  5. 基于手柄(有线)的ardunio遥控小车

    遥控小车是每个人童年的最爱,不仅好奇它的奇妙,更是喜欢它带来的刺激.小编为大家带来几篇博客,来给大家讲讲制作遥控小车的程序. 看大标题可知我们一共有五个方法去制作一款带有遥控功能的小车,小编分开来给大 ...

  6. 基于51单片机的遥控小车

    基于51单片机的遥控小车(HC-05模块,L298n模块) 保姆级 1.硬件准备 2.部分硬件说明 USB转TTL模块 可以把串口发送的TTL信号转换成USB信号再发送给电脑,电脑就可以接收到单片机发 ...

  7. 基于Arduino的PS2机械臂遥控小车(L298N)傻瓜教程

    基于Arduino的PS2机械臂遥控小车(L298N)傻瓜教程 1.材料 L298N.Arduino板.数据线.舵机(SG90).机械臂.亚克力板.电机.PS2.杜邦线.电池(7.4V).螺丝. 2. ...

  8. 微信小程序+UDP+wifi8266+l293d扩展板+Arduino uno遥控小车

    微信小程序+UDP+wifi8266+l293d扩展板+Arduino uno遥控小车 序言 前面突然看到自己已经落灰的Arduino板子,感觉自己必须做点什么.正好手上有个8266的模块.有个焊接接 ...

  9. 基于STM32F103的树莓派ROS小车——PS2遥控程序解析

    基于STM32F103ZET6的PS2遥控ROS小车程序解析 序言 1. PS手柄介绍 2. 使用说明 2.1 引脚说明 2.2 时序图分析 3. 手柄测试 4. 程序解析 5. 仿真 6. 源码链接 ...

最新文章

  1. PHP学习记录(字符串函数)
  2. 关于css3的自定义字体
  3. Python Django 设置/更改响应头信息
  4. 在VC中动态加载ODBC的方法
  5. 浅拷贝 python_python中的浅拷贝和深拷贝
  6. border做三角形
  7. Django配置文件常用信息
  8. qq音乐api android,QQ音乐
  9. 半导体PN结的工作原理
  10. android手机设置固定dns,安卓手机修改WiFi DNS设置的方法
  11. python中cv的差值_python+opencv实现移动侦测(帧差法)
  12. Shell中uniq命令的用法
  13. python输出矩阵_python输出矩阵
  14. c语言编程实现scp功能,scp源码浅析
  15. 以太网芯片MAC和PHY
  16. 必须了解的产品经济学:边际效用VS边际成本
  17. 淘宝网前台应用性能优化实践
  18. 发现panda(熊猫)对W32.Looked.I处理得不错
  19. D2x神符之语中英文对照图文豪华版
  20. Real-ESRGAN

热门文章

  1. 如何写好一篇论文的摘要?
  2. [解疑][VS]Visual Studio软件编程时,ID号的格式ID_,IDS_,IDC_,IDI_,IDB_,IDD_之间有什么区别?
  3. JupyterLab教程:程序员的笔记本神器v2.0
  4. 设计模式 - 漫谈软件编程背后的系统化思维
  5. 02 matplotlib - 柱状图、直方图、散点图 、饼图
  6. 苹果 CEO 为什么选中了何同学?
  7. c语言分苹果程序,小朋友学C语言(14):分苹果(小学奥数题)
  8. 可能是你见过最强的猜数字游戏(doge
  9. SQLserver 报错RegCreateKeyEx() 返回了错误 5,“拒绝访问。” (.Net SqlClient Data Provider)错误号: 22002 严重性: 16 状态: 1
  10. 做好PMC管理三大工作,轻松搞定生产计划与物料控制