我是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;
}
我非常感谢帮助,我知道我的工作中有很多错误。
答案 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有所了解。