Arduino·Blink(控制LED亮灭),并实现简单的红绿灯效果

该文是Arduino初学者的教程,介绍了LED的工作原理和如何通过Arduino控制LED的亮灭。此外,还详细讲解了如何制作简单的红绿灯,包括电路图、所需硬件和代码示例。文章强调作者的创作初衷是分享知识,而非追求经济利益。
摘要由CSDN通过智能技术生成

答复quake4用户的评论-作品收益截图
答复quake4用户的评论-私信截图
答复quake4用户的评论-“不同意”申请提交成功截图2
答复quake4用户的评论-“不同意”申请提交成功截图1
答复quake4用户的评论-“不同意”申请提交失败截图

对于一条评论(下图所示)的回复如下:quake4用户的评论
首先感谢您花费宝贵的时间阅读并评论我的文章。但是希望您给我一个自我辩护的机会。一、VIP文章并非我所设置,我本人也并没有从中获取任何利益。如您所见,在发表完几篇拙作之后我就极少登录csdn。今天偶然看到您的评论,我才发现我的文章被设置了,我和您同样感到奇怪和气愤:明明我并没有设置,为何又成了收费文章?在一篇文章的指导下(https://boke112.com/post/11530.html),我发现我的账号分别于去年10月12号和23号收到了来自文库小助手的两条私信,其中一条内容如下:“尊敬的用户您好,根据用户对您文章的喜爱,现计划将您的部分文章加入到VIP,产生收益的同时您可收获相应分润,如您不同意将文章加入到VIP,请在10月19日前通过:https://marketing.csdn.net/p/1ca15976baafd7fb4ba297ca7b5bb9fb”由此可见,VIP文章并非我本人设置。至于什么“相应分润”,我的作品收益至今一直显示“-”(无收益)。如果您不信任我,我会将页面截图传到此文章开头;
二、我本人是一名高中学生,我的创作初衷并非如您所说为了钱那么肮脏不堪,我也没有“勇气”为了利益不择手段。我的创作内容都来源于或是课堂总结(arduino的两篇),或是我发布当时引以为傲的作品(绘制勇士队logo那篇),或是对错题的总结(Python那篇)。我写下这些文章纯粹是为了我的兴趣、对写文章的好奇心以及对CSDN里面一些给我和我同学造成困扰的不详尽、不全面、杂乱无章的文章的不满。当然我也不是说我写的就一定全面,比如我的文章大多停留在操作表面,缺乏原理阐释。但我自认为它比我先前所读的不少文章更能帮助学生解决操作上的问题;
三、我不知道您出于何种原因在网络上如此具有攻击性。我阅读您的文章发现您是一个有着高学历、出众的才能和钻研精神的学长。但您的言论真的符合您的身份吗?我们老师常跟我们说:“你们要做对社会有用的人。”我也在尽我所能的帮助我身边的每一个人。相信学长在生活中也是如此,但学长能否在网络上也同样保持友好的一面。敲敲键盘很容易,您固然一时舒服了,可对方呢?幸亏我性格相对坚强,能在这里与您心平气和的谈论,假如换做别人呢?请您在下次敲动键盘也想一想:自己是否也曾经有过一段童年;
四、我已经提交“不同意申请”了,据说会在一周内取消。但其中一篇已经过了申请时限。


前言

点亮和熄灭LED是arduino的一项基础技能,本文将简单介绍其具体操作及简易红绿灯的制作。


一、了解LED

LED(light-emitting diode),中午名为发光二极管,是一种常用的发光器件,通过电子与空穴复合释放能量发光,可高效地将电能转化为光能。
发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。
在使用LED时需分清它的正负极。一般LED较长一端引脚为正极,较短一端为负极。
可参考以下两张图片:
LED原理图
发光二极管

二、Blink(控制LED亮灭)

1.连接电路图

1.1.所需硬件

arduino UNO × 1
发光二极管 × 1
220Ω电阻 × 1
杜邦线 若干
数据线 × 1
面包板 × 1

1.2.电路图及原理图

电路图
电路原理图

2.代码

Blink的代码在arduino的示例中。中文版打开方式:

文件 > 示例 > 01.Basics > Blink

但使用arduino自带的代码时需注意:代码中的LED_BUILTIN指的是arduino开发板上的L(LED缩写),如果连接好电路后直接按照它提供的代码运行会出现L正常闪烁而面包板上的LED没反应,所以需要自己把代码中的LED_BUILTIN全部改为9(9号引脚)。
当然你也可以从我这里直接复制。代码如下:

// 当您按下重置或给电路板通电时,设置功能运行一次
void setup() {
	// 将数字引脚9初始化为输出
    pinMode(9, OUTPUT);
}

// 循环函数永远重复运行
void loop() {
  digitalWrite(9, HIGH);  			// 通过向9号引脚输出高电平打开LED
  delay(1000);                      // 延迟一秒钟
  digitalWrite(9, LOW);   			// 通过使电压为低来关闭LED
  delay(1000);                      // 延迟一秒钟
}

三、实现简单的红绿灯效果

1.分析

红绿灯一般由三种颜色(绿色、黄色和红色)的信号灯组成,一般红灯亮起时间最长,绿色和黄色依次次之。为了省事,我们将红灯时间定为10秒,绿灯为8秒,黄灯为5秒,从红灯开始,依次亮起。

2.连接电路图

2.1.所需硬件

arduino UNO × 1
发光二极管(绿色) × 1
发光二极管(黄色) × 1
发光二极管(红色) × 1
220Ω电阻 × 3
杜邦线 若干
数据线 × 1
面包板 × 1

2.2.电路图及原理图

流水灯/j交通信号灯电路图
流水灯/交通信号灯电路原理图

3.代码

int red=10,green=9,yellow=8;	//定义red为10号引脚,green为9号引脚,yellow为8号引脚
// 当您按下重置或给电路板通电时,设置功能运行一次
void setup()
{
  pinMode(red, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(yellow, OUTPUT);
}

// 循环函数永远重复运行
void loop()
{
  digitalWrite(red, HIGH);		// 输出高电平打开红色LED
  delay(10000);					// 延迟十秒钟
  digitalWrite(red, LOW);		// 通过使电压为低来关闭红色LED
  digitalWrite(green, HIGH);	// 输出高电平打开绿色LED
  delay(8000);					// 延迟八秒钟
  digitalWrite(green, LOW);		// 通过使电压为低来关闭绿色LED
  digitalWrite(yellow, HIGH);	// 输出高电平打开黄色LED
  delay(5000);					// 延迟五秒钟
  digitalWrite(yellow, LOW);	// 通过使电压为低来关闭黄色LED
}

总结

以上就是今天要讲的内容,本文仅仅简单介绍了如何控制LED的亮灭,以及简易交通信号灯的实现,而通过改变信号灯的延迟时间还可以实现流水灯的效果,各位可以自行往下探索。
另:本人是初学者。如有不足,望各路大神指正!

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值