Приобрел Adafruit motor shield.
Примеры работы с ним взял с http://zelectro.cc/Adafruit_motor_shield все примеры работают (шилд целый, рабочий). Решил слелать машинку на ИК управлении.
Пример взял с https://arduino.ru/forum/proekty/robot-upravlyaemyi-s-lyubogo-ik-pulta
ближе к концу есть готовый скетч для моего шилда. Автор скетча упоминал про глюк возникший при перемешении выходовмоторов связаный с глюком библиотек. тем не менее у него работает а у меня скетч компилируется но робот ездить отказывается.
Плюнул! отработал управление светодиодами с ИК пульта. Получается! Светодиоды моргают!
Скомбинировал скетчи. Компилируются, грузятся, но движки не шевелятся!
Я его утюгом (тестером) пины отвечающие за движение не реагируют только на 4 пине 4.5вольт.
В чем глюк понять не могу!
выкладываю два варианта скетча
05 | #define RECV_PIN 10 // IR приемник |
08 | #define KEY1 0x20DF02FD |
09 | #define KEY2 0x20DF827D |
10 | #define KEY3 0x20DF8877 |
11 | #define KEY4 0x20DF609F |
12 | #define KEY5 0x20DFE01F |
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);} |
23 | IRrecv irrecv(RECV_PIN); |
25 | decode_results results; |
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;} |
второй код (то же самое чуть чуть исправленное)
04 | #define RECV_PIN 10 // IR приемник |
07 | #define KEY1 0x20DF02FD |
08 | #define KEY2 0x20DF827D |
09 | #define KEY3 0x20DF8877 |
10 | #define KEY4 0x20DF609F |
11 | #define KEY5 0x20DFE01F |
16 | IRrecv irrecv(RECV_PIN); |
18 | decode_results results; |
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);} |
Такая же беда! Только у меня код маленько другой. На 7 пине 4,5в остальные тоже не реагируют. С драйвером на L298 все работало отменно. Кажется что косяк в конфликте библиотек.