第二课 多个LED的闪烁
上一节课,我们已经玩了单个led的闪烁,大家应该尝试了各种闪法,当然你肯定不会满足于一盏灯的闪烁,今天我们就来演示怎么让好多的led一起闪。由于学习套件中的模块有限,我们选择其中红、黄、绿三种颜色的LED模块来尝试多个LED一起闪。
第一步 设计电路
先要构思好自己的电路设计,因为有3个LED灯模块,所以Arduino要有3个数字输入输出端口来进行控制,本课选择9、10、11号端口来控制三个灯的闪烁,将接线扩展板接至Arduino,通过连线将3个LED灯分别连接至9、10、11号端口,如图所示。
第二步 编写程序
连接好板子的USB接口,编译下载下面的程序:
/
作用:让三个led依次点亮熄灭
/
void setup()
{
for (int i=9; i<=11; i++) //通过循环的方式设置9、10、11号引脚为输出状态
{
pinMode(i,OUTPUT);
}
}
void loop()
{
for (int x=9; x<=11; x++) //通过循环的方式依次让每个引脚的led在1秒内完成明灭
{
digitalWrite(x,HIGH);
delay(500);
digitalWrite(x,LOW);
delay(500);
}
}
下载好后就可以看见led每半秒一个灯的速度依次闪动,这个就是传说中的流水灯,当然,闪烁的方法千变万化,LED的摆放方式也是千变万化,希望大家自己多思考多研究。
三、本次实验所用到的语法
1.void
void用来声明一个函数,该函数不会返回任何数据。
//功能在“setup”和“loop”被执行
//但没有数据被返回到高一级的程序中
void setup()
{
// …
}
void loop()
{
// …
}
2. setup()
在控制器中程序运行时将首先调用 setup() 函数。用于初始化变量、设置引脚的输出\输入类型、配置串口、引入类库文件等等。每次控制器上电或重启后,setup() 函数只运行一次。
3. loop( )
在setup( ) 函数中初始化和定义了变量,然后执行 loop( ) 函数。顾名思义,该函数在程序运行过程中不断的循环,根据一些反馈,相应改变执行情况。通过该函数动态控制控制器的各项操作。
4.pinMode( )
将指定的引脚配置成输出或输入。
语法
pinMode(pin,mode)
参数
pin:要设置模式的引脚
mode:INPUT(输入)或OUTPUT(输出)或ANALOG(模拟量)
5.digitalWrite( )
给一个数字引脚写入HIGH或者LOW。
如果一个引脚已经使用pinMode( )配置为OUTPUT模式,其电压将被设置为相应的值,HIGH为5V,LOW为0V。
注意:数字13号引脚不能作为数字输入使用
语法
digitalWrite(pin,value)
参数
pin:引脚编号(如1,5,10,A0,A3)
value: HIGH or LOW
6.delay( )
使程序暂定设定的时间(单位毫秒)。(一秒等于1000毫秒)
语法
delay(ms)
参数
ms:暂停的毫秒数(unsigned long)
7.for
for语句用于重复执行一段在花括号之内的代码。通常使用一个增量计数器计数并终止循环。for语句用于重复性的操作非常有效,通常与数组结合起来使用来操作数据、引脚。
for循环开头有3个部分:
for(初始化;条件;增量计数){
//语句
}
“初始化”只在循环开始执行一次。每次循环,都会检测一次条件;如果条件为真,则执行语句和“增量计数”,之后再检测条件。当条件为假时,循环终止。
8. int
整数是基本数据类型,占用2字节。整数的范围为-32,768到32,767(-2^15 ~(2^15)-1)。
整数类型使用2的补码方式存储负数。最高位通常为符号位,表示数的正负。其余位被“取反加1”。
9.++
递增/递减复合运算符,递增或递减一个变量
语法:
x++; //x自增1返回x的旧值
++x; // x自增1返回x的新值,前自增,先自增,自增之后再使用(相当于x=x+1),使用的是新值
x—; // x自减1返回x的旧值
—x; //x自减1返回x的新值
参数:
x: int或long(可能是unsigned)
返回
变量进行自增/自减操作后的原值或新值。
例子
x = 2;
y = ++x; // 前自增,先自增,自增之后再使用(相当于x=x+1),使用的是新值,现在x=3,y=3
y = x—; // 后自增,先使用,使用完后再自增,使用的是旧值,现在x=2,y还是3
10.比较运算符
比较运算操作符:
x == y(x 等于 y)
x != y(x 不等于 y)
x < y(x 小于 y)
x > y(x 大于 y)
x <= y(x 小于等于 y)
x >= y(x 大于等于 y)
11. 数字引脚(Digital pins)定义,INPUT和OUTPUT
数字引脚当作 INPUT 或 OUTPUT都可以 。用pinMode()方法使一个数字引脚从INPUT到OUTPUT变化。
引脚(Pins)配置为输入(Inputs)
通过pinMode()配置为 输入(INPUT),在此模式下它们非常利于读取传感器,而不是为LED供电。
引脚(Pins)配置为输出(Outputs)
引脚通过pinMode()配置为 输出(OUTPUT),在此模式下它们可以为电路提供充足的电流,向其他设备/电路提供(提供正电流positive current)或倒灌(提供负电流negative current)达40毫安(mA)的电流。使它们利于给LED供电,而不是读取传感器。输出(OUTPUT)引脚被短路的接地或5V电路上会受到损坏甚至烧毁。引脚在为继电器或电机供电时,由于电流不足,将需要一些外接电路来实现供电。