Arduino实验一:LED应用实验

目录

    • 一、发光二极管介绍
      • 1.发光二极管
      • 2.工作原理
      • 3.内部结构与连线
    • 二、LED闪烁实验
      • 1.实验器材
      • 2.实验连线
      • 3.实验原理
      • 4.程序代码
      • 5.实验步骤
    • 三、LED渐变实验
      • 1.实验器材
      • 2.实验连线
      • 3.实验原理
      • 4.程序代码
      • 5.实验结果

一、发光二极管介绍

1.发光二极管

发光二极管简称LED,由镓(Ga)和砷(As)、磷§的化合物组成的二极管,电子与空穴复合时辐射出可见光。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。
发光二极管与普通二极管一样都是由一个PN结组成,也具有单向导电性,在二极管加正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。

2.工作原理

发光二极管反向击穿电压5V,正向伏安特性曲线陡,使用时一定要串联限流电阻以此控制通过二极管的电流。限流电阻R计算公式: R=(E-VF)/I,其中E是电源电压,VF是LED正向电压降,I是工作电流。一般在5V的逻辑电路中,使用220 Ω \Omega Ω的电阻作为限流电阻。

3.内部结构与连线

发光二极管的两根连线中较长的一根为正极,连接电源正极。
Arduino实验一:LED应用实验_第1张图片
LED灯连线方法:正向导通,负向截止。具体请查阅其他资料。

二、LED闪烁实验

1.实验器材

1个LED灯,220 Ω \Omega Ω电阻,面包板及跳线若干,Arduino UNO R3板及USB线。

2.实验连线

Arduino实验一:LED应用实验_第2张图片

3.实验原理

设置数字8引脚为高电平点亮LED灯,延时5s,再设置数字8引脚为低电平熄灭LED灯,延时5s,人的肉眼看到的LED灯每5s闪烁一次,熄灭一次,可以将delay(x)的参数x修改为1000,则闪烁周期变为1s.

4.程序代码

int ledPin=8;
void setup() {
     
  // put your setup code here, to run once:
pinMode(ledPin,OUTPUT);
}

void loop() {
     
  // put your main code here, to run repeatedly:
  digitalWrite(ledPin,HIGH);
  delay(5000);
  digitalWrite(ledPin,LOW);
  delay(5000);
 }

5.实验步骤

打开Arduino IDE,连接板卡的USB线,我是在虚拟机上运行程序的,连接USB线时,会跳出一个弹框,选择虚拟机设备即可,然后,选择你的板卡类型,以及端口。
Arduino实验一:LED应用实验_第3张图片Arduino实验一:LED应用实验_第4张图片
然后写入你的程序代码,然后编译,编译成功之后,就可以上传,在面包板就可以看到闪烁的LED灯。
注意事项:面包板的连接路线,每一行是通路,每一列不导通,具体看面包板的内部连线结构,这一部分容易失误。

三、LED渐变实验

1.实验器材

LED灯1个,220 Ω \Omega Ω电阻1个,多彩面包板实验跳线若干。

2.实验连线

将发光二极管通过220 Ω \Omega Ω电阻连接到数字的第9引脚。

3.实验原理

PWM是使用数字手段模拟输出的手段,使用数字控制产生占空比不同的方波来控制模拟输出。占空比越高,灯的亮度越亮。
输出的电压值是通过通和断的时间进行计算的,计算公式:

输出电压=(接通时间/脉冲时间) × \times ×最大电压值
基本参数:

  1. 脉冲宽度变化幅度(最小值./最大值)
  2. 脉冲周期(1秒内脉冲频率个数的倒数)
  3. 电压高度(0-5V)
    PWM接口:6个数字接口:3、5、6、9、10、11。
    Arduino实验一:LED应用实验_第5张图片
    analogWrite(255)表示100%占空比,analogWrite(127)表示占空比大约为50%。
    注意事项:PWM输出与5,6号端口的时候,会产生比预期过高的占空比。原因是PWM输出使用的内部时钟,millis()与delay()函数也在使用,实际占空比比预期大一点,所以,可能会产生5,6号端口输出无法关闭的信号。

4.程序代码

int brightness=0;
int fadeAmount=5;

void setup() {
     
  pinMode(9,OUTPUT);
}

void loop() {
     
  analogWrite(9,brightness);//把brightness的值写入9号端口

  brightness+=fadeAmount;

  if(brightness==0|brightness==255){
     
    fadeAmount=-fadeAmount;//亮度翻转
  }
  delay(30);//延时30ms
}

5.实验结果

达到预期结果,可以修改fadeAmount的值(每次灯的亮度的渐变值),实验的结果也略微不同。

你可能感兴趣的:(arduino编程,arduino)