挑战- Arduino返回多个数组

Challenge - Arduino returning multiple arrays

本文关键字:数组 返回 Arduino 挑战      更新时间:2023-10-16

好的,在过去的几个小时里,我试图用arduino制作一个锁

-有4个按钮,每个按钮有数字(1,2,3,4)-代码

有8个空格

所以我开始使用将更改密码的功能。(b1…按钮状态)

问题是,是否有比将数组的每个部分转换为int更容易的方法?谢谢你,祝你愉快!

  int passwordCreate() {
    int x1[9];
    int x2[9];
    int x3[9];
    int x4[9];
    int a=9;
    int c=0;
    int space[a];
    while(c < a) {
      if(b1s==HIGH) {
        x1[c]==c+1;
        x2[c]==0;
        x3[c]==0;
        x4[c]==0;
        c++;
      }
      else if(b2s==HIGH) {
        x1[c]==0;
        x2[c]==c+1;
        x3[c]==0;
        x4[c]==0;
        c++;
      }
      else if(b3s==HIGH) {
        x1[c]==0;
        x2[c]==0;
        x3[c]==c+1;
        x4[c]==0;
        c++;
      }
      else if(b4s==HIGH) {
        x1[c]==0;
        x2[c]==0;
        x3[c]==0;
        x4[c]==c+1;
        c++;
      }
    }

更优雅的代码应该是:

int main() {
    int x[4][9];
    //...
    passwordCreate(x);
    //...
    return(0);
}
void passwordCreate(int x[4][9]) {
    int i;
    int a=9;
    int c=0;
    int space[a];
    while(c < a) {
        for (i=0; i<4; i++)x[i][c]= 0;
        if     (b1s==HIGH) x[0][c]= ++c;
        else if(b2s==HIGH) x[1][c]= ++c;
        else if(b3s==HIGH) x[2][c]= ++c;
        else if(b4s==HIGH) x[3][c]= ++c;
    }
}

(并且使用=来赋值,而不是==)

(编辑:演示如何调用和返回数组)

注意:如果所有的bIs都是低的,则存在一个无限循环。

注意:任何时候只有一个bIs可能是高的(任何下一个bIs是高的将被忽略)