葱拌豆腐 发表于 2012-12-19 23:38:43

新手入门之呼吸灯实验

本帖最后由 弘毅 于 2012-12-20 08:49 编辑

自从拿到UNO后就痴迷上了,但愿不是三分钟热情,O(∩_∩)O~
今天学习了一下PWM,这么复杂的一个技术,在Arduino上实现起来居然这么简单。今天晚上依然是依葫芦画瓢,做一下呼吸灯的实验,纯软件方式实现,也就是调用analogWrite函数。
代码中PWM占空比没有开到最大,试验后发现100以后的灯亮度差不多,另外一处是在灯全亮和全灭时延时0.5秒,使之更有呼吸灯的效果。
----------------------------------------------------------一下是代码--------------------------------------
/*
Created by GUODONG

PWM Control LED
*/
int PWMPin=3;//我采用了3脚

void setup()//如果采用PWM的话,貌似不需要设置引脚的模式
{
}

void loop()
{
for(int i=0;i<100;i++)
{
    analogWrite(PWMPin,i);
    delay(10);//采用10是为了从灭到亮正好经过1秒时间
}
analogWrite(PWMPin,100);
delay(500);
for(int i=100;i>=0;i--)
{
    analogWrite(PWMPin,i);
    delay(10);
}
analogWrite(PWMPin,0);
delay(500);
}

8200 发表于 2013-5-4 01:50:21

:)程序上机通过!
谢谢分享了。

火影 发表于 2015-1-9 11:06:20

为什么效果不明显

picfan 发表于 2015-1-9 15:17:06

代码改一下
拉一条线D3 <-->D13
使用L13即可/*
Created by GUODONG

PWM Control LED
*/
int PWMPin=3;//我采用了3脚

void setup()//如果采用PWM的话,貌似不需要设置引脚的模式
{
pinMode(13, INPUT);
}

void loop()
{
for(int i=0;i<101;i++)
{
    analogWrite(PWMPin,i);
    delay(10);//采用10是为了从灭到亮正好经过1秒时间
}
delay(500);
for(int i=100;i>=0;i--)
{
    analogWrite(PWMPin,i);
    delay(10);
}
analogWrite(PWMPin,0);
delay(500);
}

一大浩 发表于 2015-5-14 13:01:24

如何让呼吸灯呼完之后不再循环?
页: [1]
查看完整版本: 新手入门之呼吸灯实验