极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10719|回复: 2

arduino驱动数码管软件问题

[复制链接]
发表于 2013-7-9 14:30:54 | 显示全部楼层 |阅读模式
本帖最后由 Tür 于 2013-7-9 14:30 编辑

自已编了一个程序,想让数码管从0显示到9
但是数码管根本没显示0~9,而是乱七八糟的显示,除了0,其他都不对,都完全不是数。检查了一下,接线没问题,和这个帖子里的接线一样。觉得是程序有问题。能否帮我找出问题呢?谢谢!

程序如下
  1. void setup()
  2. {  

  3.    pinMode(13,OUTPUT);        

  4.    for(int n=2;n<=9;n++)
  5.    {
  6.    pinMode(n,OUTPUT);
  7.    }
  8. }


  9. void loop()
  10. {
  11.   digitalWrite(13,1);
  12.   
  13.   int n0[8]={0,0,0,0,0,0,1,1};
  14.   int n1[8]={1,0,0,1,1,1,1,1};
  15.   int n2[8]={0,0,1,0,0,1,0,1};
  16.   int n3[8]={0,0,0,0,1,1,0,1};
  17.   int n4[8]={1,0,0,1,1,0,0,1};
  18.   int n5[8]={0,1,0,0,1,0,0,1};
  19.   int n6[8]={0,1,0,0,0,0,0,1};
  20.   int n7[8]={0,0,0,1,1,1,1,1};
  21.   int n8[8]={0,0,0,0,0,0,0,1};
  22.   int n9[8]={0,0,0,0,1,0,0,1};
  23.   int z=0;
  24.   int* nN[10]={n0,n1,n2,n3,n4,n5,n6,n7,n8,n9};
  25.   for(int y=0;y<=9;y++)
  26.   {
  27.     for(int x=2;x<=9;x++)
  28.     {
  29.       digitalWrite(x,nN[y][z]);
  30.       z++;
  31.       if(z>=9)
  32.       {
  33.         z=0;
  34.       }
  35.     }
  36.     delay(1000);
  37.     if(y>=9)
  38.     {
  39.       y=0;
  40.     }
  41.   }
  42. }
复制代码
回复

使用道具 举报

发表于 2013-7-9 15:59:54 | 显示全部楼层
本帖最后由 weiview 于 2013-7-9 16:06 编辑
  1. void setup()
  2. {  

  3.    pinMode(13,OUTPUT);        

  4.    for(int n=2;n<=9;n++)
  5.    {
  6.    pinMode(n,OUTPUT);
  7.    }
  8. }


  9. void loop()
  10. {
  11.   digitalWrite(13,1);
  12.   
  13.   int n0[8]={0,0,0,0,0,0,1,1};
  14.   int n1[8]={1,0,0,1,1,1,1,1};
  15.   int n2[8]={0,0,1,0,0,1,0,1};
  16.   int n3[8]={0,0,0,0,1,1,0,1};
  17.   int n4[8]={1,0,0,1,1,0,0,1};
  18.   int n5[8]={0,1,0,0,1,0,0,1};
  19.   int n6[8]={0,1,0,0,0,0,0,1};
  20.   int n7[8]={0,0,0,1,1,1,1,1};
  21.   int n8[8]={0,0,0,0,0,0,0,1};
  22.   int n9[8]={0,0,0,0,1,0,0,1};
  23.   int z=0;
  24.   int* nN[10]={n0,n1,n2,n3,n4,n5,n6,n7,n8,n9};
  25.   for(int y=0;y<=9;y++)
  26.   {
  27.     for(int x=2;x<=9;x++)
  28.     {
  29.       digitalWrite(x,nN[y][z]);
  30.       z++;
  31.       if (z>7)  //问题在这里
  32.       {
  33.         z=0;
  34.       }
  35.     }
  36.     delay(1000);
  37.     if(y>=9)
  38.     {
  39.       y=0;
  40.     }
  41.   }
  42. }
复制代码
      digitalWrite(x,nN[y][z]);
      z++;
      if (z>7)   //问题在这里
      {
        z=0;
      }
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-12 18:01:15 | 显示全部楼层
weiview 发表于 2013-7-9 15:59
digitalWrite(x,nN[y][z]);
      z++;
      if (z>7)   //问题在这里

哦!
真是太谢谢了
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 21:58 , Processed in 0.038174 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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