【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://www.mfbz.cn/a/600268.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于CLAHE算法的图像增强及评价

摘要: 本研究旨在探讨对比度限制自适应直方图均衡化(CLAHE)算法在数字图像处理中的应用。CLAHE算法通过在局部区域内进行直方图均衡化,有效地增强了图像的对比度,并在保持图像细节的同时避免了过度增强的问题。本文通过…

C语言判断字符旋转

前言 今天我们使用c语言来写代码来实现字符串选择的判断,我们来看题目 题目描述 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 AABCD和s2 BCDAA,返回1 给定s1abcd和s2ACBD,返回0. A…

关于获取邮件授权码

以网易邮箱为例: 第一步:登录之后点击设置 第二步:点击POP3/SMTP/IMAP 第三步:开启SMTP服务 开启哪个都可以 第四步: 扫描二维码开启服务 第五步: 使用手机扫面二维码发送短信 第六步: 得到授权码 将授权码写入配置文件

ADS基础教程10-多态性(动态模型选择)

目录 一、多态性定义二、操作步骤1.模型建立2.模型选择3.执行仿真 一、多态性定义 ADS中支持一个Symbol中,可以同时存在多个子图。在仿真时可以动态选择不同的子图继续宁仿真。 二、操作步骤 1.模型建立 在上一章A…

路飞吃桃递归问题

在写代码之前,补充两个知识点 1.C语言递归的模版 2.递归是怎么工作的 好!话不多说让我们开始吧: 我们知道路飞吃了n天,每次都是吃一半+1,知道最后一天,只有一个桃子了,所以就可以列出式子&…

抖音小店个人店和个体店有什么不同?区别问题,新手必须了解!

哈喽~我是电商月月 新手开抖音小店入驻时会发现,选择入驻形式时有三个选择,个人店,个体店和企业店 其中,个人店和个体店只差了一个字,但个人店不需要营业执照,是不是入驻时选择个人店会更好一点呢&#x…

『 Linux 』基础IO/文件IO (万字)

文章目录 🦄 什么是IO🦄 文件IO(库级别)👾 文件的打开与关闭👾 当前路径👾 文件的读写 🦄 标准输入输出流🦄 文件IO(系统级别)👾 文件的打开👾 文件的关闭👾 …

独立开发,做的页面不好看?我总结了一些工具与方法

前言 我有时候会自己开发一些项目,但是不比在公司里面,自己开发项目的时候没有设计稿,所以做出来的页面比较难看。 开发了几个项目之后,我也总结了以下的一些画页面的资源或者方法,希望对大家有帮助~ 颜色&字体 这一部分主要参考的是antd的方案,主要包括颜色与字…

LeetCode算法题:8.字符串转换整数 (atoi)

请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末…

NumPy及Matplotlib基本用法

NumPy及Matplotlib基本用法 导语NumPy导入与生成算术运算N维数组广播元素访问 Matplotlib简单图案绘制多函数绘制图像显示参考文献 导语 深度学习中经常需要对图像和矩阵进行操作,好在python提供了Numpy和Matplotlib库,前者类似一个已经定义的数组类&am…

【负载均衡在线OJ项目日记】编译与日志功能开发

目录 日志功能开发 常见的日志等级 日志功能代码 编译功能开发 创建子进程和程序替换 重定向 编译功能代码 日志功能开发 日志在软件开发和运维中起着至关重要的作用,目前我们不谈运维只谈软件开发;日志最大的作用就是用于故障排查和调试&#x…

国货美妆进入新纪元之际,毛戈平打好“高端牌”了吗?

当前,国内美妆市场的格局已发生较大变化。 一边是国际品牌的“退场”,据统计,2023年退出中国市场的海外美妆品牌有20多个;一边是国内美妆品牌正在迎来自己的时代。 根据魔镜洞察数据,2024年一季度,国货彩…

论文辅助笔记:Tempo之modules/lora.py

1 LoRALayer 基类 2 Linear 2.1 __init__ 2.2 reset_parameter & train 2.3 forward 3 MergeLinear 3.1__init__ enable_lora指定了哪些输出特征使用lora 3.2 reset_parameters & zero_pad & merge_AB 3.3 train & forward

纯血鸿蒙APP实战开发——底部面板嵌套列表滑动案例

介绍 本示例主要介绍了利用panel实现底部面板内嵌套列表,分阶段滑动效果场景。 效果图预览 使用说明 点击底部“展开”,弹出panel面板。在panel半展开时,手指向上滑动panel高度充满页面,手指向下滑动panel隐藏。在panel完全展开…

从零开始的软件测试学习之旅(七)接口测试三要素及案例

接口测试三要素及案例 接口测试介绍接口预定义接口测试的主要作用测试接口流程如下接口测试三要素接口测试分类RESTful架构风格RESTful架构三要素要素一要素二要素三 RESTful架构风格实现案例复习复盘 接口测试介绍 接口介绍 不同主体之间进行通信的通道,它应具有一套规范/标准…

Vulnhub项目:NAPPING: 1.0.1

1、靶机介绍 靶机地址:Napping: 1.0.1 ~ VulnHub 2、渗透过程 老规矩,先探测,靶机ip:192.168.56.152 本机ip:192.168.56.146 来看一看靶机开放哪些端口,nmap一下 nmap -sS -sV -A -T5 192.168.56.152 开…

UE5自动生成地形二:自动生成插件

UE5自动生成地形二:自动生成插件 Polycam使用步骤 本篇主要讲解UE5的一些自动生成地形的插件 Polycam 此插件是通过现实的多角度照片自动建模生成地形数据,也是免费的。这里感谢B站up主古道兮峰的分享 Polycam网站 插件下载地址 插件网盘下载 提取码&a…

6.移除元素

文章目录 题目简介题目解答解法一:双指针代码:复杂度分析: 解法二:双指针优化代码:复杂度分析: 题目链接 大家好,我是晓星航。今天为大家带来的是 相关的讲解!😀 题目简…

Portforge:一款功能强大的轻量级端口混淆工具

关于Portforge Portforge是一款功能强大的轻量级端口混淆工具,该工具使用Crystal语言开发,可以帮助广大研究人员防止网络映射,这样一来,他人就无法查看到你设备正在运行(或没有运行)的服务和程序了。简而言…

数据库(MySQL)—— 初识和创建用户

数据库(MySQL)—— 初识 什么是数据库数据库的种类创建用户mysql -h 主机名或IP地址 -u 用户名 -p 登录mysqlSELECT USER(); 查看当前用户切换用户GRANT ALL PRIVILEGES ON 赋予用户权限 REVOKE 撤销权限示例注意事项 MySQL的图形化界面工具查看所有用户…
最新文章