基于Arduino的简易跑马灯+呼吸灯

一、任务介绍

本文利用Arduino开发板和8个LED灯制作了一个简易的跑马灯,其中5个为频闪灯,另外3个为呼吸灯。

二、频闪灯测试电路

将单片机的串口2定义为输出模式,通过几行简单的代码熟悉跑马灯的基本原理。

电路连接如图所示,因为我是采用外部电源供电(我刚做完一个Arduino的智能车,还没来得及拆,就用亚克力板和面包板搭建了这个电路),所以利用面包板进行了一下转接,如果只是做一个跑马灯可以不用面包板,直接通过USB接口给板子供电就行。基于Arduino的简易跑马灯+呼吸灯_第1张图片

代码如下:

int PIN_2 = 2;//定义串口2

void setup() {
pinMode(PIN_2,OUTPUT);//定义为输出串口
}

void loop() {
digitalWrite(PIN_2,HIGH);//输出高电平,灯亮
delay(500);//亮500ms
digitalWrite(PIN_2,LOW);//输出高电平,灯灭
delay(500);//灭500ms
}

三、呼吸灯测试电路

电路的连接和刚才的频闪灯基本一样,唯一不同的是串口由2变成3.(其实频闪灯的电路既可以用2也可以用3,因为频闪灯的代码用的是digitalWrite,输出的是高低电平。而呼吸灯电路只能用3或者其他具有PWM功能的串口,因为呼吸灯的代码用的是analogWrite,输出的是PWM信号。)
代码如下:

int PIN_3 = 3;//定义串口3(或任意具有PWM功能的串口)

void setup() {
pinMode(PIN_3,OUTPUT);//定义为输出串口
}

void loop() {
LED(3);
}
//定义了一个LED函数,用来实现灯渐亮和渐灭
void LED(int led){
for(int i=0; i<=255; i++){
  analogWrite(led,i);
  delay(8);}

  for(int i=255; i>=0; i--){
  analogWrite(led,i);
  delay(5);}
  delay(100);
}

四、完整电路

前面两部分已经讲述了频闪灯和呼吸灯的原理,在此基础上,根据自己的喜好,对led灯进行一个排列,排出自己喜欢的阵列,然后根据频闪灯和呼吸灯的原理自由设计吧!下面是我设计的一个阵列:

代码如下:

int PIN_2 = 2;
int PIN_3 = 3;
int PIN_4 = 4;
int PIN_5 = 5;
int PIN_6 = 6;//定义五个频闪灯

int LED_9 = 9;
int LED_10 = 10;
int LED_11 = 11;//定义三个呼吸灯


void setup() {
pinMode(PIN_2,OUTPUT);
pinMode(PIN_3,OUTPUT);
pinMode(PIN_4,OUTPUT);
pinMode(PIN_5,OUTPUT);
pinMode(PIN_6,OUTPUT);
pinMode(LED_9,OUTPUT);
pinMode(LED_10,OUTPUT);
pinMode(LED_11,OUTPUT);//都定义为输出模式

}




void loop() {
  
digitalWrite(PIN_2,HIGH);
delay(200);
digitalWrite(PIN_2,LOW);
delay(200);

digitalWrite(PIN_3,HIGH);
delay(200);
digitalWrite(PIN_3,LOW);
delay(200);

digitalWrite(PIN_4,HIGH);
delay(200);
digitalWrite(PIN_4,LOW);
delay(200);

digitalWrite(PIN_5,HIGH);
delay(200);
digitalWrite(PIN_5,LOW);
delay(200);

digitalWrite(PIN_6,HIGH);
delay(200);
digitalWrite(PIN_6,LOW);
delay(200);

LED(9);
LED(10);
LED(11);//调用呼吸灯函数
}

void LED(int led){
for(int i=0; i<=255; i++){

  analogWrite(led,i);
  delay(8);
  }
  for(int i=255; i>=0; i--){
  
  analogWrite(led,i);
  delay(5);}
  delay(100);
}

你可能感兴趣的:(呼吸灯,arduino小车,arduino)