本文主要是介绍物联网开发笔记(39)- 使用Micropython开发ESP32开发板之控制PS2摇杆,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、目的
这一节我们学习如何使用我们的ESP32开发板来控制PS2摇杆。
二、环境
ESP32 + PS2摇杆 + Thonny IDE + 几根杜邦线
接线示意图:注意接3.3V,接5V烧板子。
三、ESP32 ADC
ESP32 上有几个引脚可以用来获取模拟量——这些引脚称为 ADC 引脚(模拟值转换为数字值),以下所有 GPIO 均可用作 ADC 引脚:0、2、4、12、13、14、15、25、26、27、32、33、34、35、36、39
但有些开发板上0、2、4引脚不能使用,推荐使用32、 32、33、34、35、36、39
官方文档:Quick reference for the ESP32 — MicroPython latest documentation
注意,默认ESP32的对应值是1v对应4095,所以为了能够调整需要在代码中控制
ADC.ATTN_0DB
— 满量程电压:1.2V
ADC.ATTN_2_5DB
— 满量程电压:1.5V
ADC.ATTN_6DB
— 全量程电压:2.0V
ADC.ATTN_11DB
— 全量程电压:3.3V
四、代码
from machine import Pin, ADC
import timeps2_y = ADC(Pin(33))
ps2_y.atten(ADC.ATTN_11DB) # 这里配置测量量程为3.3V,默认为1V
ps2_x = ADC(Pin(32))
ps2_x.atten(ADC.ATTN_11DB) # 这里配置测量量程为3.3V,默认为1Vbtn = Pin(15, Pin.IN) # 按键按下输出0,while True:val_y = ps2_y.read() # 输出范围0-4095,默认处于中间位置if(val_y > 1900):print("向上")elif(val_y < 1800):print("向下")val_x = ps2_x.read() # 输出范围0-4095,默认处于中间位置if(val_x > 1900):print("向右")elif(val_x < 1800):print("向左")if(btn.value() == 0):print("按键按下")print("x:{} y:{} btn:{}".format(val_x, val_y, btn.value())) # 打印出x轴,y轴的值time.sleep(0.2)
五、演示效果
六、摇杆购买
同样大家可以在某宝上购买到摇杆:
https://detail.tmall.com/item.htm?spm=a1z10.3-b.w4011-23212844728.102.33a931e5KWj9l4&id=637208197637&rn=7f003cb721f85bfc44d51e018752b58d&abbucket=8
这篇关于物联网开发笔记(39)- 使用Micropython开发ESP32开发板之控制PS2摇杆的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!