如何在Array(Arduino)中存储输入

时间:2014-07-20 09:27:55

标签: arrays function arduino

我是Arduino的新手,我想使用数组中的输入来使用乘法函数,但我不知道如何使用。我想要制作另一个阵列而不是dip1& dip2用于存储阵列中的位输入。这样对吗? 这是我的代码:

int dip1[] = {A0, A1, A2, A3};
int dip2[] = {A4, A5, 2, 3};
int leds[] = {4,5,6,7,8,9,10,11,12};

void setup(){

for (int i=0; i <4; i++){
   pinMode(dip1[i], INPUT);
   digitalWrite(dip1[i], HIGH);
 }

for (int i=0; i <4; i++){
  pinMode(dip2[i], INPUT);
  digitalWrite(dip2[i], HIGH);
 }

for (int i=0; i <8; i++){
  pinMode(leds[i], OUTPUT);
 }
 } 


void loop () {


for (int i =0;i<8;i++)
{
     if (bitRead(multiply(), i)==1){
        digitalWrite(leds[i], HIGH); 
     }
    else{
       digitalWrite(leds[i], LOW); 
     }

     }

}

int multiply () {

    int a = digitalRead(dip1[0,1,2,3]);
    int b = digitalRead(dip2[0,1,2,3]);
    int prod = 0;
    int mpartial = b;

      while (mpartial != 0 ) {
          prod = prod + a;
          mpartial = mpartial - 1;     
    }

    return prod;
    }

我非常感谢帮助,我知道我的工作中有很多错误。

2 个答案:

答案 0 :(得分:0)

我没有关注你需要做什么,但你对这条线的期望是错误的:

int a = digitalRead(dip1[0,1,2,3]);

digitalRead()只接受一个参数。如果由于某种原因,您想要对读取多个引脚的结果执行artihmentic操作,则必须在循环中执行(与初始化引脚时一样)。

int a;
for (int i=0; i <4; i++){
   a += digitalRead(dip1[i]);
 }

答案 1 :(得分:0)

您不需要在设置功能中将模拟引脚声明为输出。它对arduino有所了解。