【51单片机实验笔记】LED篇(二)多色LED的基本控制

目录

  • 前言
  • 硬件介绍
    • 双色LED
    • 三色LED
    • 七彩自动闪烁LED
  • 接线图
    • 面包板介绍
    • 直插电阻介绍
      • 色环解析
    • 双色LED实际接线图
    • 三色LED实际接线图
    • 七彩自动闪烁LED实际接线图
  • 软件实现
    • 双色LED交替闪烁
    • 三色LED灯交替闪烁
  • 总结


前言

本节内容我们学习了解一些多色LED显示原理驱动方式

本节涉及到的封装源文件可在《模块功能封装汇总》中找到。

本节完整工程文件已上传GitHub,仓库地址,欢迎下载交流!


硬件介绍

双色LED

可以发出2种颜色LED,一般为绿两种颜色。本质是将两个LED封装在一起

图1 透明双色LED
图2 雾状双色LED
图3 原理图

直插式双色LED三个引脚组成,中间的引脚为公共端口,有共阴极共阳极两种。可以观察中间引脚的电极片,如果是大电极,则为负极,即为共阴极


三色LED

双色LED类似,三色LED三个LED封装在一起,控制相应引脚即可发出红、绿、蓝三种颜色的灯光。

图1 直插式三色LED
图2 贴片式5050三色全彩LED

直插式三色LED共有四个引脚组成,共阴极,分别为GNDRGB,通过PWM调制三基色可以获得不同颜色的光。

贴片5050全彩LED共有六个引脚组成,其中5050指封装大小为5mm × \times × 5mm每对引脚单独控制一个LED,原理类似。


七彩自动闪烁LED

2个引脚,外观与单色LED一致,但实际上电后可以自动转换7种颜色。每一个小小的灯里都内置芯片成本贵于普通LED,但优点是控制方便稳定
在这里插入图片描述
根据闪动频率可以分为慢闪快闪两种。一般工作电压2~3V之间,需要加限流电阻防止烧坏。


接线图

由于开发板上并没有板载上述LED,我们需要买到散件后,和开发板进行连接。


面包板介绍

在展示实际接线图之前,我想先介绍一个重要伙伴——面包板
在这里插入图片描述
面包板作用是:帮助我们快速搭建电路免焊接,从而便捷地验证我们的想法。

  • 面包板两侧分别由蓝红两列竖线组成,所对应的孔位代表电源正负极+-)。每列等电位的,列与列之间是不相通的。
  • 面包板中间两个大列组成,两个大列之间不互通这个列电源列正好相反,它们每排电气连接的,而不同排之间不互通

我们一般借助跳线来实现导线的作用,通过一个电源模块提供稳定5V3.3V电源
在这里插入图片描述


直插电阻介绍

同样的,我们需要使用一个直插电阻作为限流电阻
在这里插入图片描述
这是常用的金属膜电阻Metal Film Resistor),利用真空沉积技术在陶瓷棒上形成一层镍铬合金镀膜,然后在镀膜上加工出螺旋沟槽来精确控制电阻。具备性能好精度高温度特性好稳定性强等特点。


色环解析

电阻色环一般用于描述阻值大小精度常用颜色为:0)、1)、2)、3)、4)、绿5)、6)、7)、8)、9)、误差值)、误差值

在这里插入图片描述

色环电阻四环五环两种。以五环电阻为例,第一色环第三色环表示阻值三位数字第四色环表示以10底数指数第五条色环表示误差值

一般前四环间隔较小第五环间隔较大,从而可以判断色环顺序。亦可以通过找到金银环来确定第五环,从而判断色环顺序


双色LED实际接线图

图1 面包板接线细节
图2 整体接线

其中,双色LED共阳极串联了一个200Ω电阻,并通过跳线单片机5V输出端相连。红色绿色阴极分别接P2.0P2.1


三色LED实际接线图

图1 贴片式三色LED接线图
图2 直插式三色LED接线图

需要注意,直插式三色LED模块已经板载了限流电阻150Ω,我们无需再另外接电阻。而贴片式三色LED模块必须外接电阻防止烧坏。

由于是共阴极接法,通过跳线单片机GND相连。红色绿色蓝色阳极分别接P2.0P2.1P2.2


七彩自动闪烁LED实际接线图

图1 七彩自动闪烁LED接线图
图2 实验现象

七彩自动闪烁LED普通LED一样,需要接对七彩自动闪烁LED,并且接七彩自动闪烁LED。不同的是,它只要上电自动执行闪烁程序,效果内置芯片决定。


软件实现

双色LED交替闪烁

#include "delay.h"
/** **  @brief    双色灯闪烁**  @author   QIU**  @data     2023.09.22**//*-------------------------------------------------------------------*/
#define DOUBLE_LED_PORT P2sbit Green_LED = DOUBLE_LED_PORT^0;
sbit Red_LED = DOUBLE_LED_PORT^1;void main(){while(1){Green_LED = 0;Red_LED = 1;delay_ms(500);Green_LED = 1;Red_LED = 0;delay_ms(500);}
}

实验现象红绿灯交替闪烁
在这里插入图片描述


三色LED灯交替闪烁

#include "delay.h"
/** **  @brief    三色灯闪烁**  @author   QIU**  @data     2023.09.23**//*-------------------------------------------------------------------*/
#define THREE_LED_PORT P2// 也可以单独赋值
sbit Green_LED = THREE_LED_PORT^0;
sbit Red_LED = THREE_LED_PORT^1;
sbit Blue_LED = THREE_LED_PORT^2;void main(){u8 val = 0x01, i = 0;while(1){// 先清零THREE_LED_PORT = 0x00;// 再赋1THREE_LED_PORT |= (val<<i);i += 1;if(i >= 3){i = 0;}delay_ms(500);}
}

实验现象红绿蓝灯交替闪烁

图1 直插式三色LED
图2 贴片式三色LED

总结

多色LED的控制原理与单色类似,只是对其硬件进行了组合封装。当然,这也得益于硬件技术的提升

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

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

相关文章

python+requests接口自动化测试框架实例详解教程

1、首先&#xff0c;我们先来理一下思路。 正常的接口测试流程是什么&#xff1f; 脑海里的反应是不是这样的&#xff1a; 确定测试接口的工具 —> 配置需要的接口参数 —> 进行测试 —> 检查测试结果&#xff08;有的需要数据库辅助&#xff09; —> 生成测试报…

【Java 基础篇】Java Consumer 接口详解

在Java编程中&#xff0c;有时需要对某个对象进行操作或者处理&#xff0c;而这个操作可能是非常灵活的。Java 8引入了函数式编程的特性&#xff0c;其中的一个重要接口就是Consumer接口。本文将详细介绍Consumer接口&#xff0c;包括它的定义、用法以及示例。 什么是 Consume…

Java基础(六)

前言&#xff1a;本篇博客学习Junit单元测试框架的使用以及常见的注解。 目录 单元测试 Junit单元测试框架 常见注解 单元测试 什么是单元测试&#xff1f; 针对最小的功能单元&#xff08;方法&#xff09;&#xff0c;编写测试代码对其进行正确性测试。 Junit单元测试框…

MySQL-三大日志

前言 ​ redo log&#xff1a;为了持久化数据&#xff0c;当内存中的数据还没写入到磁盘而宕机时&#xff0c;会读取该日志持久化数据到磁盘 ​ undo log&#xff1a;为了保证原子性&#xff0c;事务的操作都会记录一条相反的sql到该日志&#xff0c;出现错误就会根据该文件恢…

365天搞定八股文——Day 005 MQ中的重要概念

优先级队列&#xff1a;优先级高的消息有优先被消费的特权&#xff0c;该模式只有在生产效率高于消费效率的时候才有效果延迟队列&#xff1a;生产者生产完消息后&#xff0c;不能马上进行消费死信队列&#xff1a;某些消息无法被正常地消费&#xff0c;所以就没有办法被确认&a…

栈和队列1——栈的实现及其oj(括号匹配问题)

一&#xff0c;栈的概念 栈是一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#xf…

【lesson7】git的介绍及使用

文章目录 什么是gitgit的历史git使用在gitee上创建仓库git clone HTTPS地址git add .git add 文件名git commit “日志”git pushgit loggit rm 文件名git statusgit pull 什么是git git是版本控制器&#xff0c;那么什么是版本控制器呢&#xff1f; 下面讲个故事为大家讲解一…

【SpringBoot】90、SpringBoot中@Value(“${...}“)的使用细节

@Value 注解可以用来将外部的值动态注入到 Bean 中,在 @Value 注解中,可以使${} 与 #{} ,它们的区别如下: @Value(“${}”):可以获取对应属性文件中定义的属性值。@Value(“#{}”):表示 SpEl 表达式通常用来获取 bean 的属性,或者调用 bean 的某个方法。根据注入的内容来…

SpringBoot开发实战(微课视频版)

ISBN: 978-7-302-52819-7 编著&#xff1a;吴胜 页数&#xff1a;311页 阅读时间&#xff1a;2023-06-24 推荐指数&#xff1a;★★★★☆ 本文介绍SpringBoot 2.0.5 、JDK 1.8&#xff0c;虽然现在已经不维护了&#xff0c;但是大体的流程还是对口的&#xff0c; 而且书里面讲…

Vite + Vue3 实现前端项目工程化

通过官方脚手架初始化项目 第一种方式&#xff0c;这是使用vite命令创建&#xff0c;这种方式除了可以创建vue项目&#xff0c;还可以创建其他类型的项目&#xff0c;比如react项目 npm init vitelatest 第二种方式&#xff0c;这种方式是vite专门为vue做的配置&#xff0c;…

【算法】滑动窗口破解长度最小子数组

Problem: 209. 长度最小的子数组 文章目录 题意分析算法原理讲解暴力枚举O(N^2)利用单调性&#xff0c;滑动窗口求解 复杂度Code 题意分析 首先来分析一下本题的题目意思 题目中会给到一个数组&#xff0c;我们的目的是找出在这个数组中 长度最小的【连续】子数组&#xff0c;而…

c++加速方法大全

我们平常写代码的时候&#xff0c;经常超时&#xff0c;非常难受&#xff0c;所以&#xff0c;我写了这篇文章&#xff0c;让你的代码提升速度&#xff08;这些方法作者亲测有效&#xff0c;用了这些方法&#xff0c;足足提升了1秒&#xff01;虽然最后题目还是没过&#xff09…

JVM 篇

目录 一、知识点汇总 二、知识点详解 2.1 JVM 的主要组成部分及其作用 2.2 JVM内存模型 2.3 堆与栈的区别 2.4 JVM 加载 class 文件的原理机制 2.5 类的生命周期 2.6 Java 对象结构 2.7 Java 对象创建过程 2.8 指针碰撞 2.9 空闲列表 2.10 TLABCAS 2.11 说…

蓝牙电话之HFP—电话音频

1 媒体音频&#xff1a; 播放蓝牙音乐的数据&#xff0c;这种音频对质量要求高&#xff0c;数据发送有重传机制&#xff0c;从而以l2cap的数据形式走ACL链路。编码方式有&#xff1a;SBC、AAC、APTX、APTX_HD、LDAC这五种编码方式&#xff0c;最基础的编码方式是SBC&#xff0…

Mysql 三级等保安全加固

安全加固的前提是保障业务稳定运行,而不是为了安全加固而加固! 1. 新增审计账号并赋予相关权限 进入数据库操作后台: mysql -h 192.168.101.17-u root -p查看数据库用户和口令信息: select host,user,plugin,authentication_string from mysql.user;查看用户权限: show …

什么是多态,instanceof,类型转换

多态 即同一个方法可以根据发送对象的不同而采用多种不同的行为方式一个对象的实际类型是确定的&#xff0c;按可以指向对象的引用类型有很多多态存在的条件&#xff1a; 有继承关系子类重写父类的方法父类引用指向子类对象 注意&#xff1a;多态是方法的多态&#xff0c;属性…

【Vue入门】语法 —— 事件处理器、自定义组件、组件通信

目录 一、事件处理器 1.1 样式绑定 1.2 事件修饰符 1.3 按键修饰符 1.4 常用控制符 1.4.1 常用字符综合案例 1.4.2 修饰符 二、自定义组件 2.1 组件介绍及定义 2.2 组件通信 2.2.1 组件传参&#xff08;父 -> 子&#xff09; 2.2.1 组件传参&#xff08;子 ->…

Goland设置头注释

package ${GO_PACKAGE_NAME} * Author: 坐公交也用券 * HomePage: https://liumou.site * File: ${NAME}.go * Date: ${DATE} ${TIME} * Des: 文件作用

什么是AES加密?详解AES加密算法原理流程

在密码学中&#xff0c;加密算法分为双向加密和单向加密。单向加密包括MD5、SHA等摘要算法&#xff0c;它们是不可逆的。双向加密包括对称加密和非对称加密&#xff0c;对称加密包括AES加密、DES加密等。双向加密是可逆的&#xff0c;存在密文的密钥。AES算法是DES算法的替代者…