roboforum.ru

Технический форум по робототехнике.
Текущее время: 20 апр 2025, 23:19

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Motor Shield и ИК бампер
СообщениеДобавлено: 06 ноя 2011, 15:44 
Не в сети

Зарегистрирован: 30 сен 2011, 20:33
Сообщения: 127
Откуда: Мурманск
ФИО: Никита
Сделал ИК бампер на основе 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;
  }
   


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Motor Shield и ИК бампер
СообщениеДобавлено: 06 ноя 2011, 16:55 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Motor Shield и ИК бампер
СообщениеДобавлено: 06 ноя 2011, 17:18 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Motor Shield и ИК бампер
СообщениеДобавлено: 06 ноя 2011, 23:17 
Не в сети

Зарегистрирован: 30 сен 2011, 20:33
Сообщения: 127
Откуда: Мурманск
ФИО: Никита
Так. По моему я разобрался, возможно проблема была в плохом соединении моторов, сейчас перепаял все работает как надо. Вот только вопрос, есть аналог команды tone ? Или только если аппаратно генерировать частоту?

Добавлено спустя 1 час 37 минут 34 секунды:
А Ик-диоды обязательно через транзистор вешать? Или можно просто через резистор напрямую к ноге?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Motor Shield и ИК бампер
СообщениеДобавлено: 07 ноя 2011, 02:14 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Motor Shield и ИК бампер
СообщениеДобавлено: 07 ноя 2011, 07:49 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Motor Shield и ИК бампер
СообщениеДобавлено: 07 ноя 2011, 09:22 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Motor Shield и ИК бампер
СообщениеДобавлено: 07 ноя 2011, 15:45 
Не в сети

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO