Arduino的PWM功能应用:会呼吸的灯

目录

概述

1 认识PWM

1.1 PWM原理

1.2 PWM的应用

1.3 在Arduino中使用PWM

2.硬件

2.1 硬件结构

2.2 线路连接

3 软件

3.1 编译和下载代码

3.2 详细代码

4 测试

4.1 灯的变化测试

4.2 使用逻辑分析仪看波形


概述

       本文通过一个简单的案例,介绍Arduino中PWM的应用方法。搭建一个控制LED的电路,然后使用PWM来控制LED的暗亮程度,以加强对PWM功能的理解。还详细介绍PWM相关知识,便于更加详尽的理解PWM在工程实践中的应用。

1 认识PWM

1.1 PWM原理

        PWM( Pluse Width Modulation )是方波控制信号。其通过控制高电平在一个周期内的宽度,可以控制输出信号的变化。PWM信号应用中有一个非常重要的概念: 占空比(Duty Cycle)。那么什么是占空比呢?

占空比 f = t/T 

t:   高电平持续时间

T:  周期

1.2 PWM的应用

1)  实现模拟信号输出。其实现方法是: 使输出的PWM通过一个滤波电路,将PWM转变成连续的模拟信号

2)  实现直流电机调速,控制步进电机步长,舵机旋转角度等

3)控制LED或者蜂鸣器的引脚电平,使其按照一定的规律工作

1.3 在Arduino中使用PWM

       在Arduino板卡中,只有部分引脚可以输出PWM,这些引脚在扩展插槽上有标识符(~)。一个使用PWM功能的案例:

Step - 1:   配置引脚为输出模式

pinMode( pin,OUTPUT);

Step - 2: 改变占空比参数,控制输出信号的高电平时长

 analogWrite( pin,  para); 

上述伪代码中,para为占空比参数,其范围为(0 ~ 255 ),数值越大,占空比越大。在Arduino UNO 板卡中,一个PWM的周期为: 2ms左右

2.硬件

2.1 硬件结构

1) Arduino UNO主控板,实现PWM波功能,用于控制灯的状态

2)led灯珠, 指示灯

3)一个500欧姆电阻,限流作用

4)面包板,方便导线连接

5)杜邦线若干,用于连接元器件

2.2 线路连接

建议LED的线路连接方式  

LED控制引脚与Arduino主板的线路对应关系

Arduino IOLED trigger IO注释
PIN-3LED负端口

3 软件

3.1 编译和下载代码

3.2 详细代码

/*
Copyright  2024-2029. All rights reserved.
文件名     : breath_led
作者       : tangmingfei2013@126.com
版本       : V1.0
描述       : 呼吸灯
其他       : 无
日志       : 初版V1.0 2024/2/18  
文档路径   : 
*/
#include <MsTimer2.h>#define  LEDPIN   3void setup ()
{pinMode(LEDPIN,OUTPUT);
}void loop()
{//循环语句,控制PWM亮度的增加for (int a=0; a<=255;a++){analogWrite(LEDPIN,a);delay(5);      //当前亮度级别维持的时间,单位毫秒}//循环语句,控制PWM亮度减小 for (int a=255; a>=0;a--){analogWrite(LEDPIN,a);delay(5);     //当前亮度的维持的时间,单位毫秒  }delay(100);//完成一个循环后等待的时间,单位毫秒
}

4 测试

4.1 灯的变化测试

编译代码后,下载到板卡中,可以看到led由暗到亮,由亮到暗的变化特征

4.2 使用逻辑分析仪看波形

1)亮度大的波形

2)亮度中等波形

3)亮度暗时波形

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 学习和实践笔记(11)

三大神器&#xff1a; 官方网址: http://www.jetbrains.com/idea/ 官方网址: https://code.visualstudio.com/ 官方网址: http://www.eclipse.org 装好了idea社区版&#xff0c;并试运行以下代码&#xff0c;OK&#xff01; //TIP To <b>Run</b> code, press &l…

WebServer 之 http连接处理(下)

目录 ✊请求报文--解析 流程图 && 状态机 状态机 -- 状态转移图 主状态机 从状态机 http 报文解析 HTTP_CODE 含义 从状态机 逻辑 主状态机 逻辑 &#x1f41e;请求报文--响应 基础API stat mmap iovec writev 流程图 HTTP_CODE 含义(2) 代码分析 …

HTTP缓存技术

大家好我是苏麟 , 今天说说HTTP缓存技术 . 资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP缓存技术 HTTP 缓存有哪些实现方式? 对于一些具有重复性的 HTTP 请求&#xff0c;比如每次请求得到的数据都一样的&#xff0c;我们可以把这对「请求-响…

Anaconda修改虚拟环境的路径

新版本的anaconda会默认将虚拟环境配置在C盘下&#xff0c;默认的路径是C:\Users\username。同时anaconda3下envs目录是空的。 这里是建立虚拟环境是将路径修改到anaconda的方法。 第一步——修改.condarc文件 首先&#xff0c;C:\Users\username找到.condarc文件 添加或修…

004 - Hugo, 分类

004 - Hugo, 分类content文件夹 004 - Hugo, 分类 content文件夹 ├─.obsidian ├─categories │ ├─Python │ └─Test ├─page │ ├─about │ ├─archives │ ├─links │ └─search └─post├─chinese-test├─emoji-support├─Git教程├─Hugo分类├─…

数学建模【多目标规划】

一、多目标规划简介 多目标规划的本质是“既要XXX又要XXX”&#xff0c;而不论是线性规划还是非线性规划都是一个目标函数&#xff0c;例如工业生产产品&#xff0c;追求最大化利润等。但是多目标规划存在多个目标&#xff0c;可以转化出多个目标函数&#xff0c;故难点在同时…

电商行业的机遇在哪?致淘宝平台API数据接口

在电商行业蓬勃发展的今天&#xff0c;我们不得不提及淘宝这个伟大的平台。它不仅为亿万用户提供了便捷的购物体验&#xff0c;更为无数的商家创造了一个财富的聚集地。而如今&#xff0c;随着技术的不断进步&#xff0c;淘宝开放了其强大的API接口&#xff0c;为广大开发者带来…

Vuex核心知识整理

目录 1 搭建vuex环境 2 求和案例 3 getters 配置项 4 mapState 和 mapGetters 5 mapMutations 和 mapActions 6 Vuex 模块化 1 搭建vuex环境 vuex工作原理图&#xff08;摘自官网&#xff09; 什么时候使用Vuex&#xff1a; 1.当多个组件依赖于统一状态 2.来自不同组件…

安装faiss环境教程

文章目录 打开环境安装faiss环境检查已安装的环境切换环境至faiss 打开环境 source activate # 打开环境安装faiss环境 conda create -n faiss_env # 安装faiss环境检查已安装的环境 conda info --envs # 检查已安装的环境切换环境至faiss conda a…

【51单片机实验笔记】开关篇(二) 矩阵按键

目录 前言原理图分析矩阵按键扫描算法 软件实现1. 矩阵键盘检测2. 简易计算器实现 总结 前言 本节内容&#xff0c;我们学习一下矩阵按键&#xff0c;它是独立按键的阵列形式&#xff0c;常见的应用即键盘。 本节涉及到的封装源文件可在《模块功能封装汇总》中找到。 本节完…

人工智能学习与实训笔记(一):零基础理解神经网络

人工智能专栏文章汇总&#xff1a;人工智能学习专栏文章汇总-CSDN博客 本篇目录 一、什么是神经网络模型 二、机器学习的类型 2.1 监督学习 2.2 无监督学习 2.3 半监督学习 2.4 强化学习 三、网络模型结构基础 3.1 单层网络 ​编辑 3.2 多层网络 3.3 非线性多层网络…

CSS篇--transform

CSS篇–transform 使用transform属性实现元素的位移、旋转、缩放等效果 位移 // 语法 transform:translate(水平移动距离&#xff0c;垂直移动距离) translate() 如果只给一个值&#xff0c;表示x轴方法移动距离 单独设置某个方向的移动距离&#xff1a;translateX() transla…

jwt+redis实现登录认证

项目环境&#xff1a;spring boot项目 pom.xml引入jwt和redis <!-- jwt --><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>4.3.0</version></dependency><!-- redis坐标-->…

Midjourney绘图欣赏系列(四)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子&#xff0c;它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同&#xff0c;Midjourney 是自筹资金且闭源的&#xff0c;因此确切了解其幕后内容尚不…

手把手一起开发SV4E-I3C设备(二)

JEDEC DDR5 SPD Hub Devices例程 DDR5生态系统的核心是SidebandBus Protocol 参考下图&#xff0c;可以将SV4E-I3C的端口1声明为主服务器(模拟主机控制器)&#xff0c;并且它可以属于SV4E-I3C上的一个总线。端口2可以作为SPD Hub DUT的Local Bus侧的从站连接。这个从站可以被…

2.17C语言学习

P1678 烦恼的高考志愿 写完后发现题解里面用的是优先队列或者二分什么的&#xff0c;其实这个题可以贪心&#xff0c;我们把学校的分数线和学生的成绩分别进行排序&#xff0c;然后从前往后遍历&#xff0c;每次比较当前学校的分数与学生成绩的差距和下一个学校的分数与学生成…

Linux CentOS stream 9 安装docker

在计算机技术中,虑拟化是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境。 目前,大多数服务器的容量的利用率不足15%,这导致服务器数量激增以及增加了复杂性。服务…

(二)【Jmeter】专栏实战项目靶场drupal部署

该专栏后续实战示例&#xff0c;都以该篇部署的项目展开操作。 前置条件 参考“&#xff08;一&#xff09;【Jmeter】JDK及Jmeter的安装部署及简单配置” 安装部署Jmeter&#xff0c;从文章最后下载“Postman、Rancher.ova、VirtualBox-7.0.12-159484-Win.exe、Xshell-7.0.01…

【第三十六节】工程与模块管理

IDEA 项目结构 层级关系&#xff1a; project&#xff08;工程&#xff09;-module&#xff08;模块&#xff09;-package(包)-class&#xff08;类&#xff09; 具体的&#xff1a; 一个project中可以创建多个module 一个module可以创建多个package 一个package中可以创…

[C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改

问题描述 WPF中DataGrid的选中行或选中者单元格&#xff0c;在焦点失去后&#xff0c;颜色会很淡&#xff0c;很不明显&#xff0c;不容易区分。 解决方法 在失去焦点的情况下&#xff0c;如何设置行或单元格与选中的时候颜色一样&#xff1f; <DataGrid.Resources>&…