время срабатывания выхода
- Войдите на сайт для отправки комментариев
Пнд, 02/04/2012 - 05:52
Подскажите новечку как ограничить работу выхода после срабатывания С delay развлекался не получается
int res =1; int mot1 =13; int mot2 =12; void setup(){ analogReference(DEFAULT); pinMode(mot1, OUTPUT); pinMode(mot2, OUTPUT); } void loop(){ int val =analogRead(res); if(val < 500)digitalWrite(mot1, HIGH); else digitalWrite(mot1, LOW); if(val > 500)digitalWrite(mot2, HIGH); else digitalWrite(mot2, LOW); }
Подскажите новечку как ограничить работу выхода после срабатывания С delay развлекался не получается
"Переведи!" (c)
Что значит "ограничить"?
Что подразумевается под "срабатыванием"?
Как "развлекался"?
Что "не получается"?
команду deley(1000) вставлял в разные строки но результат получался не совсем такой какой нужен
Ограничить значит - при срабатывании выходов mot1 или mot2( моторы)ограничить время их работы до 1-2 секунды
спасибо
Из кода и описания все равно не очень понятно, что Вы хотите добится. Чтобы после того как (val < 500) мотор проработал 1-2 секунды? Пока (val < 500) мотор работал, но не более 1-2 секунд?
Попробуйте определится, что хотите. Введите дополнительный переменные, чтобы знать когда моторы были включены и проверяйте в главном цикле loop не пора ли выключить.
Если (val < 500) мотор крутился 1-2 секунды в одну сторону, Если(val >500) мотор крутится в другую сторону, но не более 1-2 секунды
Будет стоять драйвер двигателя
Если (val < 500) мотор крутился 1-2 секунды в одну сторону, Если(val >500) мотор крутится в другую сторону, но не более 1-2 секунды
Будет стоять драйвер двигателя
Рассмотрим "Если (val < 500) мотор крутился 1-2 секунды в одну сторону" (вторая задача - близнец)
Что делаем?
в первой конструкции if следим за контролируемой величиной и при достижении некоторого значения выполняем действия, которые требуется выполнить.
во второй конструкции if следим за взведенным в первой конструкции таймером и при достижении заданной длительности периода выполняем другую группу действий.
параллельно изменяем значения переменных/флагов, необходимых для правильной отработки.
Это - самый тупой алгоритм. Он, возможно, будет неправильно отрабатывать особые ситуации - например, движок будет вращаться не умолкая, если контролируемая величина будет изменятьс туда-сюда вокруг порогового значения. Но идея, надеюсь, ясна. А если основная идея ясна, то доработать как-нибудь сможете...
спасибо буду эксперементировать
вот таким кодом все решилось
огромная благодарность "maksim"