Проблема с поботом на uno
- Войдите на сайт для отправки комментариев
Доброго времени суток. Собрал 2х колесного робота на arduino uno. 4ик датчика препятствий и 2концевых выключателя на бампере подключены к аналоговым входам с А0 по А6, соотаетственно обозначит в коде их как цифровые с 14 по 19 и сконфигурировал их как +5, датчики при контакте дают на пины gnd.
Проблема заключается в том, что датчики с левой стороны с А0 по А2 срабатывают мгновенно при столкновении робота, а вот с правой стороны с А3 по А5 работают с очень большой затормозкой, т.е. робот врезается в стену и только через 3 секунды начинает поворачивать.
Замеряв мультиметром было выяснено что при срабатывании датчика напряжение на пине с +5 до 0 падает очень медленно, секунды 3, в чем и заключается проблема, а оно должно быть мгновенным.
Если Вы хотите похвастаться результатом, для этого есть раздел "Проекты", а если у Вас есть вопрос - их можно задавать в других разделах (hint: вопрос должен заканчиваться знаком "?").
Но в любом случае, в каком разделе (и с какой целью) Вы бы ни размещали тему, следует снабдить ее скетчем и схемой подключения, т.к. без этого предметный разговор невозможен.
Вот собственно скетч. Хвастаться чем либо у меня нет времени. Я подчеркнул свою поблему в вопросе, на половине аналоговых входах напряжение при включении датчика падает мгновенно, а на второй половине входах падает очень медленно, я считаю, что проблема скорее всего не в скетче, темболее все датчики подключены одинаково.
Elmirus, где вы взяли этот ужасный код? Вы явно в нем ничего не понимаете, просто тупо скопировали из инета. Почему я так думаю? - да потому что если б вы хоть чуть понимали - заметили бы, что часть кода повторяется в скетче дважды - с 76 строки и 144.
Код этот работать не будет, его даже исправлять нет смысла - нужно просто выкинуть и все. Как может робот обьезжать препятския, если в функциях реакции на датчики встроены задержки до секунды длиной?!
Ну и еще куча мелких ляпов, опять же показывающих, что вы ничего не понимаете в программировании.
- зачем к IF в строках 77 и 90 приделан пустой ELSE?
- почему вы сначала читаете из сериала (строка 64) и только потом проверяете(строка 140), если ли там что-нибудь? :)
Но главное - все функции движения надо переписать без задержек.
-
Так и есть я скопировал в интернете. 2 раза повторяется потому как 2й раз этиже функции работают при подключенном блютузе. С функциями до конца не разобрался и потому такие повторы. Без пустого else чегото при однократном нажатии моторы крутятся безконечно. Только сделал пустой else сразу начало нормально работать. Непойму чего так, ведь ик датчики работают по тому же принципу и с ними все нормально.
Простите, но процитированное - откровенный бред.
По скетчу - советую проблемы робота пока оставить и начать с изучения основ. Прочитайте раздел "Программирование" на этом сайте. Помигайте диодом. Потом прочитайте материал "Блинк бех делей" и попробуйте переписать свой скетч без задержек.
я вам написал
прочитайте материал "Блинк бех делей"
Я попробовал сделать так, но не могу понять почему при каждом срабатывании время отъезда назад разное? Первое срабатывание павильно по заданному времени, а вот последующие длинее. Походу, я безнадежен(
Доброго времени суток. Вот сделал все без deley, еле еле немного переварил этот millis. Все работает отлично! Однако аппаратная проблема осталась без изменения. Прошу вас о помощи, почему так случается, что левый бампер для сработки блока кода в if надо зажимать мгновенно, а вот правый бампер надо жать секунды 3 и только потом робот начнет реагировать?
Код прилагаю:
Помогите! Аналоговые входыс А0 по А4 работают отлично но А5 и А6 тормозят! Что делать?
Код без единного delay
Проблема была решена отмачиванием плат в спирте. Конечный код