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

news2024/11/16 3:54:36

目录

  • 前言
  • 硬件介绍
    • 双色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 P2

sbit 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;
		// 再赋1
		THREE_LED_PORT |= (val<<i);
		i += 1;
		if(i >= 3){
			i = 0;
		}
		delay_ms(500);
	}
}

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

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

总结

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

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

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

相关文章

Pytorch---空间特征金字塔SPP模块的实现

文章目录 一、SPP模块二、使用pytorch实现 一、SPP模块 SPP模块是指定空间特征金字塔模块&#xff0c;是由何凯明在2014年的论文中所提出的。 论文地址如下&#xff1a; 论文地址 该模块的主要作用是&#xff1a;在分类网络中&#xff0c;通过分类器之后&#xff0c;与全连接…

stack与queue的简单封装

前言&#xff1a; stack与queue即栈和队列&#xff0c;先进后出/先进先出的特性我们早已了然于心&#xff0c; 在学习数据结构时&#xff0c;我们利用c语言实现栈与队列&#xff0c;从结构体写起&#xff0c;利用数组或指针表示他们的数据成员&#xff0c;之后再一个个实现他们…

Linux 故障定位手段之保存某个时间段内的top结果

在Linux中对故障原因进行定位时&#xff0c;除了查看对应的软体运行日志、OS运行日之外&#xff0c;还可以查看 top 的资源消耗结果。 参考语句&#xff1a; 以CPU为基准列进行排序记录TOP结果 nohup top -d 1 -b -o %CPU | tee -a /tmp/cpu.txt & 语句含义&#xff1a;每…

etc目录下的profile.d文件目录设置环境变量和全局脚本

一、设置环境变量 etc目录下的profile.d文件目录 /etc/profile.d 1、编写 vi test.sh文件内容 # jdk变量 export ZHK_HOME/root export PATH$PATH:$ZHK_HOME/test # 可以取出来ZHK_HOME变量给ZZZ_HOME赋值 export ZZZ_HOME${ZHK_HOME}/test2、刷新 执行source /etc/profile …

34.CSS魔线图标的悬停效果

效果 源码 index.html <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Icon Fill Hover Effects</title> <link rel="stylesheet" h…

【深度学习实验】前馈神经网络(final):final

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 构建数据集&#xff08;IrisDataset&#xff09; 2. 构建模型&#xff08;FeedForward&#xff09; a. __init__(初始化) b. forward(前向传播) 3.整合训练、评估…

Mojo:新型AI语言中的7个令人惊叹的Python升级,用简单的英语解释人工智能

Mojo&#xff1a;新型AI语言中的7个令人惊叹的Python升级 编程之美 用简单的英语解释人工智能 编程之美 由Coding Beauty设计的图像&#xff0c;使用Mojo标志和Python标志。 它比C更快&#xff0c;与Python一样简单&#xff0c;但速度提高了35000倍。 进入Mojo&#xff1a;一种…

冒泡排序与选择排序(最low的两兄弟)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 前言&#xff1a; 在我们的生活中&#xff0c;无处不在用到排序&#xff0c;比如说成绩的排名&#xff0c;淘宝&#xff0c;京东等等商品在各个方面的排序&#xff0c;这样看来一个好的算 法很重要&#xff0c;接下来我们要先…

深度学习自学笔记四:浅层神经网络(一)

一、神经网络概述 神经网络是一种模仿人脑神经系统结构和功能的计算模型。它由大量相互连接的人工神经元组成&#xff0c;并通过这些神经元之间的信息传递来进行计算和学习。 神经网络的基本组成单元是神经元&#xff0c;也称为节点或单元。每个神经元接收来自其他神经元的输…

第一百五十二回 自定义组件综合实例:游戏摇杆三

文章目录 内容回顾优化性能示例代码我们在上一章回中介绍了 如何实现游戏摇杆相关的内容,本章回中将继续介绍这方面的知识.闲话休提,让我们一起Talk Flutter吧。 内容回顾 我们在前面章回中介绍了游戏摇杆的概念以及实现方法,并且通过示例代码演示了实现游戏摇杆的整个过程…

取消github向邮箱推送邮件及修改密码

取消或者说禁止github向邮箱推送邮件&#xff0c;因为量太大了&#xff0c;没多久就上万封邮件&#xff0c;于是取消订阅或者推送。 1、登录github 2、点击右上角头像&#xff0c;然后点击Settings 3、点击Notifications&#xff08;通知&#xff09; 4、取消各种推送&#x…

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; 而且书里面讲…

新手学习:ArcGIS对shp文件裁剪

新手学习&#xff1a;ArcGIS对SHP文件裁剪 新手学习 记录每个步骤&#xff0c;因为有很多控件可能刚开始还不熟悉&#xff0c;根本不知道在哪里&#xff0c;所以写的比较详细。 1.添加要裁剪的shp文件 2.查看shp文件的地理坐标系 双击shp文件&#xff0c;就可以查看shp文件的…

LeetCode【174. 地下城游戏】

一片丹心图报国&#xff0c;两行清泪为忠家。——于谦 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康…

【Linux】系统编程基于环形队列生产者消费者模型(C++)

目录 【1】引入POSIX信号量 【1.1】初始化信号量 【1.2】销毁信号量 【1.3】等待信号量 【1.4】发布信号量 【2】基于环形队列的生产消费模型 【2.1】生产消费模型打印数字模型 【2.2】生产消费模型计算公式模型 【2.3】生产消费模型计算公式加保存任务模型 【1】引入…

###Data Structure###考研重点

顺序表 顺序表 &#xff08;此代码i是序号而非角标&#xff09; 结构体&#xff1a; 插入&#xff1a;从最后一个元素逐个往后移一位 删除&#xff1a;从删除位置的下一个把每个提前一位 顺序&#xff08;循环&#xff09;队列 结构体 判断队满 &#xff08;总结&#xff…

Dependency ‘org.redisson:redisson:‘ not found解决方法 三种刷新Maven项目的方法

报错情况 在pom中导入redisson包 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId> </dependency> 爆红&#xff0c;还显示Dependency org.redisson:redisson: not found。 由于报错已经解决&#xff0c;…

postgresql-触发器

postgresql-触发器 触发器概述创建触发器管理触发器删除触发器事件触发器创建事件触发器修改触发器删除事件触发器 触发器概述 PostgreSQL 触发器&#xff08;trigger&#xff09;是一种特殊的函数&#xff0c;当某个数据变更事件&#xff08;INSERT、UPDATE、 DELETE 或者 TR…

6 年大厂程序员跟你聊聊,算法其实没那么难,要怎么准备比较好

说起算法&#xff0c;许多程序员都会一顿哀嚎&#xff0c;为啥面试要靠算法这个东西。不过这个不是咱们讨论的重点。&#xff08;我们无法改变这种现状&#xff0c;那就改变自己&#xff09; 今天&#xff0c;我们一起来聊一下&#xff0c;程序员面试的时候该如何准备算法。 …

数字图像基础,数字图像处理中的基础内容(数字图像处理概念 P2)

文章目录 人类视觉系统构造数字图像生成采样和量化像素之间的基本关系 人类视觉系统构造 锥状体&#xff1a;明亮的视野杆状体&#xff1a;微光或暗视野图像成像原理&#xff1a;类似照相机亮度适应现象&#xff1a;人的视觉不能同时在一个范围内工作同时对比现象&#xff1a;…