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
行为。
有两种选择(简化伪代码):
对于每个引脚分别,每个循环周期你读取引脚值,如果它从低到高转换,一个标志设置并保存当前 millis
。当它再次变低时,您测量当前 millis
并减去之前的读数。这会给你 a
或 b
.
与 1
相同,但不是检查每个 loop
周期,您可以 attach interrupts 从低到高和从高到低的转换。
我是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
行为。
有两种选择(简化伪代码):
对于每个引脚分别,每个循环周期你读取引脚值,如果它从低到高转换,一个标志设置并保存当前
millis
。当它再次变低时,您测量当前millis
并减去之前的读数。这会给你a
或b
.与
1
相同,但不是检查每个loop
周期,您可以 attach interrupts 从低到高和从高到低的转换。