Arduino处理多个引脚

时间:2015-12-12 18:07:47

标签: arduino arduino-uno arduino-ide

我是arduino的新手,这是从多个引脚输入数据并写入其他引脚的问题。输入来自发送器的接收器,它将数据写入KK板引脚。代码很简单但是当从一个引脚接收输入时,另一个引脚被禁用而按钮不工作。这是代码:

Servo ale, ele;
Void setup()
{
ale.attach(11);
ele.attach(12);
........
.....
}
Void loop()
{
a = pulseIn(6, HIGH, 20000);
b = pulseIn(7, HIGH, 20000);
ale.writeMicroseconds(a);
ele.writeMicroseconds(b);
..........
......
}

有什么东西我做错了吗?

1 个答案:

答案 0 :(得分:2)

pulseIn函数等待引脚变为高电平,而不是等待引脚变为低电平,然后才返回并继续执行下一行的程序。

如果您希望能够同时接收来自多个引脚的输入,则需要在pulseIn函数的几个周期内模拟loop行为。

有两个选项(简化的伪代码):

  1. 对于每个引脚分别,每个循环周期读取引脚值,如果它从低电平转换为高电平,则标记为一组,并保存当前的millis。当它再次变低时,您测量当前millis并减去先前的读数。这将为您提供ab

  2. 1相同,但不是检查每个loop周期,而是attach interrupts从低到高和从高到低的转换。