Изменение шим по нажатию кнопки.
- Войдите на сайт для отправки комментариев
Пт, 19/02/2021 - 17:00
Помогите пжалста допилить код.
Алгоритм такой, при подаче питания на мк, начинает плавно расти шим, при отжатой кнопке до 100%, а при нажатой до 50%. Это всё работает.
Нужно дополнительно , что бы при достижении 100% и нажатии кнопки, шим плавно снижался до 50%, а при отпускании кнопки плавно рос обратно до 100.
Всё это дело будет в аттини13.
byte E1=1; // Управление мощностью – подключение к 1 выходу unsigned long StartTimer; // счетчик время для плавного пуска int StartTimeStep=10; // Интервал изменения мощности двигателя, в мс int StartPowerStep=1; // Один шаг изменения мощности двигателя int motorPower; // Мощность двигателя int button_pin = 4; // пин кнопки void setup() { pinMode(button_pin, INPUT); // Инициализируем цифровой вход/выход в режиме входа. pinMode (E1, OUTPUT); // Задаем работу соответствующих пинов в качестве выходов motorPower=0; // Начальная мощность - 0 } void loop() { if (digitalRead(button_pin) == LOW) { if (motorPower<255) // Увеличиваем скорость до тех пор, пока не достигнем максимума if ((millis()-StartTimer)>= StartTimeStep) // Проверяем, сколько прошло с последнего изменения скорости // если больше, чем заданный интервал – увеличим скорость еще на один шаг { motorPower+= StartPowerStep; // увеличение скорости analogWrite (E1, motorPower); // На выводе ENABLE управляющий сигнал с новой скоростью StartTimer=millis(); // Начало нового шага } } else { if (motorPower<125) // Увеличиваем скорость до тех пор, пока не достигнем максимума if ((millis()-StartTimer)>= StartTimeStep) // Проверяем, сколько прошло с последнего изменения скорости // если больше, чем заданный интервал – увеличим скорость еще на один шаг { motorPower+= StartPowerStep; // увеличение скорости analogWrite (E1, motorPower); // На выводе ENABLE управляющий сигнал с новой скоростью StartTimer=millis(); // Начало нового шага } } }
не увидел описания, в чем у вас проблема
Нужно дополнительно , что бы при достижении 100% и нажатии кнопки, шим плавно снижался до 50%, а при отпускании кнопки плавно рос обратно до 100.
Проблема, что после выхода шим на 100%, не возможно зажатием кнопки снизить шим до 50% и обратно до 100.
Проблема, что после выхода шим на 100%, не возможно зажатием кнопки снизить шим до 50% и обратно до 100.
наверно для этого надо что-то в коде прописать, не так ли? - я сейчас в коде не вижу ни одного намека. что вы пытались это сделать.
Здесь помогают тем, кто хочет решить свою задачу сам. Если это заявка "сделайте мне красиво" - это в платный раздел
Проблема, что после выхода шим на 100%, не возможно зажатием кнопки снизить шим до 50% и обратно до 100.
Не вижу ни одного фрагмента, где величина ШИМ снижается. Полагаю, что нужно их дописать.
...а девкой был бы краше...
ua6em - могу только повторить то. что уже сказано ТС - "не вижу в коде ни одного намека на снижение ШИМ"
Обломали мальчика, старпёры! А он так старался...
Сделал уже как требовалось.
Остался вопрос, чё тут за люди сидят на форуме, как псы, жизнью что ли обижены?
Без оскорблений не умеешь что ли, на форумах общаться?
Сделал уже как требовалось.
ну вот - только спросил, и уже все сделал. Форум то работает!
...не возможно зажатием кнопки...
Сделал уже как требовалось.
Вот и верь после этого людям...
PS. А форум-то помог, если сумел сделать невозможное.
Сделал уже как требовалось.
... как псы ...
Это такое своеобразное "спасибо" за то, что проблема решилась?