社区活动向导 发表于 2013-12-30 19:25:57

Arduino学习分享帖:好多灯的应用(社区任务第2波)

            灯            灯灯灯灯灯灯灯灯   
       灯灯灯                  灯
            灯                        灯
          灯   灯             灯   灯
      灯       灯                   灯


请问各位坛友在上面看到了什么???    没错,就是灯,而且是好多灯。。它们组成丰富多彩,五颜六色的世界。小到高清显示器,大到霓虹灯,都是由灯组成。。


所以本期任务就是:多颗灯的组合应用
你可以制作----带规则的交通灯,变化亮度的呼吸灯,华丽变换的流水灯等。
用多个不同颜色的灯,表达出有趣的灯光效果,附上完成后的效果图片或者视屏,都可以完成本期任务。获得“40学霸特别创造力”。
如果带有连线图和代码,楼主会给予“特别贡献奖励”。

以下楼主做得交通灯样例:


左边三个红绿灯,用于车道。右边两个红绿灯,用于人行道。整个运行时间为5秒。

社区活动向导 发表于 2013-12-31 10:43:08

最近小伙伴们都在忙期末考试,年终总结什么的。。。。楼主就先自娱自乐一下。上面那个样例的连线图和代码如下:


代码如下,相信大家都是代码小神童,一定能看得懂:lol
//项目三 -- 互动交通信号灯

int carRed = 12; //设置汽车灯

int carYellow = 11;

int carGreen = 10;

int button = 9; //按钮引脚

int pedRed = 8; //设置行人灯

int pedGreen = 7;

int crossTime = 5000;//允许行人通过的时间

unsigned long changeTime;//按钮按下后的时间



void setup() {

      //所有LED设置为输出模式

      pinMode(carRed, OUTPUT);

      pinMode(carYellow, OUTPUT);

      pinMode(carGreen, OUTPUT);

      pinMode(pedRed, OUTPUT);

      pinMode(pedGreen, OUTPUT);

      pinMode(button, INPUT); //按钮设置为输入模式

      digitalWrite(carGreen, HIGH); //开始时,汽车灯绿灯

      digitalWrite(pedRed, LOW);//行人灯为红灯

}



void loop() {

      int state = digitalRead(button);

      //检测按钮是否被按下,并且是否距上次按下后有5秒的等待时间

if(state == HIGH && (millis() - changeTime)> 5000){

          //调用变灯函数

          changeLights();

}

}



void changeLights() {

      digitalWrite(carGreen, LOW); //汽车绿灯灭

      digitalWrite(carYellow, HIGH); //汽车黄灯亮

      delay(2000); //等待2秒

      

      digitalWrite(carYellow, LOW); //汽车黄灯灭

      digitalWrite(carRed, HIGH); //汽车红灯亮

      delay(1000); //为安全考虑等待1秒

      

      digitalWrite(pedRed, LOW); //行人红灯灭

      digitalWrite(pedGreen, HIGH); //行人绿灯亮



      delay(crossTime); //等待一个通过时间

      

      //闪烁行人灯绿灯,提示可过马路时间快到

      for (int x=0; x<10; x++) {

                digitalWrite(pedGreen, HIGH);

                delay(250);

                digitalWrite(pedGreen, LOW);

                delay(250);

}         

      digitalWrite(pedRed, HIGH);//行人红灯亮

      delay(500);



      digitalWrite(carRed, LOW); //汽车红灯灭

      digitalWrite(carYellow, HIGH); //汽车黄灯亮

      delay(1000);

      digitalWrite(carYellow, LOW); //汽车黄灯灭

digitalWrite(carGreen, HIGH); //汽车绿灯亮



            changeTime = millis(); //记录自上一次灯变化的时间

            //返回到主函数循环中

}


nemon 发表于 2014-1-2 18:37:58

回答:《analog输出实现拖尾灯效果》
连线图、代码请移步原帖,在https://mc.dfrobot.com.cn/forum.php?mod=viewthread&tid=1273
效果就是这样的:


垃圾袋降低亮度的方法很屌丝吧?在别的地方学来的:lol

nemon 发表于 2014-1-2 19:10:12

社区活动向导 发表于 2013-12-31 10:43
最近小伙伴们都在忙期末考试,年终总结什么的。。。。楼主就先自娱自乐一下。上面那个样例的连线图和代码如 ...

请教下,您的连线图使用什么工具画的?

Jane 发表于 2014-1-3 10:32:55

nemon 发表于 2014-1-2 19:10
请教下,您的连线图使用什么工具画的?

用Inkscape画的

社区活动向导 发表于 2014-1-3 10:40:02

用inscape画的,大家用了都说好!:lol

nemon 发表于 2014-1-3 11:28:25

社区活动向导 发表于 2014-1-3 10:40
用inscape画的,大家用了都说好!

arduino和led的素材是inscape自带的吗?

nemon 发表于 2014-1-3 11:31:07

Jane 发表于 2014-1-3 10:32
用Inkscape画的

谢谢告知
请教下
inscape里有各种器件的素材吗?还是要自己收集?

Jane 发表于 2014-1-4 15:23:37

nemon 发表于 2014-1-3 11:31
谢谢告知
请教下
inscape里有各种器件的素材吗?还是要自己收集?

这是要自己画的

nemon 发表于 2014-1-6 08:47:04

Jane 发表于 2014-1-4 15:23
这是要自己画的

收到。谢谢

社区活动向导 发表于 2014-2-12 16:40:18

已经为发正确回复的客户加上奖励了哦,小伙伴们自己查看一下创造力
页: [1]
查看完整版本: Arduino学习分享帖:好多灯的应用(社区任务第2波)