穷创客教育之Arduino编程第七课:自定义函数在花式流水灯中的应用
穷创客教育之Arduino编程第七课:自定义函数在花式流水灯中的应用
如果你想编一些复杂点的程序,实现一些更眩的功能,你会发现你的loop( )程序会写得非常的长,程序读起来很吃力。能不能将一个功能的实现写在一个地方,如果要用的时候只要在loop( )主程序里调用一下就可以了呢? 答案当然是可以的,那就是自定义函数。简单来说函数就是一个封装了很多语句的代码块。
我们前面学习的setup( )、loop( )、pinMode( )和digitalWrite( )是系统给我们编写好的函数,被称为系统函数,有时我们要实现我们自己的功能也需要编写一些函数,这些被称为自定义函数。今天我们来学习无返回值无参数类型的自定义函数。
一、函数声名:函数在loop( )函数之上或之下的任何其他函数之外声明。
void 函数名( ){
程序块;
}
例如下面代码实现的功能是让led端口上的LED实现闪烁。注意,函数的定义在loop()循环之外。
void ledflash() //定义一个名为ledflash的函数,
{ //函数的具体代码写在{ }内
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
}
二、函数调用:
函数名( );
例如调用上面的函数:ledflash( );
三、实验电路
四、编写程序
//以下/*和 */之间的代码为语句 ,程序不执行
/*********通过下载测试,全部代码分为 2个子事件:*****************
style( )函数: 1-8号灯逐个点亮,然后 8-1逐个熄灭。
flash( )函数:1-8号灯亮,延时 200ms,1-8号灯熄灭,延时200ms,闪烁两次。此处用到循环嵌套。
****************************************************************/
//led 灯花样显示样式子程序
void style( )
{
for(int j=2;j<=7;j++)//每隔200ms依次点亮2-7引脚相连的led灯
{
digitalWrite(j,HIGH);//点亮j引脚相连的led 灯
delay(200);//延时200ms
}
for(int j=7;j>=1;j--)//每隔200ms依次熄灭7-2引脚相连的led灯
{
digitalWrite(j,LOW);//熄灭j引脚相连的led 灯
delay(200);//延时200ms
}
}
//灯闪烁子程序
void flash( )
{
for(int k=0;k<=1;k++)//闪烁两次
{
for(int j=2;j<=7;j++){//点亮2-7引脚相连的led灯
digitalWrite(j,HIGH);//点亮与j引脚相连的led灯
}
delay(200);//延时200ms
for(int j=2;j<=7;j++){//熄灭2-7引脚相连的led灯
digitalWrite(j,LOW);//熄灭与j引脚相连的led灯
}
delay(200);//延时200ms
}
}
void setup()
{
for(i=2;i<=7;i++){//依次设置2-7个数字引脚为输出模式
pinMode(i,OUTPUT);//设置第i个引脚为输出模式
}
}
void loop()
{
style();//调用样式函数
flash();//调用闪烁函数
}
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com