我是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);
..........
......
}
有什么东西我做错了吗?
答案 0 :(得分:2)
pulseIn
函数等待引脚变为高电平,而不是等待引脚变为低电平,然后才返回并继续执行下一行的程序。
如果您希望能够同时接收来自多个引脚的输入,则需要在pulseIn
函数的几个周期内模拟loop
行为。
有两个选项(简化的伪代码):
对于每个引脚分别,每个循环周期读取引脚值,如果它从低电平转换为高电平,则标记为一组,并保存当前的millis
。当它再次变低时,您测量当前millis
并减去先前的读数。这将为您提供a
或b
。
与1
相同,但不是检查每个loop
周期,而是attach interrupts从低到高和从高到低的转换。