29.01.2021
Зачастую, когда в голову приходит идея проекта, сразу же хочется его начать реализовывать. Но для новичка появляется рад проблем, которые с ходу решить нельзя. Давайте представим, что в проекте необходимо управлять скоростью движения сервопривода с помощью потенциометра (пример можно посмотреть на странице нашего технопарка).
Подключим потенциометр и сервопривод как на картинке ниже. И напишем код, который будет заставлять вращаться серво от 0 до 180 градусов и обратно тем быстрее, чем больше выкручен потенциометр.
Вероятнее всего, первая идея реализации кода будет следующая:
Да, этот код будет работать, но каждый раз, когда мы захотим поменять скорость, придется ждать возвращения сервопривода в исходное состояние. Для того чтобы исправить ситуацию, необходимо параллельно делать два процесса: считывать данные и передавать их. Давайте разберемся, как это сделать.
Функция delay() приостанавливает исполнение программы на величину времени time, заданного в миллисекундах, в то время как функция millis() позволяет считать время, прошедшее с момента запуска текущей программы. То есть вместо того, чтобы полностью останавливать все процессы микроконтроллера, можно выполнять процессы в зависимости от того, пришло время команды или нет. Например, можно сделать условие:
Таким образом, на каждые 1000 миллисекунд будет происходить свой процесс, не останавливая остальные. Вернемся к нашей задачи и сделаем параллельно прием данных с потенциометра, и эти данные мы заложим во время срабатывания прибавления шага серво на единицу.
Теперь код работает так, как и требовалось. Эти и другие знания можно получить, записавшись на занятия по программированию и IT в челябинский технопарк «Кванториум».
Вам понравилось? Расскажите о своем опыте своим друзьям в социальных сетях. Пусть им понравится тоже!
Подпишитесь на нашу рассылку
Остались вопросы по качеству обучения?
Вы можете задать их любым удобным для вас способом:
Анкета по оценке удовлетворенности качеством оказания образовательных услуг общеобразовательной организацией
Оценить качествоНажимая кнопку «Подписаться», я даю согласие на обработку моих персональных данных согласно 152-ФЗ