Совместимость библиотеки 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.