Новичек! Проблема с Adafruit motor shield

uuuux
Offline
Зарегистрирован: 27.01.2015

Приобрел Adafruit motor shield.

Примеры работы с ним взял с http://zelectro.cc/Adafruit_motor_shield все примеры работают (шилд целый, рабочий). Решил слелать машинку на ИК управлении.

Пример взял с https://arduino.ru/forum/proekty/robot-upravlyaemyi-s-lyubogo-ik-pulta

ближе к концу есть готовый скетч для моего шилда. Автор скетча упоминал про глюк возникший при перемешении выходовмоторов связаный с глюком библиотек. тем не менее у него работает а у меня скетч компилируется но робот ездить отказывается.

Плюнул! отработал управление светодиодами с ИК пульта. Получается! Светодиоды моргают!

Скомбинировал скетчи. Компилируются, грузятся, но движки не шевелятся!

Я его утюгом (тестером) пины отвечающие за движение не реагируют только на 4 пине 4.5вольт.

В чем глюк понять не могу!

выкладываю два варианта скетча

02#include <AFMotor.h>
03#include <CyberLib.h>
04#include <avr/wdt.h>
05#define RECV_PIN 10 // IR приемник
06 
07 
08#define KEY1 0x20DF02FD
09#define KEY2 0x20DF827D
10#define KEY3 0x20DF8877
11#define KEY4 0x20DF609F
12#define KEY5 0x20DFE01F
13 
14AF_DCMotor motor1(1);
15AF_DCMotor motor2(2);
16 
17    #define robot_go{motor1.run(FORWARD);motor2.run(FORWARD);}
18    #define robot_back{motor1.run(BACKWARD);motor2.run(BACKWARD);}
19    #define robot_left{motor1.run(FORWARD);motor2.run(BACKWARD);}
20    #define robot_right{motor1.run(BACKWARD);motor2.run(FORWARD);}
21    #define robot_stop{motor1.run(RELEASE);motor2.run(RELEASE);}
22     
23IRrecv irrecv(RECV_PIN);
24 
25decode_results results;
26 
27void setup()
28{
29  irrecv.enableIRIn();
30  irrecv.blink13(true);  // включить мигание светодиода при приеме
31  motor1.setSpeed(255);
32  motor1.run(RELEASE);
33  motor2.setSpeed(255);
34  motor2.run(RELEASE);
35}
36int i;
37void loop() {
38  if (irrecv.decode(&results)) {
39    if (results.value == KEY1) {robot_go}
40    else if (results.value == KEY2) {robot_back;}
41    else if (results.value == KEY3) {robot_left;}
42    else if (results.value == KEY4) {robot_right;}
43    else if (results.value == KEY5) {robot_stop;}
44     
45      irrecv.resume(); 
46  }
47}

второй код (то же самое чуть чуть исправленное)

02#include <AFMotor.h>
03 
04#define RECV_PIN 10 // IR приемник
05 
06 
07#define KEY1 0x20DF02FD
08#define KEY2 0x20DF827D
09#define KEY3 0x20DF8877
10#define KEY4 0x20DF609F
11#define KEY5 0x20DFE01F
12 
13AF_DCMotor motor1(1);
14AF_DCMotor motor2(2);
15 
16IRrecv irrecv(RECV_PIN);
17 
18decode_results results;
19 
20void setup()
21{
22  irrecv.enableIRIn();
23  irrecv.blink13(true);  // включить мигание светодиода при приеме
24  motor1.setSpeed(255);
25  motor1.run(RELEASE);
26  motor2.setSpeed(255);
27  motor2.run(RELEASE);
28}
29int i;
30void loop() {
31  if (irrecv.decode(&results)) {
32    if (results.value == KEY1) {motor1.run(FORWARD); motor2.run(FORWARD); motor1.setSpeed(255); motor2.setSpeed(255);}
33    else if (results.value == KEY2) {motor1.run(RELEASE); motor2.run(RELEASE);}
34    else if (results.value == KEY3) {motor1.run(BACKWARD); motor2.run(BACKWARD); motor1.setSpeed(255); motor2.setSpeed(255);}
35    else if (results.value == KEY4) {motor1.run(FORWARD);motor1.run(BACKWARD); motor1.setSpeed(155); motor2.setSpeed(155);}
36    else if (results.value == KEY5) {motor1.run(BACKWARD);motor1.run(FORWARD); motor1.setSpeed(155); motor2.setSpeed(155);}
37     
38      irrecv.resume(); 
39  }
40}

 

tesak47
Offline
Зарегистрирован: 22.01.2015

Такая же беда! Только у меня код маленько другой. На 7 пине 4,5в остальные тоже не реагируют. С драйвером на L298 все работало отменно. Кажется что косяк в конфликте библиотек.