roboforum.ru

Технический форум по робототехнике.


Motor Shield и ИК бампер

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Motor Shield и ИК бампер

Сообщение KitaPro » 06 ноя 2011, 15:44

Сделал ИК бампер на основе Tsop2136. Обвязку сделал по даташиту. В качестве ик-светодиодов использовал TSAL5100. Подключил их через 130Ом 9му цифровому пину. Есть у меня Freeduino 2009(аналог Arduino Duemilanove) и Motor Shield. Собрал отдельно бампер, все работает. В качестве проверки использовал светодиоды. Решил еще подключить мотор. Для генерации импульсов используется функция tone. Она блокирует использование ШИМ на 3 и 11 пине, следовательно M1 и M2 не работают(используют 3 и 11 пины для активации и регулирования скорости моторов 1 и 2). Остаются M3 и M4. Подключаю мотор к M3, и бампер к соответствующим пинам уже на шилде. Питание на мотры от зарядки телефона, 6.8В где-то получается. И тогда бампер ведет себя не правильно, он выполняет то, что должно было быть при срабатывании бампера, и на доли секунд пытается выполнить основной код. Если отключить питание от моторов и перезагрузить шилд(иногда даже не надо), бампер работает нормально. В чем может быть проблема?

Код: Выделить всёРазвернуть
#include <AFMotor.h>
volatile int state = LOW;
AF_DCMotor motor(3); //мотор подключен к M3
void setup ()
{
pinMode(13,OUTPUT);//сигнальный светодиод(должен гореть только при срабатывании бампера)
pinMode(9,OUTPUT);//выход частоты
pinMode(2,INPUT);//вход сигнала TSOPа
pinMode(11, OUTPUT);//сигнальный светодиод(должен гаснуть только при срабатывании бампера)
attachInterrupt(0, blink, CHANGE);
motor.run(RELEASE);//включаем мотор
motor.setSpeed(100);
}

void loop ()
{
tone(9,38000); //генерируем пачки 36КГц
motor.run(FORWARD);//движемся вперед
motor.setSpeed(100);
digitalWrite(13, LOW);
digitalWrite(11, HIGH);


if(state==HIGH){
digitalWrite(13,HIGH);
digitalWrite(11, LOW);
motor.run(RELEASE);//остановка двигателя
delay(1000);
}
}
void blink(){
state = !state;
  }
   
KitaPro
 
Сообщения: 127
Зарегистрирован: 30 сен 2011, 20:33
Откуда: Мурманск
ФИО: Никита

Re: Motor Shield и ИК бампер

Сообщение HarryStar » 06 ноя 2011, 16:55

В просадке напряжения. Померяйте мультиметром, что у вас получается при включении моторов.
Аватара пользователя
HarryStar
 
Сообщения: 990
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Motor Shield и ИК бампер

Сообщение KitaPro » 06 ноя 2011, 17:18

HarryStar, а где мерять?
Сейчас замерил питание мотор шилда, там 6,6В. При включении моторов там 6,2В.
Знаете как она сейчас работает по той программе которая выше. Если мотор не подключен, то при обнаружении "препятствия" гаснет светодиод на 11й ножке, и загорается на 1 секунду светодиод на 13й ножке(если убрать препятствие). Когда подключаю мотор, то происходит инвертирование программы) Светодиод 11 гаснет, и загорается 13й, мотор не крутится. Если поднести препятствие и держать секунду, то загорается 11й, гаснет 13й светодиод и начинает крутится мотор. Хотя по идее должно быть же наоборот.
KitaPro
 
Сообщения: 127
Зарегистрирован: 30 сен 2011, 20:33
Откуда: Мурманск
ФИО: Никита

Re: Motor Shield и ИК бампер

Сообщение KitaPro » 06 ноя 2011, 23:17

Так. По моему я разобрался, возможно проблема была в плохом соединении моторов, сейчас перепаял все работает как надо. Вот только вопрос, есть аналог команды tone ? Или только если аппаратно генерировать частоту?

Добавлено спустя 1 час 37 минут 34 секунды:
А Ик-диоды обязательно через транзистор вешать? Или можно просто через резистор напрямую к ноге?
KitaPro
 
Сообщения: 127
Зарегистрирован: 30 сен 2011, 20:33
Откуда: Мурманск
ФИО: Никита

Re: Motor Shield и ИК бампер

Сообщение HarryStar » 07 ноя 2011, 02:14

Если тока в 40-60 мА достаточно, то можно просто к ноге через резистор. От тока зависит мощность излучения и соотв. дальность. Для бампера - думаю транзистор не нужен.
Аватара пользователя
HarryStar
 
Сообщения: 990
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Motor Shield и ИК бампер

Сообщение KitaPro » 07 ноя 2011, 07:49

собирал на макетке, мне хватало вообще 20мА, и то светодиоды были далеко друг от друга и тсопа..
KitaPro
 
Сообщения: 127
Зарегистрирован: 30 сен 2011, 20:33
Откуда: Мурманск
ФИО: Никита

Re: Motor Shield и ИК бампер

Сообщение HarryStar » 07 ноя 2011, 09:22

Ну так посмотрите по даташиту макс ток на ножку -обычно до 40-60 мА они без проблем выдают (тини85, мега16, 32 - точно, остальные не помню), так что смело убирайте транзистор.
Аватара пользователя
HarryStar
 
Сообщения: 990
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Motor Shield и ИК бампер

Сообщение KitaPro » 07 ноя 2011, 15:45

Спасибо, попробую потом сделать печатную. Почитаю только как
KitaPro
 
Сообщения: 127
Зарегистрирован: 30 сен 2011, 20:33
Откуда: Мурманск
ФИО: Никита


Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Mail.ru counter