求助,红外和电机冲突
本人尝试使用红外遥控控制小车,但启动红外解码,电机就不能动了,屏蔽红外解码,电机正常使用。求指教。是有什么冲突了吗?
#include <IRremote.h>// 使用IRRemote函数库
#include <AFMotor.h>
AF_DCMotor lrmotor(1, MOTOR12_64KHZ); //create motor #1, 2KHz pwm
AF_DCMotor gbmotor(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm
const int irReceiverPin = 3; // 红外接收器的 OUTPUT 引脚接在 PIN2 接口 定义irReceiverPin变量为PIN2接口
IRrecv irrecv(irReceiverPin); // 设置irReceiverPin定义的端口为红外信号接收端口
decode_results results; // 定义results变量为红外结果存放位置
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("HM car GO!");
irrecv.enableIRIn(); // 启动红外解码
lrmotor.setSpeed(100);
gbmotor.setSpeed(200); // set the speed to 200/255
}
void loop() {
if (irrecv.decode(&results)) { // 解码成功,把数据放入results变量中
switch (results.value)
{
case 0xff30cf:
{
Serial.print("FORWARD ");
gbmotor.run(FORWARD);
break;
}
case 0xff18e7:
{
Serial.println("BACKWARD");
gbmotor.run(BACKWARD);
break;
}
case 0x000000:
{
Serial.println("Turn Left");
lrmotor.run(FORWARD);
break;
}
case 0x111111:
{
Serial.println("Turn Right");
lrmotor.run(BACKWARD);
break;
}
}
irrecv.resume(); // 继续等待接收下一组信号
}
delay(10); //延时600毫秒,做一个简单的消抖
}
是否那个delay搞坏了.键盘周期600ms,驱动周期2Khz,64Khz是否这两个有冲突. 林定祥 发表于 2013-7-11 17:01 static/image/common/back.gif
是否那个delay搞坏了.键盘周期600ms,驱动周期2Khz,64Khz是否这两个有冲突.
不是哦,问题是有这句irrecv.enableIRIn(); // 启动红外解码
电机就没有反应能接受红外信号。没有这句电机就能动的。 等高手指点 :L:L:L:L:L:L:L没有人知道吗?????? 我也遇到这个问题,不知道怎么回事
而且舵机的控制也是一样的问题
不知道为什么 先查一下电机的引脚是不是与红外的引脚在同一个引脚上。。。 还有检查一下是否有外部供电。最好有。 红外发射接口默认要用第三个PIN,
* An IR LED must be connected to the output PWM pin 3.
页:
[1]