LED闪烁的例子再精华-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4830|回复: 3

LED闪烁的例子再精华

[复制链接]
发表于 2013-3-10 17:02 | 显示全部楼层 |阅读模式
刚入手几天,对LED的例子加了中断处理,加了按键

按不同次数,LED的闪烁情况不同

int ledPin=8; //设定控制LED的数字IO脚
int add_key = 1;
void setup()
{
    pinMode(ledPin,OUTPUT);//设定数字IO口的模式,OUTPUT 为输出
    attachInterrupt(0,button,FALLING);
}
void  button()
{
   add_key++;
}
void loop()
{
if (add_key==1)
            {digitalWrite(ledPin,HIGH); //设定PIN8脚为HIGH = 5V左右
             delay(100); //设定延时时间,0.1秒
             digitalWrite(ledPin,LOW); //设定PIN8脚为LOW = 0V
             delay(100); }//设定延时时间,0.1秒
             //break;
if (add_key==2)  
            {digitalWrite(ledPin,HIGH); //设定PIN8脚为HIGH = 5V左右
             delay(800); //设定延时时间,0.8秒
             digitalWrite(ledPin,LOW); //设定PIN8脚为LOW = 0V
             delay(800);} //设定延时时间,0.8秒
             //break;}
if (add_key==3)  
            {digitalWrite(ledPin,HIGH); //设定PIN8脚为HIGH = 5V左右
             delay(5000); //设定延时时间,5秒
             digitalWrite(ledPin,LOW); //设定PIN8脚为LOW = 0V
             delay(5000);} //设定延时时间,5秒
             //break; }  
if (add_key>3) add_key=1;
}

本想发个图片,级别太低,发不了
发表于 2013-3-10 17:55 | 显示全部楼层
不会啊~~~都可以发图片图片的,图片小于500kb就行
 楼主| 发表于 2013-3-10 20:24 | 显示全部楼层
我看了看,图片超500k了,呵呵,不好意思
 楼主| 发表于 2013-3-10 20:27 | 显示全部楼层
接着楼顶的帖子:

我运行了一段时间后,发现按键按了之后,停顿一会儿才能表现出灯的不同状态
仔细分析,发现使用了delay 函数 ,它不执行完就不行

经过思考,决定采用PWM输出来控制

程序如下:

int ledPin=9; //设定控制LED的数字IO脚
int add_key = 1;
void setup()
{
    pinMode(ledPin,OUTPUT);//设定数字IO口的模式,OUTPUT 为输出
    attachInterrupt(0,button,FALLING);
}

void  button()
{
   add_key++;
}

void loop()
{
if (add_key==1) analogWrite(ledPin,10);
if (add_key==2)  analogWrite(ledPin,70);
if (add_key==3)  analogWrite(ledPin,240);
if (add_key>3) add_key=1;
}

其实就是中断+PWM

下一步考虑用遥控器来控制试试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 23:25 , Processed in 0.100868 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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