Управление двигателем постоянного тока
- Войдите на сайт для отправки комментариев
Пнд, 05/09/2016 - 15:40
Здравствуйте. Хочу протестировать процесс управление двигателем постоянного тока через ИК датчик. Но пока что у меня ничего не получается.
Для подключения двигателя к ардуине использую плату Мотор Шилд. Шилд и датчик проверял отдельно на тестовых скетчах - оба работают.
Соединил всё как показано на рисунке. Написал вот такой скетч. Подскажите, пожалуйста в чём ошибка. Спасибо.
#include "IRremote.h"
#include <AFMotor.h>
IRrecv irrecv(2); // указываем вывод, к которому подключен приемник
decode_results results;
// создаем объект motor №2, ШИМ 64 кГц
AF_DCMotor motor2(2, MOTOR12_64KHZ);
void setup() {
irrecv.enableIRIn(); // запускаем прием
Serial.begin(9600); // устанавливаем скорость передачи по посл. порту 9600 бод
motor2.setSpeed(200); // устанавливаем скорость вращения 200/255
}
void loop() {
if ( irrecv.decode( &results )) { // если данные пришли
switch ( results.value ) {
case 0xFD00FF:
motor2.run(FORWARD); // вращение вперед
break;
case 0xFD807F:
motor2.run(BACKWARD); // в другую сторону
break;
}
irrecv.resume(); // принимаем следующую команду
}
}
1. http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
2. Давайте нормальную схему. На этом рисунке ничего не показано. В какое место шилда Вы воткнули провода датчика, например?
Так понятнее? Датчик подключал ко второму выводу (как указано в скетче). Всё питается от 5 вольт подаваемых через юсб кабель на ардуино. Я также пробовал зажигать и гасить светодиод через датчик с помощью команд от пульта- у меня всё работало.
а как сперва задать скорость а потом продолжить движение?
Можно поконкретнее. Что именно на ваш взгляд неправлиьно в коде? Насколько мне известно, в операторе void setup задаются все параметры собранного устройства (скорость, режим входа или выхода порта и т.д.) а в void loop задаётся работа этого устройтва.
вкоде я так понял задаем скорость при програмирование и все. а сделать скорость по кнопкам 1,2,3,4,5 . например 1=51 , 2=102 , 3=153 , 4=204 , 5=255, тобиш сперва выбрали скорость а потом поехали.
и серву бы добавить в этот кот.
и на чем дальность лучше на ик или блютуз?
Мне пока не нужно задавать скорость по кнопкам. Это сложнее. Для начала хочу чтоб мотор элементарно мог крутиться вперёд/назад в зависимости от нажатой клавиши
а с сервой не поможеш?
Серву неплохо бы, но это потом.
Думаю на блютус бальность лучше, плюс может ловить сигнал даже за препядствием. Но нужен модуль и телефон на андроиде. Пока поэкспериментирую с ИК, потом наверное поставлю радиодатчик
вот кстати код тебе должен подойти
с блютузом я пробывал. обрывов в связи много. не очень понравилось.
С сервой сам не работал ещё. Но думаю что надо делать примерно как здесь http://edurobots.ru/2014/04/arduino-servoprivod/