Cancan.. 发表于 2016-10-26 21:32:03

求教简单问题,请高手们编一个给我学习一下

求教简单问题,请高手们编一个给我学习一下

我想编的输出4端口,控制4个led二极管灯,输入2个按钮。
我想用2个按键加减数值,当数值等于1启动第一组组合,数值等于2启动第二组组合,一直几十种设定好组合

1-4个二极管灯,几十种组合
就是按下一组,4个端口的led就按照我编好顺序端口亮
按上一组,就照顺序回退。
http://8365329.s21i-8.faiusr.com/2/ABUIABACGAAgw93CwAUo8Oqm2gEwvAU4oQU!450x450.jpg

275891381 发表于 2016-10-27 09:04:29

就当四个灯是个二进制数不就可以了

Cancan.. 发表于 2016-11-14 02:19:13

275891381 发表于 2016-10-27 09:04
就当四个灯是个二进制数不就可以了

:(听不懂,我是arduino新手,,,能不能写个给我数组学学啊?

275891381 发表于 2016-11-14 12:39:51

本帖最后由 275891381 于 2016-11-14 12:42 编辑

#define led_num 4
#define xianshi_moshi 6

//   B0000         0 0 0 0,引脚对应
int led={   7,6,5,4};

int led_dianliang_fangshi=0;//低电平点亮==1 高电平点亮
char moshi= { //1为点亮
B00000000, // = 0
B00000001, // = 1
B00000011, // = 2
B00000111, // = 3
B00001111, // = 4
B00001010, // = 5
};
void led_out(char haha)
{
      for(int i=0;i<led_num;i++)
      {
            if(led_dianliang_fangshi==0)
               digitalWrite(led,~(unsigned char)haha%2);
            else
               digitalWrite(led,(unsigned char)haha%2);
            haha=haha>>1;
    }
}
void setup() {
   for(int i=0;i<led_num;i++)
   {
      pinMode(led, OUTPUT);
      digitalWrite(led, ~led_dianliang_fangshi);
   }
}

void loop() {
       for(int i=0;i<xianshi_moshi;i++)
      {
          led_out(moshi);
          delay(1000);
      }      
}

或者显示模式定义成二维数组,可以参考数码管例子,效果一样
页: [1]
查看完整版本: 求教简单问题,请高手们编一个给我学习一下