2022-7-5 micropython模拟量遥杆与mg90s舵机控制

好久不写博客不是我懈怠了 是去年编程太多腰间盘不高兴了,上半年又去搞政工巡查天天搞政治材料,所以虽然搞技术但没条件写博客了,反正我本来也打算一年也就三个月写写博客就行,最近腰间盘也是很不错基本没事了,那就继续折腾吧。

今天记录下模拟量遥杆和MG90S舵机,这虽然很基础,但是我不也得捡捡技术嘛~ 哈哈

请添加图片描述舵机一般这种金属齿轮的比较好 ,不容易坏。中间5V棕色GND黄色PWM信号

请添加图片描述
这个是模拟量遥杆,有两路模拟量输出XY一个数字量输出SW,就是摇杆往下按就有个开关。这种摇杆其实就是俩电位器加一个开关。所以你输如电压可以根据控制板来比如我用ESP32控制,考虑到我的ADC最大电压也就3.6V再大了就烧了 ,那我肯定不能给按钮供电上5v而是上的3,3V

以上接线前一定要参阅MICROPYTHON的固件和配套的文档来接,比如我用V1.1.8的固件程序写法如下,如果你用比这个版本低的固件可能跑不起来。另外也要参考引脚的功能不要随便用脚,多看相关手册。

from machine import ADC,Pin  #引用ADC和引脚
import time
from machine import PWM  #为了控制舵机引入PWM
servo = PWM(Pin(14),freq=50)  #舵机的14号引脚我这里接线顺手
adc1 = ADC(Pin(32))  #初始化
adc2 = ADC(Pin(25))
adc1.init(atten = ADC.ATTN_11DB)  #调整分辨率  否则读不出完整范围
adc2.init(atten = ADC.ATTN_11DB)
num=20  #这个是为了控制舵机做的初始指针
while 1 :
    time.sleep(0.09)
    print('adc1=',adc1.read())
    print('adc2=',adc2.read())
    if adc1.read_uv()//1000000==0: #读取值进行判断,上下限位
        num =20
    if adc1.read_uv()//1000000==3:
        num =130
    num = num + (adc2.read_uv()//1000000-1)*3#自加自减控制逻辑
    if num >130 :
        num=130
    if num <20 :
        num=20
    servo.duty(num)  #舵机执行
    print('adc1=',adc1.read_uv()//1000000)
    print('adc2=',adc2.read_uv()//1000000)
    
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值