文章目录

  • PWM是什么
  • MaixII-Dock(v831)的PWM引脚
  • 使用 sysfs 操作 PWM
  • 使用Python操作 PWM

PWM是什么

  PWM(Pulse Width Modulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值).PWM控制技术在逆变电路中应用最广,应用的逆变电路绝大部分是PWM型,PWM控制技术正是有赖于在逆变电路中的应用,才确定了它在电力电子技术中的重要地位。

MaixII-Dock(v831)的PWM引脚

  由MaixII-Dock(v831)的底板引脚图可以看出,V831有8个引脚可以输出PWM波,但是因为有部分引脚复用了,比如PH0,可以使用PWM_0,但是但是这个引脚被SPI功能所占用,所以我们使用时,需要改变PWM功能所在引脚的复用功能才能正常使用PWM功能.能够被我们正常使用的功能引脚是PH6、PH7 和 PH8引脚,其他引脚使用时需要注意引脚复用关系。

  因为本人是有学完K210后再玩的MaixII-Dock,所以我还天真的任务V831可以像k210那样管脚自由映射,实际上是不可以了,管脚的功能已经设计的时候对应了相应的硬件,要想复用引脚,就需要改变寄存器的值,从这一点来说,k210还是优势的。

使用 sysfs 操作 PWM

首先打开PWM6通道

cd /sys/devices/platform/soc/300a000.pwm/pwm/pwmchip0

实例化pwm引脚

echo 6 > export

设置PWM周期

cd /sys/devices/platform/soc/300a000.pwm/pwm/pwmchip0/pwm6
echo 1000000 > period

设置PWM占空比

echo 10000 > duty_cycle

使能PWM功能

echo 1 > enable

使能PWM后,可以用示波器或者LED灯观察PH0端口是否有PWM波输出。

使用Python操作 PWM

  为了方便我们使用PWM,maixpy3将其封装起来,我们只需要先将 PWM-6 实例化,设置周期和占空比,最后是使能 PWM,就可以输出了,具体代码看下面:

from maix import pwm
import time
pwm6 = pwm.PWM(6)
pwm6.export()
pwm6.period = 2000000  # 表示 pwm 的周期,单位 ns
pwm6.duty_cycle = 500000  # 表示占空比,单位 ns
pwm6.enable = True        # 表示是否使能 pwm
for t in range (3):for i in range(500000, 1500000, +100000):pwm6.duty_cycle = itime.sleep(0.2)for i in range(1500000, 500000, -100000):pwm6.duty_cycle = itime.sleep(0.2)

  可以外接一个LED观察现象,发现其为呼吸灯状态,也可以用pwm来作为电机驱动控制信号,驱动舵机。要主要设置的pwm周期和占空比,舵机在特定的周期和占空比才能工作。特别要注意外接电机的时候需要做好电源隔离,不要直接将舵机接到开发板上,舵机产生的反向电流会把开发板上的芯片给击穿。

MaixII-Dock(v831)学习笔记——PWM相关推荐

  1. STM8学习笔记---PWM互补波形输出

    脉宽调制(PWM,Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量.通信到功率控制与变换的许多领域中. 常见的用法是输出 ...

  2. STM8学习笔记---PWM变频输出

    在使用STM8的PWM功能时,一般都是改变占空比来改变输出电压大小.但是有时候不需要改变PWM的占空比,而是需要按照一定的规律改变输出PWM的频率,而占空比保持不变.现在总结一下如何实现STM8单片机 ...

  3. STM8学习笔记----PWM单脉冲模式输出

    先看看官方资料对单脉冲模式的介绍 下面看C代码的实现 void PWM_GPIO_Init( void ) {PC_DDR_DDR6 = 1; //输出管脚 PC6 TIM1_CH1PC_CR1_C1 ...

  4. 记STM32之PWM学习笔记 ---PWM原理

    一. STM32F103通用定时器简介: 通用定时器是一个可编程预分频器驱动的16位自动装载计数器(好难记,,). 适用于:  测量输入信号的脉冲长度(输入捕获).产生输出波形(输出比较和PWM). ...

  5. S32K系列S32K144学习笔记——PWM

    一用S32K144苦似海,道友,能不用,千万不去用. 本例程基以下如图所示接口操作,MCU为S32K144,开发平台S32DSworkspace 功能描述:PTC2端口输出PWM 如有错误,麻烦帮忙指 ...

  6. MaixII-Dock(v831)学习笔记——MaixII-Dock初使用

    文章目录 MaixII-Dock 烧录镜像 Windows系统下烧录镜像 准备工作 格式化TF卡 烧录镜像 Linux系统下烧录镜像 安装MaixPy3 IDE 上电测试 运行程序 配置开机启动脚本 ...

  7. STM32学习笔记—PWM输出

    1.pwm输出介绍 2.函数配置 3.源码 1.pwm输出介绍 脉冲调制(pwm),其根本原理就是通过控制占空比来控制输出.STM32的定时器除了TIM6和7之外都可以产生pwm输出,其中高级定时器1 ...

  8. [蓝桥杯单片机]学习笔记——PWM脉宽调制信号的发生与控制

    一.原理部分 1.脉宽调制(PWM)基本原理 控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等但宽度不一致的脉冲,用这些脉冲来代替正弦波或所需要的波形.也就是在输出波形的半个周 ...

  9. 嵌入式学习笔记——ADC模数转换器

    ADC模数转换器 前言 ADC介绍 ADC概述 ADC的数量 ADC的特性 ADC框图 芯片外部框图 芯片内部框图 转换部分框图 状态输出部分 条件触发框图 寄存器介绍 编程思路 模式选择 规则通道的 ...

  10. 嵌入式学习笔记——STM32的USART通信概述

    文章目录 前言 常用通信协议分类及其特征介绍 通信协议 通信协议分类 1.同步异步通信 2.全双工/半双工/单工 3.现场总线/板级总线 4. 串行/并行通信 5. 有线通信.无线通信 STM32通信 ...

最新文章

  1. 关于微阵列芯片和RNA-seq的比较
  2. 手把手教你学Kotlin (1): JetBrains的Kotlin Educational Tool下载、安装和 Kotlin Koans的安装和使用
  3. solr 分词过程基本介绍
  4. 请问C#中如何自动生成summary注释
  5. Linux Shell编程(3)——运行shell脚本
  6. sql server启动服务和还原bak文件
  7. java课程设计简易记事本
  8. Verilog一个非常简洁的8选1多路选择器
  9. 解决报错:错误使用 xlsread未找到工作表 ‘sheet1‘
  10. 常见错误:无效的文件dsn
  11. 零点存在定理与介值定理
  12. ACM中关于Output Limit Exceeded和Time Limit Exceeded
  13. 读书笔记:《结构思考力》基于目标定主题
  14. android 8.1 wifi提示“已连接 但无法访问互联网“的解决办法
  15. 心理正常与异常的区分_正常心理与异常心理的判别标准
  16. 【Echarts Gallery】简单使用
  17. PGPool-II 4.2.1+PostgreSQL 13高可用
  18. 阿里云域名备案问题 注销主体步骤
  19. Matlab 画图连线、箭号表示
  20. 多元线性回归matlab实现

热门文章

  1. 数据分析工程师_第02讲Pandas教程(上篇)
  2. 时区 夏令时造成的问题
  3. ffmpeg入门教程之YUV编码成h264 API详解
  4. ffmpeg 一条命令实现 圆形画中画效果
  5. 计算机出现蓝屏cpu很烫,win7系统电脑蓝屏罪魁祸首CPU超频的解决方法
  6. git使用中遇到的remote:Permission to xxx denied to xxx问题如何解决报错403找不到的问题
  7. 基于java的简单的(即时通讯)聊天程序
  8. php导入word文件怎么打开,phpword 导入word
  9. 如何查看已删除的微信聊天记录?教你两招,找到答案
  10. 星空粒子登录页面 jsp