佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 3429|回复: 35

新手上路, Arduino 乐园- LCD clock ..

[复制链接]
发表于 25-4-2013 07:41 PM | 显示全部楼层 |阅读模式
小弟对电子不是很会, 现在只是会了一点皮毛,前几个月为了做一样东西花了很多时间来做实验和设计
看看大家贴关于 MCU 的东西,小弟能够感觉到如果会了他..那么很多问题都能够解决了..之前不能完成的电路现在突然觉得很容易.
于是小弟就买了 arduino UNO 和 IT MPS430 来玩玩
目前开了 arduino 的盒子来玩了 MPS430 丢一边先
这些是 arduino 的照片









第一个 example








本帖最后由 angels1026 于 29-7-2013 11:08 PM 编辑

回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 25-4-2013 08:53 PM | 显示全部楼层
呵呵来写一个 sketch 出来看看 (学习)
想做一个 LED 从 青色 亮到黄色 重复两次 然后 闪闪闪












  1. //LED blinking

  2. int green = 3;
  3. int red = 5;
  4. int blue = 6;
  5. int yellow = 9;
  6. int i = 0;
  7. int j = 0;
  8. int g = 0;
  9. int fade = 2;

  10. void setup(){
  11.   pinMode(green,OUTPUT);
  12.   pinMode(red, OUTPUT);
  13.   pinMode(blue, OUTPUT);
  14.   pinMode(yellow, OUTPUT);

  15. }

  16. void loop(){
  17.   for(j = 0; j < 2 ; j++ ){
  18.     for(i = 0; i < 255; i++ ){
  19.       analogWrite(green,i);
  20.       delay(fade);
  21.     }
  22.     for(i = 254; i > 0; i--){
  23.       analogWrite(green,i);
  24.       delay(fade);
  25.     }
  26.     digitalWrite(green,LOW);

  27.     for(i = 0; i < 255; i++ ){
  28.       analogWrite(red,i);
  29.       delay(fade);
  30.     }
  31.     for(i = 254; i > 0; i--){
  32.       analogWrite(red,i);
  33.       delay(fade);
  34.     }
  35.     digitalWrite(red,LOW);

  36.     for(i = 0; i < 255; i++ ){
  37.       analogWrite(blue,i);
  38.       delay(fade);
  39.     }
  40.     for(i = 254; i > 0; i--){
  41.       analogWrite(blue,i);
  42.       delay(fade);
  43.     }
  44.     digitalWrite(blue,LOW);

  45.     for(i = 0; i < 255; i++ ){
  46.       analogWrite(yellow,i);
  47.       delay(fade);
  48.     }
  49.     for(i = 254; i > 0; i--){
  50.       analogWrite(yellow,i);
  51.       delay(fade);
  52.     }
  53.     digitalWrite(yellow,LOW);
  54.   }
  55.   for(g = 0; g <10000; g++){
  56.     digitalWrite(green, HIGH);
  57.     digitalWrite(red, LOW);
  58.     digitalWrite(blue, LOW);
  59.     digitalWrite(yellow, LOW);
  60.     delay(100);
  61.     digitalWrite(green, LOW);
  62.     digitalWrite(red, HIGH);
  63.     digitalWrite(blue, LOW);
  64.     digitalWrite(yellow, LOW);
  65.     delay(100);
  66.     digitalWrite(green, LOW);
  67.     digitalWrite(red, LOW);
  68.     digitalWrite(blue, HIGH);
  69.     digitalWrite(yellow, LOW);
  70.     delay(100);
  71.     digitalWrite(green, LOW);
  72.     digitalWrite(red, LOW);
  73.     digitalWrite(blue, LOW);
  74.     digitalWrite(yellow, HIGH);
  75.     delay(100);
  76.     digitalWrite(green, LOW);
  77.     digitalWrite(red, LOW);
  78.     digitalWrite(blue, HIGH);
  79.     digitalWrite(yellow, LOW);
  80.     delay(100);
  81.     digitalWrite(green, LOW);
  82.     digitalWrite(red, HIGH);
  83.     digitalWrite(blue, LOW);
  84.     digitalWrite(yellow, LOW);
  85.     delay(100);
  86.   }
  87. }






复制代码
想问问大家后面那个 闪闪有什么 shortcut 吗 ? 小弟想不到








[/quote][/code] 本帖最后由 angels1026 于 25-4-2013 08:55 PM 编辑

回复

使用道具 举报

发表于 26-4-2013 09:32 AM | 显示全部楼层
angels1026 发表于 25-4-2013 08:53 PM
呵呵来写一个 sketch 出来看看 (学习)
想做一个 LED 从 青色 亮到黄色 重复两次 然后 闪闪闪


//LED blinking

int green = 3;
int red = 5;
int blue = 6;
int yellow = 9;
int i = 0;
int j = 0;
int g = 0;
int fade = 2;


void setup(){
  pinMode(green,OUTPUT);
  pinMode(red, OUTPUT);
  pinMode(blue, OUTPUT);
  pinMode(yellow, OUTPUT);

}

void loop(){
  for(j = 0; j < 2 ; j++ ){
    for(i = 0; i < 255; i++ ){
      analogWrite(green,i);
      delay(fade);
    }
    for(i = 254; i > 0; i--){
      analogWrite(green,i);
      delay(fade);
    }
    digitalWrite(green,LOW);

    for(i = 0; i < 255; i++ ){
      analogWrite(red,i);
      delay(fade);
    }
    for(i = 254; i > 0; i--){
      analogWrite(red,i);
      delay(fade);
    }
    digitalWrite(red,LOW);

    for(i = 0; i < 255; i++ ){
      analogWrite(blue,i);
      delay(fade);
    }
    for(i = 254; i > 0; i--){
      analogWrite(blue,i);
      delay(fade);
    }
    digitalWrite(blue,LOW);

    for(i = 0; i < 255; i++ ){
      analogWrite(yellow,i);
      delay(fade);
    }
    for(i = 254; i > 0; i--){
      analogWrite(yellow,i);
      delay(fade);
    }
    digitalWrite(yellow,LOW);
  }
  for(g = 0; g <10000; g++){
    showColour(HIGH,LOW,LOW, LOW);
    showColour(LOW, HIGH,LOW,LOW);
    showColour(LOW,LOW, HIGH, LOW);   
    showColour(LOW,LOW, LOW, HIGH);
   }
}


void showColour(int colGreen, int colRed, int colBlue, int colYellow)
{
    digitalWrite(green, colGreen);
    digitalWrite(red, colRed);
    digitalWrite(blue,colBlue);
    digitalWrite(yellow, colYellow);
    delay(100);  
}

代码只是随手写的,还没测试。不过应该没问题。
还有一个可行的方法,就是使用array。


回复

使用道具 举报

 楼主| 发表于 26-4-2013 03:16 PM | 显示全部楼层
西门庆33 发表于 26-4-2013 09:32 AM
//LED blinking

int green = 3;

你提到了 array .. 我便去查查看..
下面是我的结果
  1. int led[] = {
  2.   3, 5, 6, 9};
  3. int a = 0;

  4. void setup(){
  5.   for(a = 0; a < 4; a++){
  6.     pinMode(led[a], OUTPUT);
  7.   }
  8. }

  9. void loop(){
  10.   for(a = 0; a < 4; a++){
  11.     digitalWrite(led[a],HIGH);
  12.     delay(100);
  13.     digitalWrite(led[a],LOW);
  14.   }
  15.   for(a = 3; a > 0; a-- ){
  16.     digitalWrite(led[a],HIGH);
  17.     delay(100);
  18.     digitalWrite(led[a],LOW);
  19.   }
  20. }
复制代码
可是小弟不明白的是
  1. void setup(){
  2.   for(a = 0; a < 4; a++){
  3.     pinMode(led[a], OUTPUT);
  4.   }
  5. }
复制代码
为什么要加 for(a=0; a<4; a++){
如果没有加 LED 不能亮 。。 只看见微弱的光
到底是什么意思 啊



回复

使用道具 举报

发表于 26-4-2013 06:57 PM | 显示全部楼层
angels1026 发表于 26-4-2013 03:16 PM
你提到了 array .. 我便去查查看..
下面是我的结果 可是小弟不明白的是为什么要加 for(a=0; a

你也学得真快
  1. for(a = 0; a < 4; a++){
  2.     pinMode(led[a], OUTPUT);
  3.   }
复制代码
与下面代码一样
  1. pinMode(led[0], OUTPUT);
  2. pinMode(led[1], OUTPUT);
  3. pinMode(led[2], OUTPUT);
  4. pinMode(led[3], OUTPUT);
复制代码
也和下面代码一样
  1. pinMode(3, OUTPUT);
  2. pinMode(5, OUTPUT);
  3. pinMode(6, OUTPUT);
  4. pinMode(9, OUTPUT);
复制代码
不过array应该运用在colGreen, colRed, colBlue, colYellow。自己研究吧!
tips:
  1. int colours[16] = {
  2. HIGH,LOW,LOW, LOW,
  3. LOW, HIGH,LOW,LOW,
  4. LOW,LOW, HIGH, LOW,
  5. LOW,LOW, LOW, HIGH
  6. };
复制代码
  1. void showColou() {
  2.   for(byte a = 0; a < 16; a++){
  3.     int i= a % 4; //modulo or remainder (i always between 0 to 3)
  4.     digitalWrite(green, colours[a*i]); //0,4,8,12
  5.     digitalWrite(red, colours[a*i+1]); //1,5,9,13
  6.     digitalWrite(blue,colours[a*i+2]); //2,6,10,14
  7.     digitalWrite(yellow, colours[a*i+3]); //3,7,11,15
  8.     delay(100);      
  9.   }           
  10. }
复制代码
本帖最后由 西门庆33 于 26-4-2013 10:08 PM 编辑

回复

使用道具 举报

 楼主| 发表于 26-4-2013 09:40 PM | 显示全部楼层
西门庆33 发表于 26-4-2013 06:57 PM
你也学得真快与下面代码一样也和下面代码一样不过array应该运用在colGreen, colRed, colBlue, colYellow。 ...
  1. // array with LED angels1026
  2. int green = 3;
  3. int red = 5;
  4. int blue = 6;
  5. int yellow = 9;
  6. int colour[16] = {
  7.   HIGH,LOW,LOW,LOW, // green
  8.   LOW,HIGH,LOW,LOW, // red
  9.   LOW,LOW,HIGH,LOW, // blue
  10.   LOW,LOW,LOW,HIGH  // yellow
  11. //  1  2   3    4
  12. };

  13. int time = 100;  
  14. int g = 5;
  15. int a = 0;

  16. void setup(){
  17.   pinMode(red,OUTPUT);
  18.   pinMode(green,OUTPUT);
  19.   pinMode(blue,OUTPUT);
  20.   pinMode(yellow,OUTPUT);
  21. }

  22. void loop(){
  23.   for( a = 0 ; a < 4; a++ ){
  24.     digitalWrite(green,colour[a]);   // a = 1            HIGH -> LOW -> LOW -> LOW
  25.     delay(g);
  26.     digitalWrite(red,colour[a+4]);   // a = 1+ 4 = 9     LOW -> HIGH -> LOW -> LOW
  27.     delay(g);
  28.     digitalWrite(blue,colour[a+8]);   //  a = 1+8 = 9    LOW -> LOW -> HIGH -> LOW
  29.     delay(g);
  30.     digitalWrite(yellow,colour[a+12]); // a = 1+ 12 = 13  LOW -> LOW -> LOW -> HIGH
  31.     delay(time);
  32.   }
  33. }
复制代码
现在要控制 LED 怎样闪闪 都行.. 又方便

回复

使用道具 举报

Follow Us
发表于 26-4-2013 10:05 PM | 显示全部楼层
angels1026 发表于 26-4-2013 09:40 PM
现在要控制 LED 怎样闪闪 都行.. 又方便

Wow!青出于蓝。怎么我会想到这么复杂呢?

不过认识了以下代码,你又多学一样东西了。
int i= a % 4; //modulo or remainder (i always between 0 to 3)
回复

使用道具 举报

发表于 26-4-2013 10:12 PM | 显示全部楼层
用你之前的array代码,再简化这个
  1. int led[] = { 3, 5, 6, 9};
复制代码
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 26-4-2013 11:02 PM | 显示全部楼层
西门庆33 发表于 26-4-2013 10:12 PM
用你之前的array代码,再简化这个

又来高难度挑战
回复

使用道具 举报

 楼主| 发表于 26-4-2013 11:52 PM | 显示全部楼层
西门庆33 发表于 26-4-2013 10:12 PM
用你之前的array代码,再简化这个

大哥有没有一点 tips ...
回复

使用道具 举报

 楼主| 发表于 27-4-2013 12:13 AM | 显示全部楼层
  1. // array with LED angels1026
  2. int led[4] = { 3, 5, 6, 9};
  3. int colour[16] = {
  4.   HIGH,LOW,LOW,LOW, // green
  5.   LOW,HIGH,LOW,LOW, // red
  6.   LOW,LOW,HIGH,LOW, // blue
  7.   LOW,LOW,LOW,HIGH  // yellow
  8. //  1  2   3    4
  9. };
  10. int a,b;

  11. void setup(){
  12.   for(b = 0 ; b < 4; b++){
  13.     pinMode(led[b],OUTPUT);
  14.   }
  15. }
  16.   

  17. void loop(){
  18.   for( a = 0 ; a < 4; a++){
  19.    b = a * 4;
  20.     digitalWrite(led[a],colour[a + b]);   
  21.     delay(100);
  22.     digitalWrite(led[a],LOW);
  23.     delay(50);
  24.   }
  25. }
复制代码
应该可以了吧
本帖最后由 angels1026 于 27-4-2013 12:15 AM 编辑

回复

使用道具 举报

发表于 27-4-2013 09:19 AM | 显示全部楼层
angels1026 发表于 27-4-2013 12:13 AM
应该可以了吧

真的非常简化了,以前你学过编程吗?
我想问一下,为何要关灯50 milli seconds?
  1. digitalWrite(led[a],LOW);
  2.     delay(50);
复制代码
補充一下
int a,b; 应该在function里declare更恰当
  1. for(int b = 0 ; b < 4; b++){
复制代码
  1. for( int a = 0 ; a < 4; a++){
  2.    int b = a * 4;
复制代码
程序变得复杂时必需这样编写,当相对的指令运行完後从而释放memory,以便省下一些memory。
回复

使用道具 举报

 楼主| 发表于 27-4-2013 05:49 PM | 显示全部楼层
西门庆33 发表于 27-4-2013 09:19 AM
真的非常简化了,以前你学过编程吗?
我想问一下,为何要关灯50 milli seconds?補充一下
int a,b; 应该 ...

如果 delay 50ms 没有放 led 闪的很快 看了不爽..
现在想做个 LED cube 3x3x3
回复

使用道具 举报

发表于 27-4-2013 06:53 PM | 显示全部楼层
angels1026 发表于 27-4-2013 05:49 PM
如果 delay 50ms 没有放 led 闪的很快 看了不爽..
现在想做个 LED cube 3x3x3

这样快就玩3D cube了?,趕快动手吧,期待着你的发挥。
有时不得不佩服Arduino的易用性。

回复

使用道具 举报

 楼主| 发表于 28-4-2013 12:14 AM | 显示全部楼层
西门庆33 发表于 27-4-2013 06:53 PM
这样快就玩3D cube了?,趕快动手吧,期待着你的发挥。
有时不得不佩服Arduino的易用性。

挑战成功
我又发现了新东西













OK LED 及格

有了 LED 也要有源码才能够动.
  1. int xy[3][3] = {
  2.   {
  3.     2,3,4,              }
  4.   ,{
  5.     5,6,7              }
  6.   ,{
  7.     8,9,10              }
  8. };
  9. int a,b,c,z;
  10. int g = 200;
  11. // 13 = layer 1
  12. // 12 = layer 2
  13. // 11 = layer 3

  14. void setup(){
  15.   for(a = 2; a < 13; a++ ){
  16.     pinMode(a,OUTPUT);
  17.   }
  18. }

  19. void loop(){
  20.   for(b = 0; b <3; b++){
  21.     digitalWrite(13,HIGH);
  22.     digitalWrite(xy[0][b],HIGH);
  23.     delay(g);
  24.     digitalWrite(xy[0][b],LOW);
  25.   }
  26.   for(b = 0; b < 3;b ++){
  27.     digitalWrite(13,HIGH);
  28.     digitalWrite(xy[1][b],HIGH);
  29.     delay(g);
  30.     digitalWrite(xy[1][b],LOW);
  31.   }
  32.   for(b = 0; b < 3; b++){
  33.     digitalWrite(13,HIGH);
  34.     digitalWrite(xy[2][b],HIGH);
  35.     delay(g);
  36.     digitalWrite(xy[2][b],LOW);
  37.   }
  38.   for(b = 0; b <3; b++){
  39.     digitalWrite(13,LOW);
  40.     digitalWrite(12,HIGH);
  41.     digitalWrite(xy[0][b],HIGH);
  42.     delay(g);
  43.     digitalWrite(xy[0][b],LOW);
  44.   }
  45.   for(b = 0; b < 3;b ++){
  46.     digitalWrite(12,HIGH);
  47.     digitalWrite(xy[1][b],HIGH);
  48.     delay(g);
  49.     digitalWrite(xy[1][b],LOW);
  50.   }
  51.   for(b = 0; b < 3; b++){
  52.     digitalWrite(12,HIGH);
  53.     digitalWrite(xy[2][b],HIGH);
  54.     delay(g);
  55.     digitalWrite(xy[2][b],LOW);
  56.   }
  57.   for(b = 0; b <3; b++){
  58.     digitalWrite(12,LOW);
  59.     digitalWrite(11,HIGH);
  60.     digitalWrite(xy[0][b],HIGH);
  61.     delay(g);
  62.     digitalWrite(xy[0][b],LOW);
  63.   }
  64.   for(b = 0; b < 3;b ++){
  65.     digitalWrite(11,HIGH);
  66.     digitalWrite(xy[1][b],HIGH);
  67.     delay(g);
  68.     digitalWrite(xy[1][b],LOW);
  69.   }
  70.   for(b = 0; b < 3; b++){
  71.     digitalWrite(11,HIGH);
  72.     digitalWrite(xy[2][b],HIGH);
  73.     delay(g);
  74.     digitalWrite(xy[2][b],LOW);
  75.   }
  76.   for(z = 0; z < 5; z++){
  77.     for(b = 0; b < 3; b++){
  78.       digitalWrite(11,HIGH);
  79.       digitalWrite(12,HIGH);
  80.       digitalWrite(13,HIGH);   
  81.       digitalWrite(xy[0][b],HIGH);
  82.       digitalWrite(xy[1][b],HIGH);
  83.       digitalWrite(xy[2][b],HIGH);
  84.       delay(100);
  85.       digitalWrite(xy[0][b],LOW);
  86.       digitalWrite(xy[1][b],LOW);
  87.       digitalWrite(xy[2][b],LOW);
  88.     }  
  89.     delay(100);
  90.     digitalWrite(11,LOW);
  91.     digitalWrite(12,LOW);
  92.     digitalWrite(13,LOW);
  93.   }
  94. }







复制代码
只是 两个 effect 要更多的 effect 要花时间写

回复

使用道具 举报

发表于 28-4-2013 10:43 AM | 显示全部楼层
angels1026 发表于 28-4-2013 12:14 AM
挑战成功
我又发现了新东西

我的Arduino买了一年後才开始工作,想不到你一下子玩了这么多东西。

我这个人就是很奇怪,做事总是慢吞吞。买了东西放在一旁要等很长的时间才动手。看下面这张订货单,订购日期是05/04/2012,一年有馀,只用了几粒74HC595和8MHz Resonator,两个大头(PIC32 Pinguino和Chipki UNO32)只是打开盒子看看就就放进橱里了,不懂何时何日才走出冷宫。
order.jpg
去年买的PIC32 Pinguino只售RM 30.42,现在已经是RM 114.17


回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 29-4-2013 12:55 AM | 显示全部楼层
西门庆33 发表于 28-4-2013 10:43 AM
我的Arduino买了一年後才开始工作,想不到你一下子玩了这么多东西。

我这个人就是很奇怪,做事总是慢吞 ...

大哥啊... 我之前要的 LED 慢慢开灯 想要问问下 提示

LED 灯壳里面有 4 组 不同颜色的 LED  分辨是  强光白,微弱白, 蓝,红,
然后有一粒 switch .. 当 toggle switch ON的时候  蓝先亮 delay (time) ;红色亮delay(time);微弱白亮delay(time); 强光白亮delay(time);
当 toggle switch OFF , LED 倒转熄灯  白OFF -> 白 OFF -> 蓝OFF -> 红 OFF

问题解决了
  1. int led[5] = {
  2.   3, 5, 6, 9};
  3. int b1 = 0;
  4. int button = 2;
  5. int g;

  6. int a;
  7. int time = 6000;

  8. void setup(){
  9.   int i;
  10.   for(i = 0; i< 4; i++){
  11.     pinMode(led[i],OUTPUT);
  12.   }
  13.   pinMode(button,INPUT);
  14. }

  15. void loop(){
  16.   b1 = digitalRead(button);
  17.   if(b1 == HIGH){
  18.     for(a = 0; a < 5; a++){
  19.       digitalWrite(led[a],HIGH);
  20.       g = 0;
  21.       while(g < 10){
  22.         g++;
  23.         delay(time);
  24.       }
  25.     }
  26.   }
  27.   else{
  28.     for(a = 4; a > -1; a--){
  29.       delay(time);
  30.       digitalWrite(led[a],LOW);
  31.       g = 0;
  32.       while(g < 10){
  33.         g++;
  34.         delay(time);   
  35.       }
  36.     }
  37.   }
  38. }







复制代码
实验了没问题..
不过这不是我想要的   我要每一个灯慢慢亮  要加上 PWM + 一组一组开 有什么 tips 吗
这个 差不多 1 分钟 40 秒 的 delay








回复

使用道具 举报

发表于 29-4-2013 06:10 PM | 显示全部楼层
angels1026 发表于 29-4-2013 12:55 AM
大哥啊... 我之前要的 LED 慢慢开灯 想要问问下 提示

LED 灯壳里面有 4 组 不同颜色的 LED  分 ...
  1. void fadein(int ledPin) {
  2.   // fade in from min to max in increments of 5 points:
  3.   for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
  4.     // sets the value (range from 0 to 255):
  5.     analogWrite(ledPin, fadeValue);         
  6.     // wait for 30 milliseconds to see the dimming effect   
  7.     delay(30);                           
  8.   }   
  9. }

  10. void fadeout(int ledPin) {
  11.   // fade out from max to min in increments of 5 points:
  12.   for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
  13.     // sets the value (range from 0 to 255):
  14.     analogWrite(ledPin, fadeValue);         
  15.     // wait for 30 milliseconds to see the dimming effect   
  16.     delay(30);                           
  17.   }  
  18. }
复制代码
用法:
fadein(blue_led);
fadeout(blue_led);


回复

使用道具 举报

 楼主| 发表于 29-4-2013 06:29 PM | 显示全部楼层
  1. int xy[3][3] = {
  2.   {
  3.     2,3,4,                                                }
  4.   ,{
  5.     5,6,7                                                }
  6.   ,{
  7.     8,9,10                                                }
  8. };
  9. int a,b,c,z,i;
  10. int g = 200;
  11. int h = 1;
  12. // 13 = layer 1
  13. // 12 = layer 2
  14. // 11 = layer 3

  15. void setup(){
  16.   for(a = 2; a < 13; a++ ){
  17.     pinMode(a,OUTPUT);
  18.   }
  19. }

  20. void loop(){
  21.   for(b = 0; b <3; b++){
  22.     digitalWrite(13,HIGH);
  23.     digitalWrite(xy[0][b],HIGH);
  24.     delay(g);
  25.     digitalWrite(xy[0][b],LOW);
  26.   }
  27.   for(b = 0; b < 3;b ++){
  28.     digitalWrite(13,HIGH);
  29.     digitalWrite(xy[1][b],HIGH);
  30.     delay(g);
  31.     digitalWrite(xy[1][b],LOW);
  32.   }
  33.   for(b = 0; b < 3; b++){
  34.     digitalWrite(13,HIGH);
  35.     digitalWrite(xy[2][b],HIGH);
  36.     delay(g);
  37.     digitalWrite(xy[2][b],LOW);
  38.   }
  39.   for(b = 0; b <3; b++){
  40.     digitalWrite(13,LOW);
  41.     digitalWrite(12,HIGH);
  42.     digitalWrite(xy[0][b],HIGH);
  43.     delay(g);
  44.     digitalWrite(xy[0][b],LOW);
  45.   }
  46.   for(b = 0; b < 3;b ++){
  47.     digitalWrite(12,HIGH);
  48.     digitalWrite(xy[1][b],HIGH);
  49.     delay(g);
  50.     digitalWrite(xy[1][b],LOW);
  51.   }
  52.   for(b = 0; b < 3; b++){
  53.     digitalWrite(12,HIGH);
  54.     digitalWrite(xy[2][b],HIGH);
  55.     delay(g);
  56.     digitalWrite(xy[2][b],LOW);
  57.   }
  58.   for(b = 0; b <3; b++){
  59.     digitalWrite(12,LOW);
  60.     digitalWrite(11,HIGH);
  61.     digitalWrite(xy[0][b],HIGH);
  62.     delay(g);
  63.     digitalWrite(xy[0][b],LOW);
  64.   }
  65.   for(b = 0; b < 3;b ++){
  66.     digitalWrite(11,HIGH);
  67.     digitalWrite(xy[1][b],HIGH);
  68.     delay(g);
  69.     digitalWrite(xy[1][b],LOW);
  70.   }
  71.   for(b = 0; b < 3; b++){
  72.     digitalWrite(11,HIGH);
  73.     digitalWrite(xy[2][b],HIGH);
  74.     delay(g);
  75.     digitalWrite(xy[2][b],LOW);
  76.   }
  77.   for(z = 0; z < 5; z++){
  78.     for(b = 0; b < 3; b++){
  79.       digitalWrite(11,HIGH);
  80.       digitalWrite(12,HIGH);
  81.       digitalWrite(13,HIGH);   
  82.       digitalWrite(xy[2][b],HIGH);
  83.       digitalWrite(xy[1][b],HIGH);
  84.       digitalWrite(xy[0][b],HIGH);
  85.       delay(100);
  86.       digitalWrite(xy[2][b],LOW);
  87.       digitalWrite(xy[1][b],LOW);
  88.       digitalWrite(xy[0][b],LOW);
  89.     }      
  90.   }

  91.   for(z = 0; z < 5; z++){
  92.     for(b = 0; b < 3; b++){
  93.       digitalWrite(11,HIGH);
  94.       digitalWrite(12,HIGH);
  95.       digitalWrite(13,HIGH);
  96.       digitalWrite(xy[b][0],HIGH);
  97.       digitalWrite(xy[b][1],HIGH);
  98.       digitalWrite(xy[b][2],HIGH);
  99.       delay(100);
  100.       digitalWrite(xy[b][0],LOW);
  101.       digitalWrite(xy[b][1],LOW);
  102.       digitalWrite(xy[b][2],LOW);      
  103.     }  
  104.   }
  105.   for(z = 0; z < 5; z++){
  106.     for(b = 2; b > -1; b--){
  107.       digitalWrite(11,HIGH);
  108.       digitalWrite(12,HIGH);
  109.       digitalWrite(13,HIGH);   
  110.       digitalWrite(xy[0][b],HIGH);
  111.       digitalWrite(xy[1][b],HIGH);
  112.       digitalWrite(xy[2][b],HIGH);
  113.       delay(100);
  114.       digitalWrite(xy[0][b],LOW);
  115.       digitalWrite(xy[1][b],LOW);
  116.       digitalWrite(xy[2][b],LOW);
  117.     }
  118.   }
  119.   for(z = 0; z < 5; z++){
  120.     b = 2;
  121.     while(b > -1){
  122.       digitalWrite(11,HIGH);
  123.       digitalWrite(12,HIGH);
  124.       digitalWrite(13,HIGH);
  125.       digitalWrite(xy[b][0],HIGH);
  126.       digitalWrite(xy[b][1],HIGH);
  127.       digitalWrite(xy[b][2],HIGH);
  128.       delay(100);
  129.       digitalWrite(xy[b][0],LOW);
  130.       digitalWrite(xy[b][1],LOW);
  131.       digitalWrite(xy[b][2],LOW);  
  132.       b--;   
  133.     }
  134.   }

  135.   digitalWrite(11,LOW);
  136.   digitalWrite(12,LOW);
  137.   digitalWrite(13,LOW);

  138.   for(z = 0; z < 5; z++){
  139.     for(b = -1; b < 3; b++){
  140.       digitalWrite(xy[0][b],HIGH);
  141.       digitalWrite(xy[1][b],HIGH);
  142.       digitalWrite(xy[2][b],HIGH);
  143.     }
  144.     digitalWrite(13,HIGH);
  145.     delay(100);
  146.     digitalWrite(13,LOW);
  147.     digitalWrite(12,HIGH);
  148.     delay(100);
  149.     digitalWrite(12,LOW);
  150.     digitalWrite(11,HIGH);
  151.     delay(g);
  152.     digitalWrite(11,LOW);
  153.   }
  154.   delay(50);

  155.   for(z = 0; z < 5; z++){
  156.     digitalWrite(11,HIGH);
  157.     delay(130);
  158.     digitalWrite(11,LOW);
  159.     digitalWrite(12,HIGH);
  160.     delay(130);
  161.     digitalWrite(12,LOW);
  162.     digitalWrite(13,HIGH);
  163.     delay(130);
  164.     digitalWrite(13,LOW);
  165.     digitalWrite(11,LOW);

  166.   }
  167.   for(b = -1; b < 3; b++){
  168.     digitalWrite(xy[0][b],LOW);
  169.     digitalWrite(xy[1][b],LOW);
  170.     digitalWrite(xy[2][b],LOW);
  171.   }

  172.   for(c = 0; c < 5; c++){
  173.     for(b = 11; b < 14; b++){
  174.       digitalWrite(b,HIGH);
  175.     }
  176.     digitalWrite(xy[2][2],LOW);
  177.     digitalWrite(xy[0][0],HIGH);
  178.     delay(130);
  179.     digitalWrite(xy[0][0],LOW);
  180.     digitalWrite(xy[0][1],HIGH);
  181.     digitalWrite(xy[1][0],HIGH);
  182.     delay(130);
  183.     digitalWrite(xy[0][1],LOW);
  184.     digitalWrite(xy[1][0],LOW);
  185.     digitalWrite(xy[0][2],HIGH);
  186.     digitalWrite(xy[1][1],HIGH);
  187.     digitalWrite(xy[2][0],HIGH);
  188.     delay(130);
  189.     digitalWrite(xy[0][2],LOW);
  190.     digitalWrite(xy[1][1],LOW);
  191.     digitalWrite(xy[2][0],LOW);
  192.     digitalWrite(xy[1][2],HIGH);
  193.     digitalWrite(xy[2][1],HIGH);
  194.     delay(130);
  195.     digitalWrite(xy[1][2],LOW);
  196.     digitalWrite(xy[2][1],LOW);
  197.     digitalWrite(xy[2][2],HIGH);
  198.     delay(130);
  199.     digitalWrite(xy[2][2],LOW);
  200.   }


  201.   for(b = -1; b < 3; b++){
  202.     digitalWrite(xy[0][b],LOW);
  203.     digitalWrite(xy[1][b],LOW);
  204.     digitalWrite(xy[2][b],LOW);
  205.   }
  206.   for(a = 0; a < 5; a++){
  207.     i = 0;
  208.     for(z = 0 ; z < 100; z++){

  209.       digitalWrite(12,LOW);
  210.       digitalWrite(13,LOW);
  211.       digitalWrite(11,HIGH);
  212.       digitalWrite(xy[0][0],HIGH);
  213.       digitalWrite(xy[0][1],HIGH);
  214.       digitalWrite(xy[0][2],HIGH);
  215.       digitalWrite(xy[2][0],LOW);
  216.       digitalWrite(xy[2][1],LOW);
  217.       digitalWrite(xy[2][2],LOW);
  218.       delay(1);
  219.       digitalWrite(xy[0][0],LOW);
  220.       digitalWrite(xy[0][1],LOW);
  221.       digitalWrite(xy[0][2],LOW);
  222.       digitalWrite(11,LOW);
  223.       digitalWrite(13,LOW);
  224.       digitalWrite(xy[1][0],HIGH);
  225.       digitalWrite(xy[1][1],HIGH);
  226.       digitalWrite(xy[1][2],HIGH);
  227.       digitalWrite(12,HIGH);
  228.       delay(1);
  229.       digitalWrite(12,LOW);
  230.       digitalWrite(11,LOW);
  231.       digitalWrite(13,HIGH);
  232.       digitalWrite(xy[1][0],LOW);
  233.       digitalWrite(xy[1][1],LOW);
  234.       digitalWrite(xy[1][2],LOW);
  235.       digitalWrite(xy[2][0],HIGH);
  236.       digitalWrite(xy[2][1],HIGH);
  237.       digitalWrite(xy[2][2],HIGH);
  238.       delay(1);
  239.       digitalWrite(13,LOW);
  240.     }
  241.     delay(50);
  242.     for(b = -1; b < 3; b++){
  243.       digitalWrite(xy[0][b],LOW);
  244.       digitalWrite(xy[1][b],LOW);
  245.       digitalWrite(xy[2][b],LOW);
  246.       for(z = 0 ; z < 100; z++){

  247.         digitalWrite(12,LOW);
  248.         digitalWrite(13,LOW);
  249.         digitalWrite(11,HIGH);
  250.         digitalWrite(xy[2][0],HIGH);
  251.         digitalWrite(xy[2][1],HIGH);
  252.         digitalWrite(xy[2][2],HIGH);
  253.         digitalWrite(xy[0][0],LOW);
  254.         digitalWrite(xy[0][1],LOW);
  255.         digitalWrite(xy[0][2],LOW);
  256.         delay(1);
  257.         digitalWrite(xy[2][0],LOW);
  258.         digitalWrite(xy[2][1],LOW);
  259.         digitalWrite(xy[2][2],LOW);
  260.         digitalWrite(11,LOW);
  261.         digitalWrite(13,LOW);
  262.         digitalWrite(xy[1][0],HIGH);
  263.         digitalWrite(xy[1][1],HIGH);
  264.         digitalWrite(xy[1][2],HIGH);
  265.         digitalWrite(12,HIGH);
  266.         delay(1);
  267.         digitalWrite(12,LOW);
  268.         digitalWrite(11,LOW);
  269.         digitalWrite(13,HIGH);
  270.         digitalWrite(xy[1][0],LOW);
  271.         digitalWrite(xy[1][1],LOW);
  272.         digitalWrite(xy[1][2],LOW);
  273.         digitalWrite(xy[0][0],HIGH);
  274.         digitalWrite(xy[0][1],HIGH);
  275.         digitalWrite(xy[0][2],HIGH);
  276.         delay(1);
  277.       }
  278.       for(b = -1; b < 3; b++){
  279.         digitalWrite(xy[0][b],LOW);
  280.         digitalWrite(xy[1][b],LOW);
  281.         digitalWrite(xy[2][b],LOW);
  282.       }

  283.       digitalWrite(13,LOW);
  284.     }


  285.     delay(50);
  286.   }

  287.   for(b = -1; b < 3; b++){
  288.     digitalWrite(xy[0][b],LOW);
  289.     digitalWrite(xy[1][b],LOW);
  290.     digitalWrite(xy[2][b],LOW);
  291.   }


  292.   for(i = 11; i < 14; i++){

  293.     digitalWrite(i,HIGH);


  294.     for(b = 0; b < 3; b++){
  295.       digitalWrite(xy[0][b],HIGH);
  296.       delay(100);
  297.       digitalWrite(xy[0][b],LOW);
  298.     }

  299.     digitalWrite(xy[1][2],HIGH);
  300.     delay(100);
  301.     digitalWrite(xy[1][2],LOW);

  302.     for(b = 2; b > -1; b--){
  303.       digitalWrite(xy[2][b],HIGH);
  304.       delay(100);
  305.       digitalWrite(xy[2][b],LOW);
  306.     }

  307.     digitalWrite(xy[1][0],HIGH);
  308.     delay(100);
  309.     digitalWrite(xy[1][0],LOW);

  310.     for(c = 11; c < 14; c++){
  311.       digitalWrite(c, LOW);
  312.     }
  313.   }  
  314.   for(i = 13; i > 11; i--){

  315.     digitalWrite(i,HIGH);


  316.     for(b = 0; b < 3; b++){
  317.       digitalWrite(xy[0][b],HIGH);
  318.       delay(100);
  319.       digitalWrite(xy[0][b],LOW);
  320.     }

  321.     digitalWrite(xy[1][2],HIGH);
  322.     delay(100);
  323.     digitalWrite(xy[1][2],LOW);

  324.     for(b = 2; b > -1; b--){
  325.       digitalWrite(xy[2][b],HIGH);
  326.       delay(100);
  327.       digitalWrite(xy[2][b],LOW);
  328.     }

  329.     digitalWrite(xy[1][0],HIGH);
  330.     delay(100);
  331.     digitalWrite(xy[1][0],LOW);

  332.     for(c = 11; c < 14; c++){
  333.       digitalWrite(c, LOW);
  334.     }
  335.   }  
  336.   for(i = 11; i < 14; i++){

  337.     digitalWrite(i,HIGH);


  338.     for(b = 0; b < 3; b++){
  339.       digitalWrite(xy[0][b],HIGH);
  340.       delay(100);
  341.       digitalWrite(xy[0][b],LOW);
  342.     }

  343.     digitalWrite(xy[1][2],HIGH);
  344.     delay(100);
  345.     digitalWrite(xy[1][2],LOW);

  346.     for(b = 2; b > -1; b--){
  347.       digitalWrite(xy[2][b],HIGH);
  348.       delay(100);
  349.       digitalWrite(xy[2][b],LOW);
  350.     }

  351.     digitalWrite(xy[1][0],HIGH);
  352.     delay(100);
  353.     digitalWrite(xy[1][0],LOW);

  354.     for(c = 11; c < 14; c++){
  355.       digitalWrite(c, LOW);
  356.     }
  357.   }  



  358.   for(c = 11; c < 14; c++){
  359.     digitalWrite(c, LOW);
  360.   }
  361.   for(b = -1; b < 3; b++){
  362.     digitalWrite(xy[0][b],LOW);
  363.     digitalWrite(xy[1][b],LOW);
  364.     digitalWrite(xy[2][b],LOW);
  365.   }

  366. }





复制代码
本帖最后由 angels1026 于 29-4-2013 07:42 PM 编辑

回复

使用道具 举报

 楼主| 发表于 29-4-2013 10:54 PM | 显示全部楼层
  1. for(c = 0; c < 5; c++){
  2.     for(b = 11; b < 14; b++){
  3.       digitalWrite(b,HIGH);
  4.     }
  5.     digitalWrite(xy[2][2],LOW);
  6.     digitalWrite(xy[0][0],HIGH);
  7.     delay(130);
  8.     digitalWrite(xy[0][0],LOW);
  9.     digitalWrite(xy[0][1],HIGH);
  10.     digitalWrite(xy[1][0],HIGH);
  11.     delay(130);
  12.     digitalWrite(xy[0][1],LOW);
  13.     digitalWrite(xy[1][0],LOW);
  14.     digitalWrite(xy[0][2],HIGH);
  15.     digitalWrite(xy[1][1],HIGH);
  16.     digitalWrite(xy[2][0],HIGH);
  17.     delay(130);
  18.     digitalWrite(xy[0][2],LOW);
  19.     digitalWrite(xy[1][1],LOW);
  20.     digitalWrite(xy[2][0],LOW);
  21.     digitalWrite(xy[1][2],HIGH);
  22.     digitalWrite(xy[2][1],HIGH);
  23.     delay(130);
  24.     digitalWrite(xy[1][2],LOW);
  25.     digitalWrite(xy[2][1],LOW);
  26.     digitalWrite(xy[2][2],HIGH);
  27.     delay(130);
  28.     digitalWrite(xy[2][2],LOW);
  29.   }


  30.   for(b = -1; b < 3; b++){
  31.     digitalWrite(xy[0][b],LOW);
  32.     digitalWrite(xy[1][b],LOW);
  33.     digitalWrite(xy[2][b],LOW);
  34.   }
  35.   for(a = 0; a < 5; a++){
  36.     i = 0;
  37.     for(z = 0 ; z < 100; z++){

  38.       digitalWrite(12,LOW);
  39.       digitalWrite(13,LOW);
  40.       digitalWrite(11,HIGH);
  41.       digitalWrite(xy[0][0],HIGH);
  42.       digitalWrite(xy[0][1],HIGH);
  43.       digitalWrite(xy[0][2],HIGH);
  44.       digitalWrite(xy[2][0],LOW);
  45.       digitalWrite(xy[2][1],LOW);
  46.       digitalWrite(xy[2][2],LOW);
  47.       delay(1);
  48.       digitalWrite(xy[0][0],LOW);
  49.       digitalWrite(xy[0][1],LOW);
  50.       digitalWrite(xy[0][2],LOW);
  51.       digitalWrite(11,LOW);
  52.       digitalWrite(13,LOW);
  53.       digitalWrite(xy[1][0],HIGH);
  54.       digitalWrite(xy[1][1],HIGH);
  55.       digitalWrite(xy[1][2],HIGH);
  56.       digitalWrite(12,HIGH);
  57.       delay(1);
  58.       digitalWrite(12,LOW);
  59.       digitalWrite(11,LOW);
  60.       digitalWrite(13,HIGH);
  61.       digitalWrite(xy[1][0],LOW);
  62.       digitalWrite(xy[1][1],LOW);
  63.       digitalWrite(xy[1][2],LOW);
  64.       digitalWrite(xy[2][0],HIGH);
  65.       digitalWrite(xy[2][1],HIGH);
  66.       digitalWrite(xy[2][2],HIGH);
  67.       delay(1);
  68.       digitalWrite(13,LOW);
  69.     }
  70.     delay(50);
  71.     for(b = -1; b < 3; b++){
  72.       digitalWrite(xy[0][b],LOW);
  73.       digitalWrite(xy[1][b],LOW);
  74.       digitalWrite(xy[2][b],LOW);
  75.       for(z = 0 ; z < 100; z++){

  76.         digitalWrite(12,LOW);
  77.         digitalWrite(13,LOW);
  78.         digitalWrite(11,HIGH);
  79.         digitalWrite(xy[2][0],HIGH);
  80.         digitalWrite(xy[2][1],HIGH);
  81.         digitalWrite(xy[2][2],HIGH);
  82.         digitalWrite(xy[0][0],LOW);
  83.         digitalWrite(xy[0][1],LOW);
  84.         digitalWrite(xy[0][2],LOW);
  85.         delay(1);
  86.         digitalWrite(xy[2][0],LOW);
  87.         digitalWrite(xy[2][1],LOW);
  88.         digitalWrite(xy[2][2],LOW);
  89.         digitalWrite(11,LOW);
  90.         digitalWrite(13,LOW);
  91.         digitalWrite(xy[1][0],HIGH);
  92.         digitalWrite(xy[1][1],HIGH);
  93.         digitalWrite(xy[1][2],HIGH);
  94.         digitalWrite(12,HIGH);
  95.         delay(1);
  96.         digitalWrite(12,LOW);
  97.         digitalWrite(11,LOW);
  98.         digitalWrite(13,HIGH);
  99.         digitalWrite(xy[1][0],LOW);
  100.         digitalWrite(xy[1][1],LOW);
  101.         digitalWrite(xy[1][2],LOW);
  102.         digitalWrite(xy[0][0],HIGH);
  103.         digitalWrite(xy[0][1],HIGH);
  104.         digitalWrite(xy[0][2],HIGH);
  105.         delay(1);
  106.       }
  107.       for(b = -1; b < 3; b++){
  108.         digitalWrite(xy[0][b],LOW);
  109.         digitalWrite(xy[1][b],LOW);
  110.         digitalWrite(xy[2][b],LOW);
  111.       }

  112.       digitalWrite(13,LOW);
  113.     }
复制代码
这个太长了 .. 我在工作的时候想工作又想这个结果想不出好办法来

这个比较好
  1. while(z > 3){
  2.     z++;
  3.     for(i = 0; i < 20; i++){
  4.       for(c = 0; c < 3; c++){
  5.         for(b = 2; b > -1 ; b--){
  6.           int a[] = {
  7.             11,12,13                                      };
  8.           digitalWrite(a[b],HIGH);
  9.           digitalWrite(xy[b][c],HIGH);
  10.           delay(2);
  11.           digitalWrite(a[b],LOW);
  12.           digitalWrite(xy[b][c],LOW);  
  13.         }
  14.       }
  15.     }
  16.     delay(100);
  17.     for(i = 0; i < 20; i++){
  18.       for(c = 0; c < 3; c++){
  19.         for(b = 2; b > -1 ; b--){
  20.           int a[] = {
  21.             13,12,11                                      };
  22.           digitalWrite(a[b],HIGH);
  23.           digitalWrite(xy[b][c],HIGH);
  24.           delay(2);
  25.           digitalWrite(a[b],LOW);
  26.           digitalWrite(xy[b][c],LOW);  
  27.         }
  28.       }
  29.     }
  30.   }
复制代码
不知道有没有更加好的 这个 LED 有点暗





回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 25-4-2024 05:10 PM , Processed in 0.079415 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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