Arduino 处理多个引脚

Arduino dealing with multiple pins

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

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);
..........
......
}

我做错了什么吗?

pulseIn 函数等待引脚变高,然后等待引脚变低,然后才 returns 程序继续执行下一行。

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

有两种选择(简化伪代码):

  1. 对于每个引脚分别,每个循环周期你读取引脚值,如果它从低到高转换,一个标志设置并保存当前 millis。当它再次变低时,您测量当前 millis 并减去之前的读数。这会给你 ab.

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