Странно себя ведут двигатели через некоторое время
- Войдите на сайт для отправки комментариев
Чт, 12/04/2018 - 00:07
По идее они должны по секунде работать в разные стороны с перерывом. Так и есть... секунд 20 поработали, а потом... какой-то сбой... начинают быстро двигаться в разные стороны, но не по 1 сек, а где-то по 50-100 мсек... на самом моторе это чуть меньше половины оборота.
int IN1 = 3; //направление 1
int IN2 = 2; //направление 1
int IN3 = 7; //направление 2
int IN4 = 6; //направление 2
int EN1 = 10; //вкл 1
int EN2 = 9; //вкл 2
int i;
void setup()
{
pinMode (IN2, OUTPUT);
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN1, OUTPUT);
pinMode (EN2, OUTPUT);
pinMode (EN1, OUTPUT);
}
void loop()
{
vpered(1000);
delay(100);
nazad(1000);
delay(100);
}
void vpered(int g)
{
digitalWrite (IN2, HIGH);
digitalWrite (IN1, LOW);
digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
analogWrite(EN1, 100);
analogWrite(EN2, 100);
delay(100);
for(int t=millis(); millis()-t<g; delay(10))
{
analogWrite(EN1, 240);
analogWrite(EN2, 240);
}
analogWrite(EN1, 0);
analogWrite(EN2, 0);
}
void nazad(int g)
{
digitalWrite (IN2, LOW);
digitalWrite (IN1, HIGH);
digitalWrite (IN4, LOW);
digitalWrite (IN3, HIGH);
analogWrite(EN1, 100);
analogWrite(EN2, 100);
delay(100);
for(int t=millis(); millis()-t<g; delay(10))
{
analogWrite(EN1, 240);
analogWrite(EN2, 240);
}
analogWrite(EN1, 0);
analogWrite(EN2, 0);
}
Попробуйте написать подробный комментарий для каждой строки.
Та это тестовый код, тут комменты не нужны и так всё ясно.
Путём недолгих раздумий понял, что mills возвращает ведь не int...Поэтому и ошибка...как тогда писать функции, которые будут выполняться определенное время?
Путём недолгих раздумий понял, что mills возвращает ведь не int...Поэтому и ошибка...как тогда писать функции, которые будут выполняться определенное время?
Так же использовать не int в функциях. Например вместо int использовать тип данных соответствующий millis()
Можно ещё скастовать (преобразовать) результат millis() к нужному типу, в т.ч. и int тоже. Или сделать типа так и не мучиться с приведением:
Ну так и используйте unsigned long. Какие проблемы?
Ну, Вы тогда определитесь, Вам "всё ясно" или
Оба одновременно не бывает.
Ну так и используйте unsigned long. Какие проблемы?
Проблема в том, что это мой первый опыт в програмировании ардуинки.
Оба одновременно не бывает.
Что это значит?
Что это значит?
это значит, что вы либо делайте, что вас просят - комментируйте код - либо разбирайтесь сами и не отнимайте время у других
Я как на этот for() глянул, так чуть сознание не потерял. Это даже похлеще, чем func((int&)pole[n][n]).
Вполне нормальный фор .. чего там терять-то? Просто код явно стырен ТС-ом, только и всего. Очередной мимикрирующий студент детекдед. Делов то.
Вполне нормальный фор .. чего там терять-то? Просто код явно стырен ТС-ом, только и всего. Очередной мимикрирующий студент детекдед. Делов то.
Код это мой, он ПРОБНЫЙ, мне пофиг на оптимизацию сейчас.
До этого я работал с другим Си-подобным языком, где, например, код
function взять_(int g) { int x, y; for (int t=gettime(); gettime()-t<g; sleep(20)) { sleep(30); if(findimage(1,#взять[0][0],3613463,#x,#y,0,0,ex_KIB,ey_KIB,w_KIB)==1) {sleep(220); sendmouse(LEFT,x,y,w_KIB); sleep(150); return 1;} } return 0; }вполне работоспособный. Ну не успел я пока прочитать весь грёбный мануал за один день...что теперь на форуме нельзя совета спросить???
Ну может и ваш .. я хотел отметить что он вполне понятный иработоспособный, хоть и написан "не по сишному".. и только. :)
В очень интересное время живем: не успел за день изучить язык программирования - беги на форум, выноси всем мозги. Что, два-три дня посидеть уже никак? Земная ось завтра уже переломится, а у вас еще даже моторы не кручены?
Та нет, форум ведь для того и придуман, чтобы решать задачи вселенского масштаба. Адруино с ними, конечно, справится, но всё остальное на форуме запрещено обсуждать/спрашивать.
Нуну. Выучить язык Си за день @^@. Вот тогда почему математику еще быстрее не учат . Там 10 цифр и +,-,*,/ ну и =. Это все в час можно пробежать :)
А тем временем на Марсе https://www.youtube.com/watch?v=EpYhhD3jfrw
Что это значит?
Это значит, что либо "Вам всё ясно", либо у Вас "непонятный сбой". И то и другое возможно, но не оба одновременно.
До этого я работал с другим Си-подобным языком, где, например, код
вполне работоспособный.
Он и здесь вполне работоспособный.
Ну не успел я пока прочитать весь грёбный мануал за один день...что теперь на форуме нельзя совета спросить???
Почему нельзя? Можно. Каждый сам для себя решает потратить ещё один день (если одного не хватило) или бежать на форум. Вы решили так - Ваше право.
Та нет, форум ведь для того и придуман, чтобы решать задачи вселенского масштаба.
Меня вот интересует, почему "для чего придуман форум" старожилам форума объясняют исключительно люди, зарегистрировавшиеся на форуме не более трех дней назад?
Наверно потому, что старожили офигели и считают, что новички должны сначала выучить наизусть мануал, перед тем как идти на форум.
Не ну...согласись...и посмотри ответы на мой вопрос...Сколько человек реально помогли и сколько зашли тупо порофлить?
Наверно потому, что старожили офигели и считают, что новички должны сначала выучить наизусть мануал, перед тем как идти на форум.
Правильно считают.
Какой смысл спрашивать на форуме то, что есть в книжке (притом, в известной книжке).
Знаете, задавать глупые вопросы - это неуважение к окружающим.
А задавать вопросы, подразумевая "мне самому читать недосуг, пользоваться поиском - тоже недосуг, пусть кто-нибудь затратит свое время и подробно мне распишет", - это уже откровенное хамство.
qwone, итить, я сколько по ютубу брожу, ни разу таких гадостей не встречал. ГДЕ ВЫ ТАМ КОПАИТИСЬ ???? , как Вам не айайайай! Исчо и Марс приплели :)))
А задавать вопросы, подразумевая "мне самому читать недосуг, пользоваться поиском - тоже недосуг, пусть кто-нибудь затратит свое время и подробно мне распишет", - это уже откровенное хамство.
Таких вопросов в этой теме нет, не приплетай сюда подобное.
Обязательно найдется уникум, который напишет "ищи в гугле" и т.д. Какой тогда смысл в форуме, если всё можно узнать где-нибудь в книге или в гугле? Зачем раздел "вопросы по программированию"?
Вон даже в далёком 2014-ом некий jeka_tm создал тему
Предлагаю создать шаблон создания темы для новичков, чтобы особо не стебались, и получать ответы, со стебом конечно
Старожили твои ведут себя типично по отношению к новичкам. Так было и будет всегда, во всех сферах жизни. Так что не надо мне тут рассказывать одно и то же, как под копирку
УвазЖаемый Эдмон! Вам неспроста было предложено написать коммент к каждой строке. Однако Вам оказалось, или лениво, или невозможно.
Во-первом случае лес слева, во-втором, или идите учитесь пониманию чужого кода, или в " исчу исполнителя".
Неспроста? Окей...допустим, сделал я комменты. И что это даст? Объясни мне, как старпер'ожил - новичку.
Это мне уже сейчас понятно, что в int можно записать число до 32767, именно поэтому движки начинали тупить после полминуты работы...но какой комментарий я должен был оставить к циклу for, чтобы понять это?
Для начала Свои эпитеты с апострофами засуньте Себе в ухо, потом извинитесь и придите снова с тремя КУ!
NO VI CHOK
А мне "из леса" виднее какими эпитетами пользоваться
Так и сидите в лесу своём, нечего в люди соваться. Вы уже тут нерукопожатный.
Пришли, показали невежество своё, нахамили...
стыдитесь и посыпайтесь пеплом. (пока возможно нерадиоактивным)
Наверно потому, что старожили офигели и считают, что новички должны сначала выучить наизусть мануал, перед тем как идти на форум.
Не ну...согласись...и посмотри ответы на мой вопрос...Сколько человек реально помогли и сколько зашли тупо порофлить?
если ты вызываешь желание сделать с тобой...(как эта па-русски?) да - порофлить, то кто виноват - ты, который считает, что мануалы читают лохи, или я?
OMG !!!! Несчастный! Ты пробудил древнее ЗЛО !!! О горе всем нам.
Дантес, Вам сразу дали 4 полезных совета (посты 1,3,4,5), которые в т.ч. и отвечают на поставленный Вами вопрос "как тогда тут.." (ваш пост №2) .
Вам в этих ответах что-то оказалось непонятным? Что именно?
P.S. Вы зря дальше полезли в перепалку с местными троллями, пардон "старожилами". По большей части, они - правы, всех задирает по нескольку раз на дню отвечать на одни и теже вопросы от людей, которые считают что "Знание не нужно, достаточно спросить на форуме". Я уже просто читаю темы исключительно выборочно и не более 2-3 за один раз. И не факт, что в следующий раз я снова наткнусь на эту тему и кому-то отвечу .. тут кроме бездарных студентов и троллей никого и нет. Специалистов если и есть, по пальцам на одной руке и они приходят сюда также редко.
уже - нет. О_О
Вроде, раздел называется "Программирование". Хотя, может это у меня с чтением проблемы.
Ну это просто фейспалм...можешь дальше не продолжать
Да, я как-то и не собирался. У меня есть более интересные занятия, чем вразумлять тех, кому всё ясно, но при этом непонятные сбои.