Arduino实验二:LED基础应用实验


这一节是对LED灯使用进行初步尝试,参照其他教程做如下实验。

一.广告流水灯实验

1.实验器材

  • LED灯:6个,颜色自选。
  • 220 Ω \Omega :6个。
  • 面包板一个及跳线若干。

2.实验连线

将6个LED依次序连接到1~6号引脚上,如下图:

转载

3.实验原理

通过LED灯不断的亮度变化,实现流水灯的效果。在实验中我们控制LED灯的亮灭的次序和时间,实现不同的效果。

  • style_1()(样式一):LED首先从左边的灯开始间隔200ms依次点亮6个LED灯。然后从最右边LED灯开始间隔200ms依次熄灭6个LED灯。
  • flash()(闪烁样式):6个LED灯全部点亮,延时200ms,然后6个灯全部熄灭。循环两次就形成了闪烁的效果。
  • style_2()(样式二):先让最中间的两个灯亮,然后让紧挨着它们的另外两个灯亮,最后让两边的两个LED灯亮;然后两边的灯熄灭,接着挨着它们的灯熄灭,最后是最中间的两个灯熄灭。
  • style_3()(样式三):让两边的灯亮400ms,然后熄灭;接着让挨着它们的两个LED灯亮400ms,然后熄灭;最后是最中间的两个灯亮400ms之后熄灭…

4.程序代码

//设置控制LED的引脚
int Led1=1;
int Led2=2;
int Led3=3;
int Led4=4;
int Led5=5;
int Led6=6;

void style_1(void)
{
  unsigned char j;
  for(j=1;j<=6;j++)
  {
    digitalWrite(j,HIGH);
    delay(200);
   }
   for(j=6;j>=1;j--)
   {
    digitalWrite(j,LOW);
    delay(200);
   }
}

void flash(void)
{
  unsigned char j,k;
  for(k=0;k<=1;k++)
  {
    for(j=1;j<=6;j++)
      digitalWrite(j,HIGH);
    delay(200);
    for(j=1;j<=6;j++)
      digitalWrite(j,LOW);
    delay(200);
  }
}

void style_2(void)
{
  unsigned char j,k;
  k=1;
  for(j=3;j>=1;j--)
  {
    digitalWrite(j,HIGH);
    digitalWrite(j+k,LOW);
    delay(400);
    k+=2;
  }
  k=5;
  for(j=1;j<=3;j++)
  {
    digitalWrite(j,LOW);
    digitalWrite(j+k,LOW);
    delay(400);
    k-=2;
  }
}

void style_3(void)
{
  unsigned char j,k;
  k=5;
  for(j=1;j<=3;j++)
  {
    digitalWrite(j,HIGH);
    digitalWrite(j+k,HIGH);
    delay(400);
    digitalWrite(j,LOW);
    digitalWrite(j+k,LOW);
    k-=2;
  }
  k=3;
  for(j=2;j>=1;j--)
  {
    digitalWrite(j,HIGH);
    digitalWrite(j+k,HIGH);
    delay(400);
    digitalWrite(j,LOW);
    digitalWrite(j+k,LOW);
    k+=2;
  }
}


void setup() {
  unsigned char i;
  for(i=1;i<=6;i++)
    pinMode(i,OUTPUT);//设置第i个引脚为输出模式
}

void loop() {
  style_1();
  flash();
  style_2();
  flash();
  style_3();
  flash();

}

5.实验结果

实验结果视频(部分截取了60帧):
实验GIF

二.交通灯设计实验

1.实验器材

  • 红色、绿色、黄色LED灯:3个
  • 220 Ω \Omega :3个
  • 面包板跳线若干
  • 面包板一个

2.实验连线

3个LED灯依次连接到数字4,7,10引脚上,负极连接到Arduino板的GND引脚,如下图:
转载

3.实验原理

此实验中,主要是对红绿黄灯的亮灭时间间隔进行控制,依次达到交通灯的模拟效果,实际上,交通灯红绿黄灯的相互转换时间间隔在一般情况下是确定的,这就是我们所要达到的实验目的。

4.程序代码

//定义数字引脚4、7、10
int ledred=10;
int ledyellow=7;
int ledgreen=4;

void setup() {
//设置数字接口
  pinMode(ledred,OUTPUT);
  pinMode(ledyellow,OUTPUT);
  pinMode(ledgreen,OUTPUT);
}

void loop() {
  digitalWrite(ledred,HIGH);
  delay(1000);
  digitalWrite(ledred,LOW);
  digitalWrite(ledyellow,HIGH);
  delay(500);
  digitalWrite(ledyellow,LOW);
  digitalWrite(ledgreen,HIGH);
  delay(1000);
  digitalWrite(ledgreen,LOW);

}

5.实验结果

拍摄的视频转换为GIF动图如下:
在这里插入图片描述

三.总结

实践处于真知,通过勤动手,会让我们更加熟悉地掌握学习的知识,也会从中发现一些问题,增长自己的动手实践能力。

发布了25 篇原创文章 · 获赞 4 · 访问量 773

猜你喜欢

转载自blog.csdn.net/qq_45416295/article/details/104031817