使用PS2手柄模控制ESP32输出2路PWM信号控制舵机

1.ESP32引脚图

某宝常用EPS32的两种类型,对应下连接对应IO口的线就可以了~

注意将舵机正负,PS2手柄控制模块正、负分别连接在一起就行了.(必须查EPS32 USB供电,不然舵机运行不正常)



2.Arduino代码

来不及解释,先粘贴代码

#include <ESP32Servo.h>
#include <analogWrite.h>
//#include <tone.h>
#include <ESP32Tone.h>
#include <ESP32PWM.h>Servo a;
Servo b;
int VRX,VRY,p1,p2;
void setup(){a.attach(12);//指定舵机a的OUT引脚为p12号引脚b.attach(14);//指定舵机b的OUT引脚为p14号引脚Serial.begin(115200);p1=90;p2=90;
}
void loop(){VRX = analogRead(34);//获取A0引脚的输入值,即PS2摇杆X轴的数值VRY = analogRead(27);//获取D1引脚的输入值,即PS2摇杆Y轴的数值Serial.print("映射前x轴:");Serial.print(VRX);Serial.print(" ");Serial.print("映射前y轴:");Serial.print(VRY);Serial.print(" ");//p = map(i,0,1023,0,180);//将0到1023的值映射成0到180//k = map(j,0,1023,0,180);p1=SetPWM(VRX,p1);p2=SetPWM(VRY,p2);Serial.print("映射后x轴:");Serial.print(p1);Serial.print(" ");Serial.print("映射后y轴:");Serial.println(p2);a.write(p1);//设置舵机a角度为pb.write(p2);//设置舵机b角度为kdelay(100);
}
int SetPWM(int valp,int p)
{int vali;vali=GetKeyValue(valp);if (vali==-1){p+=10;}else if (vali==1){p-=10;}//限制舵机角度0-180if(p<=0){p=0;}else if (p>=180){p=180;}return p;
}
//方向判断函数:X轴为例,-1向左,0未操作,1向右
int GetKeyValue(int val){if (val<2000){return -1;}else if (val>3000){return 1;}else{return 0;}}

3.运行效果


舵机随着PS2手柄的方向而转动。

PS2手柄模控制ESP32控制舵机 ArduinoPWM控制相关推荐

  1. micropython esp32驱动舵机_关于micropython ESP32的MQTT通讯方式控制舵机

    首先我们的前提是实践过我曾经写的关于micropython ESP32+PCA9685 舵机转速控制[https://blog.csdn.net/mrjiale/article/details/818 ...

  2. PS2手柄遥控控制灯开关(arduino)

    PS2手柄遥控控制灯开关(arduino) 使用的材料 arduino板子: ps2遥控手柄; 一个5V供电的LDE: 连线 首先按照遥控手柄底座上的英文,你会发现一共有六根线,分别是GND,VCC, ...

  3. 物联网开发笔记(54)- 使用Micropython开发ESP32开发板之控制MG90S舵机

    一.目的 这一节我们学习如何使用我们的ESP32开发板来控制舵机.前面我和大家使用Wokwi在线仿真讲过.这里我们再来学习一下,大家可以通过文章末尾的链接去购买适合的舵机来学习.这里我为了讲解方便依然 ...

  4. 使用PCA9685控制多个舵机

    todolist 要单独去找舵机的两个极值的大小,然后去该前文的映射的初始值 把角度值打印出来 0.准备 0.1.硬件设备 0.2.软件安装 1.安装好Arduino IDE 可以前往Arduino官 ...

  5. 基于ESP8266远程舵机的控制与实现

    一.ESP8266 CP2102介绍 NodeMCU板载ESP-12E(4MBFlash) WIFI模组和USB转TTL串口(CP2102/CH340)芯片,方便下载固件和调试, NodeMCU默认为 ...

  6. 物联网开发笔记(48)- 使用Micropython开发ESP32开发板之控制OLED ssd1306屏幕

    一.目的 这一节我们学习如何使用我们的ESP32开发板来控制OLED ssd1306屏幕,此处使用的是I2C协议,大家可自行百度学习一下I2C. 二.环境 ESP32 + OLED ssd1306屏幕 ...

  7. 物联网开发笔记(58)- 使用Micropython开发ESP32开发板之控制2.90寸电子墨水屏模块黑白套件

    一.目的 这一节我们学习如何使用我们的ESP32开发板来控制2.90寸电子墨水屏模块(黑白套件). 二.环境 ESP32 + 2.90寸 电子墨水屏模块 + Thonny IDE + 几根杜邦线 接线 ...

  8. 物联网开发笔记(63)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:显示中文

    一.目的 这一节我们学习如何使用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程的第一步:显示中文. 二.环境 ESP32 + 3.2寸 ILI9341触 ...

  9. 物联网开发笔记(62)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:环境搭建

    一.目的 这一节我们学习如何使用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程的第一步:环境搭建. 关键字:3.2寸SPI串口TFT液晶显示屏模块 IL ...

最新文章

  1. Centos7 下安装python3及卸载
  2. 如何通过五个简单步骤成为更好的Stack Overflow用户
  3. FTP开启虚拟用户访问
  4. linux select读取节点数据失败_MySQL中覆盖索引查询和select*查询执行结果案例分析...
  5. 【转】Java抽象类与接口的区别
  6. c语言i=5.6a=(int)i,第一章C语言概述.ppt
  7. Java集合的ConcurrentModificationException
  8. html变量改变结构,如何在html结构标签中使用js 变量 生成可变化的 title标题?
  9. php中array_flip数组翻转
  10. [引用]论文:基于CWM的ETL原型系统METL的设计与实现研究
  11. Python内置函数一览表
  12. 网络协议、socket、webSocket
  13. Excel统一将小写的金额转为大写汉字金额的操作
  14. 进博会中国自行车排名辐轮王自行车点赞中国GDP突破一百万亿元
  15. Unity—背包系统(思路总括)
  16. VS 错误: cout 不明确
  17. linux cpan 参数配置,Perl学习笔记之CPAN使用介绍
  18. 基于单片机的超市收银机
  19. 小白安装cadence virtuoso
  20. Python神经网络编程 | 专场送书活动

热门文章

  1. excel波士顿矩阵怎么做_EXCEL波士顿矩阵法图
  2. 查看apk的包名和启动页activity,adb命令启动app
  3. PySpark ERROR: Python in worker has different version 3.9 than that in driver 3.8
  4. 《盘点软件设计中的七大原则》
  5. php基础笔试题与答案解析(1)
  6. 游戏数值策划属性篇(一):关于属性设计的几点思考
  7. 惠普m1005mfp说明书_惠普HP LASERJET M1005一体机怎么使用?
  8. 热潮-区块链的价值能够体现在哪些方面?
  9. hihoCoder 1430 A Boring Problem(数论)
  10. Ubuntu 彻底删除Anaconda3