【MM32F3270 Micropython】pwm输出

文章目录

  • 前言
  • 一、PWM脉宽调制技术介绍
  • 二、machine.PWM 类
    • 2.1 machine.PWM 类的构造对象
    • 2.2 PWM 对象初始化
    • 2.3 关闭PWM设备
    • 2.4 设置pwm的周期
    • 2.5 设置占空比
  • 三、pwm示例代码
  • 总结


前言

MicroPython是一种精简的Python 3编程语言实现,旨在在微控制器和嵌入式系统上运行。在嵌入式系统中,PWM(脉冲宽度调制)是一种常见的技术,用于控制电机、LED和其他需要模拟信号的设备。在本文中,我们将探讨如何在MM32F3270微控制器上使用MicroPython实现PWM输出,以控制外部设备。


一、PWM脉宽调制技术介绍

当我们想要控制设备的亮度或速度时,PWM脉宽调制技术就派上用场了。它的原理非常简单,就好像我们在灯泡上使用开关一样。开关可以打开或关闭灯泡,但无法改变亮度。但是,如果我们快速地开关灯泡,让它在打开和关闭之间不断变化,我们就能够通过控制开关的开启时间比例来改变亮度。

PWM脉宽调制的原理就是通过调整脉冲信号的宽度来控制设备的平均电平。脉冲信号是一种快速的开关信号,它会以固定的周期重复。脉冲的宽度(也称为占空比)决定了信号在一个周期内的开启时间比例。通过改变占空比,我们可以调整设备的亮度或速度。

在这里插入图片描述
例如,考虑一个LED灯。当脉冲信号处于高电平状态时,LED灯会亮起;当脉冲信号处于低电平状态时,LED灯会熄灭。如果我们增加脉冲信号处于高电平状态的时间,即增加占空比,LED灯就会更亮。反之,如果减少脉冲信号处于高电平状态的时间,即减小占空比,LED灯就会变暗。
在这里插入图片描述

通过快速调整脉冲信号的宽度,PWM技术可以精确控制设备的亮度或速度,无论是LED灯、电机还是其他设备。这种技术在嵌入式系统和物联网应用中非常常见,因为它简单而高效,能够满足各种控制需求。

大家可以看下面这篇文章来学习如何理解和计算pwm的占空比:【单片机概念基础】迟迟搞不懂预分频系数、PWM占空比等等概念和计算怎么办?
其中pwm的频率就是pwm的周期

二、machine.PWM 类

2.1 machine.PWM 类的构造对象

class machine.PWM(pin,freq,duty)
使用示例:pwm = machine.PWM(Pin('PA1'),freq = 1000)

2.2 PWM 对象初始化

其函数原型如下:

pwm.init(freq, duty)

在这里插入图片描述
他不能设置占空比的范围即pwm的分辨率,最大就为10位

2.3 关闭PWM设备

其函数原型如下

pwm.deinit()

2.4 设置pwm的周期

其函数原型如下:

pwm.freq([value])

在这里插入图片描述

2.5 设置占空比

其函数原型如下:

pwm.duty ([value])

在这里插入图片描述

三、pwm示例代码

pwm = PWM(Pin('PA1'),freq = 1000)while True:# 渐亮for i in range(0,1024):pwm.duty(i)time.sleep_ms(1)# 渐暗for i in range(1023,0,-1):pwm.duty(i)time.sleep_ms(1)

在这里插入图片描述
他的效果就是led从亮到暗的一个过程


总结

本文介绍了在MM32F3270微控制器上使用MicroPython实现PWM输出的方法。首先,我们了解了PWM的基本概念和在嵌入式系统中的应用。然后,我们探讨了如何在MM32F3270上配置PWM输出,并提供了示例代码以演示如何控制PWM输出的频率和占空比。通过本文,读者可以学习如何利用MicroPython在嵌入式系统中实现PWM输出,从而为各种应用场景提供灵活的控制和调节功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3016587.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

从0到1提审苹果商店(appstore)上线一款新APP

本篇主要复盘和介绍一款APP如何从0到1上线到苹果商店,将我自己项目遇到的坑跟大家分享,希望能为同样做开发或者运营的你提供经验,少走弯路。 如果你是24年1月1日之后开始首次提审APP,还需要先将自己的APP在工信部备案,苹果后台增加了工信部备案号的填写,备案方法和经验如…

揭秘 IEEE/ACM Trans/CCF/SCI,谁才是科研界的王者?

会议之眼 快讯 在学术探索的浩瀚星海中,每一篇论文都像是一颗璀璨的星辰,而那些被顶级期刊或会议收录的论文,则无疑是最耀眼的几颗。 在众多评价标准中,IEEE/ACM Transactions、CCF推荐期刊和会议、SCI分区期刊,它们…

18 内核开发-内核重点数据结构学习

课程简介: Linux内核开发入门是一门旨在帮助学习者从最基本的知识开始学习Linux内核开发的入门课程。该课程旨在为对Linux内核开发感兴趣的初学者提供一个扎实的基础,让他们能够理解和参与到Linux内核的开发过程中。 课程特点: 1. 入门级别&…

Qt---day2-信号与槽

1、思维导图 2、 拖拽式 源文件 #include "mywidget.h" #include "ui_mywidget.h" MyWidget::MyWidget(QWidget *parent) : QWidget(parent) , ui(new Ui::MyWidget) { ui->setupUi(this); //按钮2 this->btn2new QPushButton("按钮2",th…

什么是多模态大模型,有了大模型,为什么还要多模态大模型?

随着人工智能技术的愈演愈烈,其技术可以说是日新月异,每隔一段时间就会有新的技术和理念被创造出来;而多模态大模型也是其中之一。 什么是多模态 想弄明白什么是多模态大模型,那么首先就要弄明白什么是多模态。 简单来说&#x…

【Git】Commit后进行事务回滚

起因 因为一直使用git add .,在学习pytorch中添加了一个较大的数据集后,导致git push失败,而这个大数据集并不是必须要上传到仓库的,但是因为自己在设置.gitignore前已经进行了git comit,所以,需要进行事务…

嵌入式linux学习第三天汇编语言点灯

嵌入式linux学习第三天汇编语言点灯 今天学习如何在linux板子上点灯。 I.MX6U GPIO 详解 我们发现I.MX6U GPIO是分为两类的,:SNVS 域的和通用的。在讨论i.MX6U或类似的复杂微处理器时,了解其GPIO(通用输入输出)引脚…

Windows环境编译 VVenC 源码生成 Visual Studio 工程

VVenC介绍 Fraunhofer通用视频编码器(VVenC)的开发是为了提供一种公开可用的、快速和有效的VVC编码器实现。VVenC软件基于VTM,其优化包括软件重新设计以减轻性能瓶颈、广泛的SIMD优化、改进的编码器搜索算法和基本的多线程支持以利用并行。此外,VVenC支…

深度学习之基于YOLOv5目标检测可视化系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着深度学习技术的快速发展,目标检测在多个领域中的应用日益广泛,包括…

125.两两交换链表中的节点(力扣)

题目描述 代码解决及思路 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), …

很快就可以试用Domino 15了

大家好,才是真的好。 前几天在比利时的安普卫特举办的Engage2024大会已经结束,流出的现场照片很多,主要是会议场地照片很多,说是令人震撼;可惜这次一手的PPT和会议内容不多.是的,本来我也是在等与会者写的…

VMware 虚拟机打开一段时间后卡死,VNX进程CPU占比高

一、问题描述 打开虚拟机后可以正常运行 运行几分钟后突然卡死 然后通过任务管理器可以观察到VMware Workstation VMX应用进程的CPU占比高,CPU也出现异常 关闭虚拟机重新开启,还是一样卡死 二、系统环境 系统: Windows10 VMware: Workstation 17 Pro …

如何提取视频二维码链接?二维码在线提取链接的方法

随着现在二维码用途的不断增多,很多不同的内容都可以生成二维码来展示,比如现在视频二维码就是比较常见的一种类型,一般用于产品介绍、教程演示、宣传推广等等。二维码的方式在某些情况下也有局限性,当无法扫码时就无法查看内容&a…

Linux信号捕捉

要处理信号, 我们进程就得知道自己是否收到了信号, 收到了哪些信号, 所以进程需要再合适的时候去查一查自己的pending位图 block 位图 和 hander表, 什么时候进行检测呢? 当我们的进程从内核态返回到用户态的时候&…

荷香堪筑梦,鸳鸯和月寻。(变相BFS搜索)

本题链接:登录—专业IT笔试面试备考平台_牛客网 题目: 样例: 输入 3 4 2 .... ***. ..a. 输出 yes 思路: 根据题意,这里 1 s 可以移动多次,我们将每次可以移动避开雪的的位置存储起来,判断当…

springboot3常用注解使用

组键注册注解 组件注册步骤总结 条件注解 演示示例 属性绑定注解 ConfigurationProperties进行绑定 EnableConfigurationProperties进行绑定 其他常用注解 EnableAutoConfiguration ComponentScan RequestMapping GetMapping PostMapping Autowired Resource Servi…

js浏览器请求,post请求中的参数形式和form-data提交数据时数据格式问题(2024-05-06)

浏览器几种常见的post请求方式 Content-Type 属性规定在发送到服务器之前应该如何对表单数据进行编码。 默认表单数据会编码为 "application/x-www-form-urlencoded" post请求的参数一般放在Body里。 Content-Type(内容类型),一般…

25-ESP32-S3 内置的真随机数发生器(RNG)

ESP32-S3 内置的真随机数发生器(RNG)😎 引言 📚 在许多应用中,随机数发生器(RNG)是必不可少的。无论是在密码学🔒、游戏🎮、模拟🧪或其他领域,随…

【第6节课笔记】LagentAgentLego

Lagent 最中间部分的是LLM,即为大语言模型模块,他可以思考planning和调用什么action,再将其转发给动作执行器action executer执行。 支持的工具如下: Arxiv 搜索 Bing 地图 Google 学术搜索 Google 搜索 交互式 IPython 解释器 IP…

6.Nginx

Nginx反向代理 将前端发送的动态请求有Nginx转发到后端服务器 那为何要多一步转发而不直接发送到后端呢? 反向代理的好处: 提高访问速度(可以在nginx做缓存,如果请求的是同样的接口地址,这样就不用多次请求后端&#…