Arduino中使用PS2手柄

news2024/12/28 3:03:59

目录

1、PS2手柄介绍

2、PS2库文件添加

3、Auduino代码

4、测试

5、测试程序和库文件下载连接


1、PS2手柄介绍

PS2手柄介绍见下面博客

STM32中使用PS2手柄_stm32 ps2-CSDN博客

PS2手柄按钮分布

2、PS2库文件添加

库文件和测试程序一起打包提供下载

3、Auduino代码


#include <PS2X_lib.h>        //PS2手柄
PS2X ps2x;                  // create PS2 Controller Class
/*************************************************************
*               PS2手柄接线方式:
*         arduino          手柄接收器
*           5                  MOSI
*           6                  MISO
*           7                  CS
*           8                  SCLK
*************************************************************/
#define PS2_DAT        5    //MOSI
#define PS2_CMD        6    //MISO
#define PS2_SEL        7    //CS
#define PS2_CLK        8    //SCLK
/*************************************************************/
unsigned char servo,PS2_LY,PS2_LX,PS2_RY,PS2_RX,PS2_KEY;  //定义L侧Y轴,X轴以及R侧Y轴,X轴的变量
void (* resetFunc) (void) = 0;                            // Reset func

void setup()   {
  char error;
  Serial.begin(9600);        //开启串口,波特率9600    
  error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT, false, false);//PS2控制

}
/******函数功能:主循环程序体*******/
void loop(){

    delay(2000);
    
    ps2x.read_gamepad(false, 0); //read controller and set large motor to spin at 'vibrate' speed
    PS2_LX=ps2x.Analog(PSS_LX);  //读取L侧X轴的模拟值
    PS2_LY=ps2x.Analog(PSS_LY);  //读取L侧Y轴的模拟值
    PS2_RX=ps2x.Analog(PSS_RX);  //读取R侧X轴的模拟值
    PS2_RY=ps2x.Analog(PSS_RY);  //读取R侧Y轴的模拟值   
    Serial.print("PS2_LX:");
    Serial.print(PS2_LX);
    Serial.print("   PS2_LY:");
    Serial.print(PS2_LY);
    Serial.print("   PS2_RX:");
    Serial.print(PS2_RX);
    Serial.print("   PS2_RY:");
    Serial.print(PS2_RY);
    if(ps2x.Button(PSB_TRIANGLE))     
      Serial.println("  PSB_TRIANGLE");
    else if(ps2x.Button(PSB_CROSS))   
      Serial.println("  PSB_CROSS");
    else if(ps2x.Button(PSB_CIRCLE))  
      Serial.println("  PSB_CIRC");
    else if(ps2x.Button(PSB_SQUARE))   
      Serial.println("  PSB_SQUARE");
    else if(ps2x.Button(PSB_PAD_UP))   
      Serial.println("  PSB_PAD_UP");
    else if(ps2x.Button(PSB_PAD_DOWN))  
      Serial.println("  PSB_PAD_DOWN");
    else if(ps2x.Button(PSB_PAD_RIGHT))  
      Serial.println("  PSB_PAD_RIGHT");
    else if(ps2x.Button(PSB_PAD_LEFT))  
      Serial.println("  PSB_PAD_LEFT");
    else if(ps2x.Button(PSB_R1))        
      Serial.println("  PSB_R1");
    else if(ps2x.Button(PSB_R2))         
      Serial.println("  PSB_R2");
    else if(ps2x.Button(PSB_SELECT))     
      Serial.println("  PSB_SELECT");
    else if(ps2x.Button(PSB_START))      
      Serial.println("  PSB_START");
    else if(ps2x.Button(PSB_L1))          
      Serial.println("  PSB_L1");
    else  if(ps2x.Button(PSB_L2))    
      Serial.println("  PSB_L2");
    else  Serial.println("  KEY_RELEASE");
}

4、测试

PS2手柄和合单片机连接

串口调试助手

两个摇杆的x坐标、y坐标数值和方向见前面图片示意。

手柄没有任何按键按下,按键值:KEY_RELEASE

5、测试程序和库文件下载连接

https://download.csdn.net/download/panjinliang066333/89875915

库文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2205651.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】二叉堆一文详解,附demo

有时候也挺迷惑的&#xff0c;技术那么多&#xff0c;感觉学什么都来不及&#xff0c;又什么都得学&#xff0c;经常一看别人&#xff0c;哇&#xff0c;比你年轻比你厉害&#xff0c;然后自己emo一下又要鸡血模式&#xff0c;就挺无语的&#xff0c;但愿我们的坚持与努力都不白…

“炫我”受邀出席虚拟现实及元宇宙产业创新论坛!

当前&#xff0c;新一轮科技革命和产业变革向纵深演进&#xff0c;虚拟现实及元宇宙等相关产业加速发展&#xff0c;催生了新产业新业态新模式&#xff0c;发展潜力巨大、应用前景广阔。 9月27日&#xff0c;由北京市科学技术委员会、中关村科技园区管理委员会&#xff0c;北京…

攻防世界1

pwnstack 发现是64位文件 发现vuln双击进入 看到read知道这里是要将B1&#xff08;177&#xff09;的数据输入buf&#xff0c;这里涉及了栈溢出 发现system和binsh 后门 A8十进制是168 exp&#xff1a; from pwn import * context(oslinux,archamd64,log_leveldebug) io rem…

生产及质量BI应用场景方案(可编辑37页PPT)

荐言分享&#xff1a;随着全球化的深入发展&#xff0c;制造业面临的竞争日益激烈。为了在市场中脱颖而出&#xff0c;企业需要不断提升自身的生产效率、降低成本&#xff0c;同时保证产品质量。现代消费者的需求日益多样化&#xff0c;对产品的个性化、定制化和品质要求越来越…

【unity踩坑】打开vs2022没有文字联想/杂项文件

unity打开vs2022没有文字联想 修改外置编辑器安装unity开发插件vs编辑器显示杂项文件 修改外置编辑器安装unity开发插件 参考 在unity项目里选择Edit-> Preferences->External Tools然后更换编辑器 在vs工具界面添加unity游戏开发选项。 重新打开还是有问题&#xff…

记录搜罗到的Matlab 对散点进行椭圆拟合

需要基于一些散点拟合椭圆估计并计算出椭圆的参数和周长&#xff0c;搜罗到直接上代码 &#xff08;1&#xff09;有用的椭圆拟合及参数计算函数 function W fitellipse(x,y) % 构造矩阵 D [x.*x, x.*y, y.*y, x, y,ones(size(x))]; S D*D; G zeros(6); G(1,3) 2; G(3,1)…

深入探讨B+树索引的基本概念、工作原理以及在MySQL中的应用

文章目录 1. B树的基本概念2. B树在MySQL中的实现3. 示例代码4. 结论 在数据库管理系统中&#xff0c;索引是一种特殊的文件&#xff0c;它能够提高数据检索的速度。MySQL作为最流行的开源关系型数据库之一&#xff0c;提供了多种索引类型来满足不同的性能需求。其中&#xff0…

windows端口被占用但是查不到进程的问题排查

在开发环境上经常遇到端口被占用&#xff0c;但是 netstat -ano|findstr 3306 查不到进程号&#xff0c;没法强杀解决。 这种情况&#xff0c;很有可能端口被排除了&#xff0c;可用命令&#xff1a; netsh interface ipv4 show excludedportrange protocoltcp 可以看到mysql的…

web-前置技能(HTTP协议)-CTFHub

前言 在众多的ctf平台当中&#xff0c;作者认为ctfhub对于初学者来说&#xff0c;是入门平台的不二之选。ctfhub通过自己独特的技能树模块&#xff0c;可以帮助初学者来快速入门。具体请看官方介绍&#xff1a;CTFHub。 作者正在更新ctfhub系列&#xff0c;希望小伙伴们多多支…

多元线性回归:机器学习中的经典模型探讨

引言 多元线性回归是统计学和机器学习中广泛应用的一种回归分析方法。它通过分析多个自变量与因变量之间的关系&#xff0c;帮助我们理解和预测数据的行为。本文将深入探讨多元线性回归的理论背景、数学原理、模型构建、技术细节及其实际应用。 一、多元线性回归的背景与发展…

小米开放式耳机好不好用?小米、南卡、倍思、飞利浦热门开放式耳机一周测评!

​开放式耳机正成为潮流&#xff0c;它们不仅佩戴舒适&#xff0c;音质也出色&#xff0c;特别受到音乐发烧友和运动爱好者的追捧。作为一名多年的数码测评博主&#xff0c;我也早就对开放式耳机感兴趣了&#xff0c;只是最近一直没时间来好好测评下&#xff0c;今天一下子买了…

计算机网络实验二:FTP服务器配置

ftp服务器配置 要求&#xff1a; 1. 学会配置FTP服务器、能在FTP客户端进行下载和上传文件 2. 进一步熟悉ipconfig和ping命令 3. 进一步理解FTP工作原理和流程 1、FTP服务器配置&#xff08;FileZilla Server&#xff09; 第一步安装FileZilla Server&#xff0c;直接下一步…

二、安装vmtools

1、 介绍 vmtools 安装后&#xff0c;可以让我们在 windows 下更好的管理 vm 虚拟机。可以设置 windows 和 centos 的共享文件夹 当时当我们发现安装虚拟机工具位置是灰色的 右击打开终端 在终端输入命令 yum list installed | grep open-vm-*yum list installed 命令会列出…

TikTok代理IP哪里找?

对于那些希望通过社交媒体打造个人品牌的人来说&#xff0c;TikTok是现在热门的平台&#xff0c;他的流量与曝光不可小觑&#xff0c;相信很多跨境营销会选择他进行多账号营销。问题是&#xff0c;TikTok多账号很容易遇到封禁问题&#xff0c;那么如何解决&#xff1f; 一、什么…

如何查看1688阿里巴巴热销选品数据?

✅路径&#xff1a;店雷达选品中心—1688选品库—选择类目 选品前先选类目&#xff0c;初步定位符合自己产品方向后再去分析市场&#xff0c;想看全市场的品类就选择一级类目&#xff0c;也有二三级类目细分选择&#xff0c;根据商家经营目标而定 接着选择想看的市场统计周期&…

吸毛效果好的宠物空气净化器分享,希喂、霍尼韦尔、米家实测

说起宠物空气净化器&#xff0c;几年前我可能会一脸鄙夷&#xff1a;为啥要花这种智商税冤枉钱&#xff1f; 直到之前养了一只猫&#xff0c;被家中乱飞的浮毛和滂臭的异味搞到头晕&#xff0c;于是作为i一个养宠的家电测评博主&#xff0c;索性对宠物空气净化器这玩意做了超级…

教你批量在文件名后面加文字,5个方法超简单

教你批量在文件名后面加文字~在日常办公与项目管理中&#xff0c;文件的规范性与统一性至关重要。它们不仅是信息传递的载体&#xff0c;更是团队协作效率的基石。面对海量的文件资料&#xff0c;如何确保每个文件都能迅速被识别并归类&#xff0c;成为了一个不容忽视的问题。为…

基于QT(C+++Mysql)实现的带GUI的图书管理系统

图书管理系统总体设计报告 图书管理系统概述 本次项目设计并实现了一个精简的多用户图书管路系统。应用后端通过与 MySQL 进行连接实现对数据的管理。用户可以通过界面实现登陆、注册、借书、还书等操作。管理员可以通过登陆界面实现对用户和书籍的管理&#xff0c;具有添加/…

微机原理与接口技术--绪论

1.早期硬件系统组成 1.微处理器&#xff08;中央处理器&#xff09;&#xff08;CPU&#xff09;&#xff1a; 微型计算机的核心部件&#xff0c;它负责执行指令、进行算术逻辑运算和控制计算机的各个部件协同工作。CPU 的性能直接决定了计算机的运行速度和处理能力。例如&…

SSTI模板注入+CTF实例

参考文章&#xff1a; 一文了解SSTI和所有常见payload 以flask模板为例-腾讯云开发者社区-腾讯云 (tencent.com) python-flask模块注入(SSTI) - ctrl_TT豆 - 博客园 (cnblogs.com) ssti详解与例题以及绕过payload大全_ssti绕过空格-CSDN博客 1. SSTI&#xff08;模板注入&…