弘毅 发表于 2013-7-10 16:12:45

本帖最后由 弘毅 于 2013-7-10 16:14 编辑

Mr.Roe 发表于 2013-7-10 15:37 static/image/common/back.gif
回复好神速!程序就是复制一楼的~点不亮,好捉急~

看到了,你那个蓝色的GND线。。因为跨了面包板中部。这两边的线是不通的,你需要用一根短跳线连起来两边,你看那个丝印,蓝色的线在面包板中间部分,是断开的。

Mr.Roe 发表于 2013-7-10 16:24:03

弘毅 发表于 2013-7-10 16:12 static/image/common/back.gif
看到了,你那个蓝色的GND线。。因为跨了面包板中部。这两边的线是不通的,你需要用一根短跳线连起来两边 ...



原来是这样,我自己排错发现换另一边就亮了,还以为是面包版有质量问题~~T - T 谢谢大大~

chaoser 发表于 2013-8-7 17:05:47

本帖最后由 chaoser 于 2013-8-7 17:08 编辑

南方之南 发表于 2012-10-24 10:40 static/image/common/back.gif
void style1 ()
{
unsigned char i,j;


这个没人回复,我来吧。

看了下程序,虽然很崎岖,但大概明白了意思:

首先,7个LED从中间向两侧依次对称点亮,再由两侧向中间依次熄灭。之后,从1到7闪烁一下点亮,再依次熄灭。

那么我来重新实现一下。不过我用的是2~8号引脚,方便起见,头两个引脚还是空着吧。

/* 程序功能:
首先,7个LED从中间向两侧依次对称点亮,再由两侧向中间依次熄灭。
之后,从1到7闪烁一下点亮,再依次熄灭。 */

void setup() { for (int i=2; i<=8; i++) {pinMode(i,OUTPUT);}}

void loop() {
int i;
for (i=0; i<=3; i++) {
    digitalWrite(5+i,HIGH);
    digitalWrite(5-i,HIGH);
    delay(500);
}
for (i=3; i>=0; i--) {
    digitalWrite(5+i,LOW);
    digitalWrite(5-i,LOW);
    delay(500);
}
for (i=2; i<=8; i++) {
    digitalWrite(i,HIGH);
    delay(200);
    digitalWrite(i,LOW);
    delay(200);
    digitalWrite(i,HIGH);
    delay(200);
}
for (i=2; i<=8; i++) {
    digitalWrite(i,LOW);
    delay(400);
}
}

雨季不再来 发表于 2013-9-1 15:09:57

迷你强 发表于 2012-8-19 15:02 static/image/common/back.gif
一样的啊,只要将所有点亮led的语句一起写出来就行了

给个例程吧/*


强哥,问你一个问题,17到21行,当一个x被赋值之后运行digitalwrite(x,high)led直接就亮了么?还是运行完时间再亮,如果是high之后直接亮,然后再去重新给x赋值,如果处理器很慢,是不是就可以认为不是一块点亮的呢?

迷你强 发表于 2013-9-4 09:33:00

;P其实的确不是一起点亮的,他们之间有0.00几毫秒的延时。。。但是对人来说,没区别,计算机的原理就是这样,一个处理核心,单位时间内只能处理一件事情

Mr.Jie 发表于 2013-9-8 01:57:00

本帖最后由 迷你强 于 2013-9-9 09:11 编辑

int led={1,2,3,4};

void setup()
{
        for(int i=0;i<4;i++)
                pinMode(led,OUTPUT);
        Serial.begin(9600);
/* add setup code here */

}

void loop()
{
        void fun(int );
        int num=15;
        for(num=15;num>0;num--)
                fun(num);
        /*Serial.read(num);
        if(Serial.available(num))*/
       
/* add main program code here */

}

void fun(int num)
{
        int a,n=0;
        while(!(num/2)&&!(num%2))
        {
                if(num%2==1)
                        a=1;
                else
                        a=0;
                n++;
                num=num/2;
        }
        for(int i=0;i<4;i++)
        {       
                if(a=1)
                        digitalWrite(led,HIGH);
                else
                        continue;
        }
        delay(5000);
        for(int j=0;i<4;i++)
        {digitalWrite(led,LOW);}
        delay(1000);
}我想让灯泡像二进制一样的有顺序的亮,可是不行   指点一下是算法哪里出问题了

646097010 发表于 2013-10-9 17:03:34

嗯!不错的教程,受教了!

血阳 发表于 2013-10-12 22:52:26

迷你强 发表于 2012-8-19 15:02 static/image/common/back.gif
一样的啊,只要将所有点亮led的语句一起写出来就行了

给个例程吧/*


强哥问个问题;就是关于这题的一个片段。
for (int x=2; x<=7; x++)   //通过循环的方式依次让每个引脚的led在点亮
{
    digitalWrite(x,HIGH);
}
delay(500);                   //同时点亮等待0.5秒

请问执行顺序是不是先一个灯一个灯的瞬间亮了一下熄了,然后等执行完7之后,再一起亮0-5s?

zhaopengxslc 发表于 2013-10-19 21:18:12

学习了 非常受用

363999595 发表于 2013-11-7 21:03:18

为什么都看不到作业演示呢{:soso_e154:}

迷你强 发表于 2013-11-8 15:04:23

363999595 发表于 2013-11-7 21:03 static/image/common/back.gif
为什么都看不到作业演示呢

估计懒。。。

新月 发表于 2013-11-30 13:12:49

我是新手想学,谢谢!
验证码太麻烦!

迷你强 发表于 2013-12-3 11:27:33

新月 发表于 2013-11-30 13:12 static/image/common/back.gif
我是新手想学,谢谢!
验证码太麻烦!

验证码的问题,要恨就恨广告党吧~!

寂寞 发表于 2014-1-3 12:06:29

/*
作者:极客工坊
时间:2012年5月24日
IDE版本号:1.0.1
发布地址:www.geek-workshop.com
作用:让六个led依次点亮熄灭
*/
void setup()
{
for (int i=2; i<=4; i++)    //通过循环的方式设置2-7号引脚为输出状态
{
    pinMode(i,OUTPUT);
}
}
void loop()
{
for (int x=2; x<=4; x++)   //通过循环的方式依次让每个引脚的led在1秒内完成明灭
{
    digitalWrite(x,HIGH);
    delay(500);
    digitalWrite(x,LOW);
    delay(500);
}
}
这样怎么不行,求解

寂寞 发表于 2014-1-3 13:15:07

* 程序功能:
作用:让三个点依次点亮熄灭
*/
void setup(){for(int i=2; i
<=4; i++) pinMode(i;OUTPUT);}

void loop()
{
for (int x=2;x=4;x++)
{
   digitalWrite(x,HIGH)
   delay(100)
   digitalWrite(x,LOW)
   delay(100);
}
}怎么不行求解
页: 1 2 3 [4] 5 6
查看完整版本: Arduino入门教程--第三课--多个LED的闪烁