M5StickV输出PWM的简单示例-Arduino中文社区 - Powered by Discuz! Archiver

vany5921 发表于 2019-10-23 19:21

M5StickV输出PWM的简单示例

   之前提到了如何使用M5StickV连接M5StickC控制舵机运行,该实验主要用到了串口通信。本实验将直接通过M5StickV生成PWM驱动舵机,由于M5StickV输出电流不足以驱动舵机,建议使用外部电源给舵机供电。maixpy已经提供了pwm的模块因此可以直接调用。通常来说舵机的信号周期为20ms即50Hz,一个周期内高电平占0.5~2.5ms(0-180°),理论上换算为占空比就是2.5%-12.5%,在实际使用中数据会有少许偏差,根据实际情况进行调整。

from machine import Timer,PWM
import lcd
import image
import time
import sys

lcd.init()
img = image.Image()

tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
ch = PWM(tim, freq=50, duty=2.5, pin=35)
arg = {-90:2.5, 0:7.25, 90:12.5}        # arg:duty

try:
    while True:
        ch.duty(arg)
        img.draw_string(60, 100, "arg 0", scale=3)
        lcd.display(img)
        time.sleep(1)
        img.clear()

        ch.duty(arg[-90])
        img.draw_string(60, 100, "arg -90", scale=3)
        lcd.display(img)
        time.sleep(1)
        img.clear()

        ch.duty(arg)
        img.draw_string(60, 100, "arg 0", scale=3)
        lcd.display(img)
        time.sleep(1)
        img.clear()

        ch.duty(arg)
        img.draw_string(60, 100, "arg +90", scale=3)
        lcd.display(img)
        time.sleep(1)
        img.clear()
except:
    lcd.clear()
    ch.deinit()
    sys.exit()

laai 发表于 2020-1-17 21:05

你好,能否分享一下你上面提到的“之前提到了如何使用M5StickV连接M5StickC控制舵机运行,该实验主要用到了串口通信”这个教程,谢谢
页: [1]
查看完整版本: M5StickV输出PWM的简单示例