Совместимость библиотеки AFMotor и IRremote
- Войдите на сайт для отправки комментариев
Ср, 22/01/2014 - 17:28
Есть плата мотор шилд
и seeduino

также я прицепил к ним 2 мотора и иф датчик
в библиотеках была проблема - они использовали один таймер
в этой теме был представлен вариант решения, но он не особо помог:
http://www.arduino.ru/forum/programmirovanie/motor-shield-v3-podklyuchenie-tsop
При использование кода
#include <IRremote.h>
#include <AFMotor.h>
AF_DCMotor motor(3 , MOTOR12_64KHZ);
AF_DCMotor motor2(4 , MOTOR12_64KHZ);
int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(8, OUTPUT);
motor.setSpeed(200);
motor2.setSpeed(200);
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if (results.value==0xEBB27AA4) {
motor.run(FORWARD);
motor2.run(FORWARD);
Serial.println(111);
}
if (results.value==0x429CB030) {
motor.run(BACKWARD);
motor2.run(BACKWARD);
Serial.println(222);
}
irrecv.resume();
}
}
моторы дрыгаются если датчик принал сигнал(любой),
если же использоваь такой код -
#include <IRremote.h>
#include <AFMotor.h>
AF_DCMotor motor(3 , MOTOR12_64KHZ);
AF_DCMotor motor2(4 , MOTOR12_64KHZ);
int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
motor.setSpeed(200);
motor2.setSpeed(200);
}
void loop() {
if (1 == 1) {
motor.run(FORWARD);
motor2.run(FORWARD);
Serial.println(111);
}
}
то способность седуины считать становится под вопросом(цикл не идет)
если убрать irrecv.enableIRIn(); то всё норм.
Я в полном недоумении....
может быть дело в аппаратной части ???
Извиняюсь за картинки, лень было обрезать
на форуме работает поиск
Да зачем ему поиск, он свою же тему и найдет, упертый...
с этим я справился..... моторы заработали..... но несовсем так как надо......
Надо читать описание своего шилда. В котором есть схема, в которой видно какие выводы дуины использует шилд.
Там на шилде 9 и 10 пины разведены в уголке, с gnd и +5v.