IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> Micropython——关于使用PWM信号来对LED灯进行控制 -> 正文阅读

[嵌入式]Micropython——关于使用PWM信号来对LED灯进行控制

笔者手中恰好有一款树莓派PICO的板子,正好也想学习和使用,所以今天就来写写

以单片机为例,我们知道,单片机的IO口输出的是数字信号,IO口只能输出高电平和低电平

假设高电平为5V,低电平则为0V,那么我们要输出不同的模拟电压,就要用到PWM,通过改变IO口输出的方波的占空比从而获得使用数字信号模拟成的模拟电压信号。

我们知道,电压是以一种连接1或断开0的重复脉冲序列被夹到模拟负载上去的(例如LED灯,直流电机等),连接即是直流供电输出,断开即是直流供电断开。通过对连接和断开时间的控制,理论上来讲,可以输出任意不大于最大电压值(即0~5V之间任意大小)的模拟电压

比方说 占空比为50% 那就是高电平时间一半,低电平时间一半,在一定的频率下,就可以得到模拟的2.5V输出电压,那么75%的占空比,得到的电压就是3.75V。

在这里插入图片描述


machine.PWM(Pin)  #指定GPIO重新初始化

PWM。init(channel,freq,duty)     #根据输入的参数初始化PWM对象

PWM.deinit()     #用于关闭PWM对象,对对象deinit之后需要重新init才能使用

PWM.freq([value])    #用于获取或者设置 PWM 对象的频率,频率的范围为 [1, 156250]。

PWM.duty_u16([value])     #用于设置占空比,数值应在0-65536之间

PWM.duty_ns([value])         #用于设置高电平的时间



#该示例效果为LED灯逐渐点亮和熄灭
from machine import Pin,PWM
import utime
LED = PWM(Pin(25))
LED.freq(1000)

LED_duty = 0

LED_direction = 1

while True:
    LED_duty += LED_direction
    if LED_duty >= 100:
        LED_duty = 100
        LED_direction = -1
    elif LED_duty <= 0:
        LED_duty = 0
        LED_direction = 1
    LED.duty_u16(int(LED_duty * 655.36))   #使得LED灯点亮的关键参数,如果未设置LED的占空比,则无法点亮LED灯
    if LED_duty%5 == 0:
        print(LED_duty)
    utime.sleep(0.1)

Thonny绘图器所展示的效果图:

#该示例效果为每秒点亮和熄灭LED灯

from machine import Pin,PWM
import utime

led = PWM(Pin(25))

led.freq(1000)
led_duty = 0

while True:
    if led_duty >= 1:
        led_duty = 0
        led.duty_u16(65536)          #设置为高电平
        utime.sleep(1)
        print(led_duty)
    elif led_duty <= 0:
        led_duty = 1
        led.duty_u16(0)              #设置为低电平
        utime.sleep(1)
        print(led_duty)       
    utime.sleep(0.5)

Thonny绘图器所展示的效果图:?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:23:57  更:2022-03-11 22:24:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:49:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码