四种LED灯实验汇总

本篇将介绍有关LED灯的四个不同类型的实验

实验一:闪烁的LED

实验材料:
  • Nano开发板
  • 配套USB数据线
  • 一个LED灯
  • 一个470Ω的电阻
  • 若干导线
电路连接图:
电路连接图

把LED和电阻插入面包板, LED灯的负极连接Nano板的GND引脚,LED的正极连入电阻的一端,电阻的另一端接入nano板的A5引脚。

为何本实验需要串联一个电阻?

我们所购买的LED灯最大电流只允许20毫安,能够承受的电压范围在2.0-2.2之间,当其电压超过其所承受范围时,LED灯通过的电流就会快速上升,很容易造成LED灯的损坏,因此需要串联进一个合适的分压电阻才能保证LED灯的正常工作,这样就可以保证即使供电电压出现小幅度的波动时,LED灯仍可以正常工作。

编写代码:

新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

int pin=A5;//LED的管脚

void setup(){
   pinMode(pin,OUTPUT);//设置管脚为输出模式
}
void loop() {
    digitalWrite(pin,1);//向管脚写入1,设置为高电平,则LED灯亮
}

连接开发板,设置好对应端口号和开发板类型,进行程序下载。


上传图
实验现象

LED灯亮起

再写个程序让它闪烁吧
int pin=A5;//连接LEDA5引脚

void setup(){
 pinMode(pin,OUTPUT);//设置管脚为输出模式
}
 
void loop(){
  digitalWrite(pin,HIGH);//将管脚设置为高电平,则LED灯亮
delay(1000);//等待1000毫秒
digitalWrite(pin,LOW);//将管脚设置为低电平,则LED灯灭
delay(1000);//等待1000毫秒
}

连接开发板,设置好对应端口号和开发板类型,进行程序下载。


上传图
实验现象

LED灯闪烁(亮一秒,暗一秒)

函数讲解

-delay函数:

  • 暂停程序指定为参数的时间量(以毫秒为单位)。(一秒钟内有1000毫秒)
  • 句法:delay(ms)
  • 参数:ms:暂停的毫秒数

实验二:按键控制LED灯

前面介绍了如何使LED闪烁,下面我们来看一下,通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的。

实验材料:
  • Nano开发板
  • 配套USB数据线
  • 一个LED灯
  • 一个470Ω的电阻
    -2个按钮
  • 若干杜邦线
    实验中我们用到了轻触按键,常见的有2脚按键和4脚按键,其内部结构如下图所示:


    按钮图

当按下按键时,按键两端接通,当放开时,两端再次断开。

电路连接图:
电路连接图

LED与电阻的接法与实验一类似,将按钮左右两端连到A2与GND引脚上。

编写代码
/*
  * Digital_Button
  * 通过按键控制LED灯亮灭
  */
 
 int buttonPin = A2; // 按键的管脚定义
 int ledPin =  9;  // LED灯管脚定义
 
 int buttonState = 0; // 存储按键状态值
 
 void setup() {
   pinMode(ledPin, OUTPUT);  //设置LED管脚输出模式
   pinMode(buttonPin, INPUT_PULLUP); //设置按键管脚上拉输入模式
 }
void loop() {
 
   buttonState = digitalRead(buttonPin);// 检查按键是否被按下

  if (buttonState == HIGH) //如果按键按下,那buttonState应该为高电平
{     
    
    digitalWrite(ledPin, HIGH);  // 点亮LED
  } 
  else {
   
    digitalWrite(ledPin, LOW);  // 熄灭LED
 
 }

连接开发板,设置好对应端口号和开发板类型,进行程序下载。


上传图.png
实验现象

按下按键,LED灯点亮。放开按键,LED灯熄灭。

小贴士
  • 由于Arduino上电后,数字I/O管脚处于悬空状态,此时通过digitalRead()读到的是一个不稳定的值(可能是高,也可能是低)。所以通过pinMode()函数设置按键引脚为上拉输入模式(INPUT_PULLUP)。
    通俗的说:上拉电阻(pullup resistor),目的是使在断路的时候,这一点变成高电压(5V)。当变成通路的时候,电压就会降下来。
  • 按键在按下的过程中,有一段接触未接触的不稳定过程,即按键的抖动。在判断按键状态时,通过delay()延时跳过抖动的不稳定状态.

实验三LED灯的减弱增强

本实验通过PWM脉宽调制来控制LED灯亮度。

由已学的PWM知识可知:
在我们的Nano开发板上,第3、5、6、9、10、11引脚具有PWM功能。
通过使用analogWrtie()函数,在指定的引脚上通过高低电平的不断转换输出一个周期固定的方波,通过改变高低电平的占空比,进而得到不同的电压输出。

电路连接图:
电路连接图
编写代码

新建sketch,拷贝如下代码替换自动生成的代码并进行保存

int ledPin = 9;
 
 void setup ()
 {
   pinMode(ledPin,OUTPUT);
 }
 
 void loop()
 {
   for (int a=0; a<=255;a++)                //循环语句,控制PWM亮度的增加
   {
     analogWrite(ledPin,a);
     delay(8);                             //当前亮度级别维持的时间,单位毫秒            
   }
   for (int a=255; a>=0;a--)             //循环语句,控制PWM亮度减小
   {
     analogWrite(ledPin,a);
     delay(8);                             //当前亮度的维持的时间,单位毫秒  
   }
 
 }

连接开发板,设置好对应端口号和开发板类型,进行程序下载。


上传图
实验现象:

LED灯由亮变暗,又由暗变亮


亮.jpg
暗.jpg
函数讲解:

analogWrite()

  • 功能:analogWrite()实现对引脚设置PWM的要求。可以被用来控制LED等,电机转动,舵机等。
  • 句法:analogWrite(pin,value)
  • 参数:pin:写入的引脚;value:占空比,在0~255之间。(0时候为关,即LOW;255为开,即HIGH)
  • 无返回值
  • 使用analogWrite()不需要再用pinMode()设置引脚为输出。
小贴士:

程序中使用analogWrite()函数,通过两个for循环,逐渐改变输出PWM占空比,进而改变LED灯的亮度。两个for循环中都有延时语句。

实验四(高能实验):流水LED

本实验讲解:多个LED依次点亮并以此熄灭的状态

实验材料:
  • Nano开发板
  • 配套USB数据线
  • 5个LED灯
  • 5个470Ω的电阻
  • 若干杜邦线
电路连接图:
电路图

5个LED灯的负极连接到开发板的GND引脚,正极分别连接限流电阻连接到开发板的数字I/O引脚。

实物连接图:
实物连接图
编写代码:
int delayTime = 200;
 int ledPin;
 
 void setup()
 {
   for (ledPin = 2; ledPin < 7; ledPin++) //依次设置2-6个数字引脚为输出模式
   { 
     pinMode(ledPin, OUTPUT); //设置第ledPin个引脚为输出模式
   }
 }

 void loop()
 {
   for (ledPin = 2; ledPin < 7; ledPin++) //每隔delayTime依次点亮2~6引脚相连的led灯
   {
     digitalWrite(ledPin, HIGH); //点亮ledPin引脚相连的led灯
     delay(delayTime);//延时delayTime
   }

   for (ledPin = 6; ledPin > 1; ledPin--) //每隔delayTime依次熄灭6~2引脚相连的led灯
   {
     digitalWrite(ledPin, LOW); //熄灭ledPin引脚相连的led灯
     delay(delayTime);//延时delayTime
   }
 }

连接开发板,设置好对应端口号和开发板类型,进行程序下载。


上传
实验现象:

五个LED灯依次点亮,又依次熄灭,如此往复循环。

小贴士:
  • 在setup部分通过for循环将2 ~ 6号引脚设置为输出模式。在loop部分,通过两个for循环依次点亮2 ~ 6号LED灯,依次熄灭6 ~ 2号LED灯,使用的依然是digitalWrite函数。
  • 延时时间定义为200,你可以改变它来控制流动速度。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,124评论 6 523
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,453评论 3 404
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,386评论 0 368
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,136评论 1 301
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,142评论 6 400
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,593评论 1 315
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,958评论 3 429
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,944评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,477评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,512评论 3 346
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,639评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,227评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,971评论 3 340
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,397评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,550评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,203评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,713评论 2 366