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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2341|回复: 1

M5StickV输出PWM的简单示例

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

[mw_shl_code=python,true]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[0])
        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[0])
        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()
except:
    lcd.clear()
    ch.deinit()
    sys.exit()[/mw_shl_code]
发表于 2020-1-17 21:05 | 显示全部楼层
你好,能否分享一下你上面提到的“之前提到了如何使用M5StickV连接M5StickC控制舵机运行,该实验主要用到了串口通信”这个教程,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 17:08 , Processed in 0.073835 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表