找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 23482|回复: 7
收起左侧

Arduino花样流水灯源码,请看内容。

  [复制链接]
ID:55838 发表于 2015-4-6 22:11 | 显示全部楼层 |阅读模式
/************************************************************************
使用开发板型号:Arduino UNO R3
单片机晶振频率:16MHz
本列使用元器件:8个LED,8个220R电阻
电路的连接说明:LED结成阴极
************************************************************************/
/*********通过下载测试,全部代码分为 4个子事件:*****************
              样式 1,样式 2,样式 3和闪烁:
样式 1: 1-8号灯逐个点亮,然后 8-1逐个熄灭。
        闪烁两次
样式 2:4,5号灯先亮,然后3,6号再亮,接着2,7号亮,最后1,8号亮。
        1,8号灯先灭,然后2,7号熄灭,接着3,6号灭,最后4,5号灭。
        闪烁两次
样式 3:1,8号灯先亮,然后1,8号熄灭, 接着2,7号亮,然后2,7号熄灭
        接着3,6号亮,然后3,6号熄灭, 接着4,5号亮,然后4,5号熄灭。
闪  烁:1-8号灯亮,延时 200ms,1-8号灯熄灭,延时200ms,闪烁两次。
****************************************************************/
//设置控制Led 的数字IO脚
int Led1 = 1;
int Led2 = 2;
int Led3 = 3;
int Led4 = 4;
int Led5 = 5;
int Led6 = 6;
int Led7 = 7;
int Led8 = 8;
#define uchar unsigned char
//led 灯花样显示样式1子程序
void style_1(void)
{
  uchar j;
  for(j=1;j<=8;j++)//每隔200ms依次点亮1~8引脚相连的led灯
  {
    digitalWrite(j,HIGH);//点亮j引脚相连的led 灯
    delay(200);//延时200ms
   }
    for(j=8;j>=1;j--)//每隔200ms依次熄灭8~1引脚相连的led灯
    {
      digitalWrite(j,LOW);//熄灭j引脚相连的led 灯
      delay(200);//延时200ms
     }  
  }
//灯闪烁子程序
void flash(void)
{   
   uchar j,k;
   for(k=0;k<=1;k++)//闪烁两次
   {
     for(j=1;j<=8;j++)//点亮1~8引脚相连的led灯
     digitalWrite(j,HIGH);//点亮与j引脚相连的led灯
     delay(200);//延时200ms
     for(j=1;j<=8;j++)//熄灭1~8引脚相连的led灯
     digitalWrite(j,LOW);//熄灭与j引脚相连的led灯
     delay(200);//延时200ms
   }
}
//led 灯花样显示样式2子程序
void style_2(void)
{
     uchar j,k;
     k=1;//设置k的初值为1
     for(j=4;j>=1;j--)//
     {
       digitalWrite(j,HIGH);//点亮灯
       digitalWrite(j+k,HIGH);//点亮灯
       delay(400);//延时400ms
       k +=2;//k值加2
     }
     k=7;//设置k值为5
     for(j=1;j<=4;j++)
     {
       digitalWrite(j,LOW);//熄灭灯
       digitalWrite(j+k,LOW);//熄灭灯
       delay(400);//延时400ms
       k -=2;//k值减2
     }
   }
   //led 灯花样显示样式3子程序
   void style_3(void)
   {
     uchar j,k;//led 灯花样显示样式3子程序
     k=7;//设置k值为5
     for(j=1;j<=4;j++)
     {
       digitalWrite(j,HIGH);//点亮灯
       digitalWrite(j+k,HIGH);//点亮灯
       delay(400);//延时400ms
       digitalWrite(j,LOW);//熄灭灯
       digitalWrite(j+k,LOW);//熄灭灯
       k -=2;//k值减2
     }

     k=3;//设置k值为3
     for(j=3;j>=1;j--)
     {   
       digitalWrite(j,HIGH);//点亮灯
       digitalWrite(j+k,HIGH);//点亮灯
       delay(400);//延时400ms
       digitalWrite(j,LOW);//熄灭灯
       digitalWrite(j+k,LOW);//熄灭灯
       k +=2;//k值加2
     }  
  }
  void setup()
  {
     uchar i;
     for(i=1;i<=8;i++)//依次设置1~8个数字引脚为输出模式
     pinMode(i,OUTPUT);//设置第i个引脚为输出模式
   }
   void loop()
   {
     style_1();//样式1
     flash();//闪烁
     style_2();//样式2
     flash();//闪烁
     style_3();//样式3
     flash();//闪烁
   }   

评分

参与人数 1黑币 +40 收起 理由
admin + 40 共享资料的积分奖励!

查看全部评分

回复

使用道具 举报

ID:138473 发表于 2016-9-5 11:04 | 显示全部楼层
谢谢分享 。谢谢 !
回复

使用道具 举报

ID:138144 发表于 2016-9-21 11:29 | 显示全部楼层
Arduino好学么?
回复

使用道具 举报

ID:50751 发表于 2016-12-18 03:13 | 显示全部楼层
谢谢分享 。谢谢 !
回复

使用道具 举报

ID:155803 发表于 2016-12-19 09:42 | 显示全部楼层
xiexi
回复

使用道具 举报

ID:412696 发表于 2019-3-9 20:27 | 显示全部楼层
谢谢分享 。谢谢
回复

使用道具 举报

ID:642311 发表于 2019-11-14 22:28 | 显示全部楼层
编译时出错
回复

使用道具 举报

ID:35955 发表于 2020-3-26 10:02 | 显示全部楼层
这算是流水灯的一些扩展应用了,挺好,题主举一反三很棒
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表