本站改版新增arduino频道
micropython模拟量遥杆与mg90s舵机控制
这个是模拟量遥杆,有两路模拟量输出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)
来源:https://blog.csdn.net/gaoke11240/article/details/125617735
Copyright © 2014 ESP56.com All Rights Reserved
晋ICP备14006235号-22 晋公网安备14108102001165号
执行时间: 0.011483907699585 seconds