ESP8266控制SG90舵机

  • 相信不少人在用控制esp8266控制舵机时都遇到一些问题,当初我也跟你们一样走了不少弯路,所以我把我的一些心得记录下来
  • 首先,我用的主控是NodeMCU,舵机是180度的SG90舵机,首先SG90是通过改变占空比工作的,在这里我们通过改变NodeMCU的PWM来改变舵机的占空比
  • 占空比:方波高电平时间跟周期的比例叫占空比,简单的说,就是一个周期内,高电平持续的时间占周期的比例
  • PWM:PWM就是脉冲宽度调制的英文缩写,例如1秒高电平1秒低电平的PWM波占空比是50%。其实啊,他就是一组方波,通过占空比来传递信号。当然,我这样说不是很准确,但是,知道这些就可以了!
  • 上面是舵机在这20ms的周期内高电平所持续时间和舵机旋转的角度之间的关系
  • 当然你也可以自己设置周期,只要相应的占空比不变,旋转的角度也不变`
  • 我这里是用lua写的,
  • pwm.setup(pin, clock, duty)--设置引脚为PWM模式
  • `参数:pin: 1~12, IO 编号
    clock: 1~1000, pwm 频率
    duty: 0~1023, pwm 占空比,最大 1023(10bit)。
  • pwm.start(pin)--启动PWM
  • pwm.setduty(pin, duty)--设置引脚占空比
  • `pin:IO引脚编号
    duty:PWM的占空比最大为1023
  • 例如:
 	pin=1--定义引脚
 	pwm.setup(pin,50,76)--设置引脚为PWM模式
	pwm.start(pin)--启动引脚PWM
	pwm.setduty(pin,127)--让舵机转到180度角
	tmr.delay(100000)--延时1秒
	pwm.setduty(pin,76)--让舵机转到90度角
  • 这里我设置的频率为50HZ,1/50=0.02m=20ms,所以定义了周期为20ms
  • 初始占空比为76,也就是90度角,1.5/20*1023=76,注意1023是NodeMCU内部定义的占空比范围,代码实现的效果是,舵机先转到90度角,然后转到180度角,再转回90度
  • 通过学习这些,我们就可以尝试去写代码控制自己的舵机实现相应的动作了!
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值