【硬件外设使用】——PWM

news2025/1/11 18:05:43

【硬件外设使用】——PWM

  • PWM基本概念
  • PWM使用方法
    • pyb.pwm
      • 方法
      • 属性
    • machine.pwm
      • 方法
      • 属性
  • PWM可用的传感器

PWM基本概念

PWM是脉冲宽度调制(Pulse Width Modulation)的缩写,是一种用数字信号控制模拟电路输出的技术。PWM通常被用来控制电压或电流的大小,通过改变脉冲的宽度来控制输出信号的平均值。
在这里插入图片描述

PWM信号由一系列周期性的脉冲组成,每个脉冲的宽度代表了输出电压或电流的大小。如果脉冲的宽度为100%,则输出电压或电流将保持最大值;
如果脉冲的宽度为0%,则输出电压或电流将为0。 通过改变脉冲的宽度和周期,我们可以调整输出电压或电流的平均值,从而实现对电路元件的控制。

PWM技术在实际应用中具有广泛的应用,例如电机控制电机控制、LED灯光调节、音频数字转换等。在MicroPython中,我们可以使用相应的PWM模块进行数字信号控制,从而实现各种控制和应用场景。

PWM使用方法

pyb.pwm

pyb.pwm是MicroPython中用于控制PWM输出的模块。它提供了一些方法和属性,用于设置和控制PWM输出的频率、占空比等参数,从而实现对各种应用场景的控制。

以下是 pyb.pwm 常用的方法和属性:

方法

  • pulse_width(pulse_width): 设置脉冲的高电平持续时间,单位为毫秒。
  • freq(freq): 设置PWM输出频率,单位为Hz。
  • init(freq=1000, duty=50, timer=4, channel=1, pin=None): 初始化PWM输出,freq为频率,duty为占空比(默认为50%),timer和channel为定时器和通道号(默认为4和1)。

属性

  • pulse_width(): 返回当前脉冲的高电平持续时间,单位为毫秒。
  • freq(): 返回当前PWM输出频率,单位为Hz。
  • duty(): 返回当前PWM输出的占空比,百分比表示。

示例代码:

import pyb

# 初始化PWM输出
pwm = pyb.PWM(pyb.Pin.board.X1)

# 设置PWM输出的频率为2000Hz,占空比为20%
pwm.freq(2000)
pwm.duty(20)

# 持续输出PWM信号
while True:
    pass

以上代码初始化了一个PWM输出引脚,并设置了输出频率为2000Hz、占空比为20%。在while循环中持续输出PWM信号。

machine.pwm

machine.pwm是MicroPython中用于控制PWM输出的模块之一,它提供了一些方法和属性,用于设置和控制PWM输出的频率、占空比等参数,从而实现对各种应用场景的控制。

以下是 machine.pwm 常用的方法和属性:

方法

  • freq(freq): 设置PWM输出频率,单位为Hz。
  • duty(duty):设置PWM输出的占空比,范围在0到1之间。
  • deinit():停止PWM输出。

属性

  • freq(): 返回当前PWM输出频率,单位为Hz。
  • duty(): 返回当前PWM输出的占空比,百分比表示。

示例代码:

import machine
import time

# 初始化PWM输出
pwm = machine.PWM(machine.Pin(12))

# 设置PWM输出的频率和占空比
pwm.freq(1000)
pwm.duty(0.5)

# 持续输出PWM信号
while True:
    time.sleep(1)
    pwm.duty(0.2)
    time.sleep(1)
    pwm.duty(0.8)

以上代码初始化了一个PWM输出引脚,并设置了输出频率为1000Hz、占空比为50%。在while循环中不断改变占空比,以产生PWM信号的亮度变化。

PWM可用的传感器

PWM信号通常用于控制电机和舵机,在这些应用中,PWM信号的占空比决定了电机或舵机的速度和位置。

除了控制电机和舵机之外,PWM信号还可以用来控制一些传感器的输出,例如:

  1. 舵机角度传感器:舵机角度传感器可以通过接收PWM信号来确定舵机当前的位置和角度。通过改变PWM信号的占空比,可以改变舵机的位置,从而获得不同的角度测量值。
    在这里插入图片描述

  2. 温度传感器:一些温度传感器(如Thermistor)可以使用PWM信号来读取温度值。PWM信号的占空比可以控制传感器输出的电压,从而影响温度传感器的电阻值,通过对电阻值的读取可以得到温度值。(基本是最为器件放到开发板的,我们新手用不到)

  3. 光照传感器:PWM信号同样可以用于读取光照传感器的输出。PWM信号的频率和占空比可以影响光照传感器的输出电压,从而影响传感器的测量范围和分辨率。

需要根据具体的传感器和应用情况来确定PWM信号的参数,并结合传感器的特性进行调整。

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

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

相关文章

【 Spring MVC 核心功能(三) - 输出数据】

文章目录引言一、返回静态页面二、返回非静态页面的数据三、返回 JSON 对象四、请求转发(forward)和请求重定向(redirect)五、拓展:IDEA 热部署(热加载)3.1 添加 SpringBoot DevTools 框架3.2 开起 IDEA 的自动编译3.3 开起运行中的热部署3.4 使用 debug 启动项目引…

Docker系列 基于OpenAI API自建ChatGPT

转自我的博客文章https://blognas.hwb0307.com/linux/docker/4201,内容更新仅在个人博客可见。欢迎关注! 前言 我用帐号/密码使用chatGPT已经有一段时间。但是,我有几个私交较密的朋友,他们并不具备使用chatGPT的条件&#xff1b…

kafka集群topic重新分配leader

1.案例 当kafka集群的broker节点宕机重启后,此broker节点的partition分区的leader节点会被选举为其它broker节点,此broker节点恢复后就会导致配分不均衡 可以看到所有partition的leader节点都在broker id为1的节点上,原来是平均分配到3个broker节点上,replicas项的首位…

【动手学深度学习】(task123)注意力机制剖析

note 将注意力汇聚的输出计算可以作为值的加权平均,选择不同的注意力评分函数会带来不同的注意力汇聚操作。当查询和键是不同长度的矢量时,可以使用可加性注意力评分函数。当它们的长度相同时,使用缩放的“点-积”注意力评分函数…

文章改写工具-文章改写工具的原理

文章改写工具的原理 文章改写工具是一种利用自然语言处理技术和相关算法,对原始文章进行改写、调整或替换等操作,生成与原始文章类似但又不完全相同的新文章的工具。 实现文章改写的工具通常需要包括以下几个步骤: 文本预处理:对原…

【数据库数据恢复】MongoDB数据库启动失败的数据恢复案例

数据库数据恢复环境: Windows Server操作系统服务器,部署MongoDB数据库。 数据库故障&分析: 在MongoDB数据库服务未关闭的情况下,管理员将MongoDB数据库文件从原分区拷贝到其他分区,然后将MongoDB数据库所在原分区…

网页解析--接上篇--bs4/xpath

网页解析完成的是从下载回来的html文件中提取所需数据的方法,一般会用到的方法有: 正则表达式:将整个网页文档当成一个字符串用模糊匹配的方式来提取出有价值的数据 Beautidul Soup:一个强大的第三方插件 lxml:解析html网页或者xm…

一文详解 PoseiSwap,Nautilus Chain 上的首个 DEX

前不久,首个 Layer3 概念的新链 Nautilus Chain 推出了测试网“Triton” 引发瞩目,据了解过,经过一个月的Triton I测试历程,Nautilus Chain社区成员突破200,000,同时测试网激励活动注册地址数突破180,000,链…

Kotlin中lateinit 和 Lazy 的区别

Kotlin中Lateinit 和 Lazy 的区别 latinit 我们可能不想在定义它们时初始化我们的值,相反我们可能想在以后的任何时间初始化并在我们的应用程序中使用它们。但是在使用我们的值之前,一定要记住,我们的值必须先初始化,然后才能使用…

高斯混合模型 GMM 的详细解释

高斯混合模型(后面本文中将使用他的缩写 GMM)听起来很复杂,其实他的工作原理和 KMeans 非常相似,你甚至可以认为它是 KMeans 的概率版本。 这种概率特征使 GMM 可以应用于 KMeans 无法解决的许多复杂问题。 因为KMeans的限制很多…

【factoryio】虚拟仓储实现(入仓出仓)

实现虚拟工厂场景之一的智能仓储实验 注:本文仅供参考 目录 引 入仓部分 1.上料部分 1.效果 2.实现 2.入仓部分 1.效果 2.实现 3.入仓扩展 1.行列控制和优先级 2.入仓优化和完善 出仓部分 1.出仓 2.后传送带 3.出仓效果 1.效果 2.优先级 3.完…

Linux时间服务器(ntp)

1.配置ntp时间服务器,确保客户端主机能和服务主机同步时间 2.配置ssh免密登陆,能够通过客户端主机通过redhat用户和服务端主机基于公钥验证方式进行远程连接 一.配置ntp时间服务器,确保客户端主机能和服务主机同步时间 1、软件安装 [rootl…

高速前行的低代码,其能力边界到底在哪?

最近半年,有好些来自不同岗位、不同立场的人开始问同一个问题:低代码平台的边界是什么?低代码无所不能吗? “全民开发”、“人人都是开发者”这样的口号愈演愈烈,“低代码能力有没有边界”、“边界在哪”,这…

数据要素化全面提速,数据复制将迎来春天?

数据复制市场将迎来真正的春天? 目前看的确如此。近日,国家发改委密集发文,从产权、分配、流通、安全等多个角度解读“数据二十条”( 《中共中央国务院关于构建数据基础制度更好发挥数据要素作用的意见》,简称“数据二…

算法的时间复杂度和空间复杂度(1)

1.算法效率 2.时间复杂度 3.空间复杂度 1.算法效率 如何衡量一个算法的好坏&#xff1f; 比如对于以下斐波那契数列&#xff1a; long long Fib(int N) { if(N < 3) return 1; return Fib(N-1) Fib(N-2)&#xff1b; } 斐波那契数列的递归实现方式非常简洁&#xff0c;但…

SOFA Weekly|SOFA 开源五周年来自社区家人的祝福、社区本周贡献 issue 精选

SOFA WEEKLY | 每周精选 筛选每周精华问答&#xff0c;同步开源进展欢迎留言互动&#xff5e;SOFAStack&#xff08;Scalable Open Financial Architecture Stack&#xff09;是蚂蚁集团自主研发的金融级云原生架构&#xff0c;包含了构建金融级云原生架构所需的各个组件&#…

《程序员面试金典(第6版)》面试题 10.05. 稀疏数组搜索(二分法,分治算法入门题目,C++)

题目描述 稀疏数组搜索。有个排好序的字符串数组&#xff0c;其中散布着一些空字符串&#xff0c;编写一种方法&#xff0c;找出给定字符串的位置。 示例1: 输入: words [“at”, “”, “”, “”, “ball”, “”, “”, “car”, “”, “”,“dad”, “”, “”], s “t…

2023有哪些便宜好用的蓝牙耳机?性价比最高的无线耳机排行

不管入手什么东西&#xff0c;性价比永远能成为人们入手的最重要的参考要素之一。那么&#xff0c;在蓝牙耳机市场中&#xff0c;有哪些便宜好用的蓝牙耳机&#xff1f;针对这个问题&#xff0c;我来给大家推荐几款性价比最高的无线耳机&#xff0c;一起来看看吧。 一、南卡小音…

采购系统是如何管理供应商的?

随着数字化的推进&#xff0c;企业面临着越来越多的供应商管理问题。企业采购数字化转型已经成为大势所趋&#xff0c;对于采购数字化转型而言&#xff0c;供应商管理是重要一环。 供应商准入管理 在供应商准入阶段&#xff0c;企业需要从供应商资质、财务能力、信誉能力、管理…

vite 安装腾讯im组件TUIKit问题记录

按照vue3ts要求安装依赖包 即时通信 IM Web & H5-含 UI 集成方案&#xff08;荐&#xff09;-文档中心-腾讯云 (tencent.com) 这个版本的文档采用全局安装sass&#xff1a; npm install -g sass sass-loader10.1.1 实际安装后遇到无法解析sass的错误提示&#xff0c;使用…