|
本人尝试使用红外遥控控制小车,但启动红外解码,电机就不能动了,屏蔽红外解码,电机正常使用。求指教。是有什么冲突了吗?
- #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毫秒,做一个简单的消抖
- }
复制代码
|
|