Работа сервопривода от MPU6050 и потенциомтра

алекс1138
Offline
Зарегистрирован: 09.11.2016

Доброго времени суток. У меня есть два кода, один что бы управлять сервой с помощью гироскопа (MPU6050), на этом реализована платформа, которая остается в горизонтальном положении не зависимо от того в каком положении находится объект на котором установлен гироскоп. И второй код для управления сервой с помощью потенциометра. Возник вопрос как объединить работу сервопривода от двух сигналов (с гироскопа и потенциометра)? Суть такова: гироскоп выполняет основную роль, но мне нужно потенциометром подрегулировать угол установки сервы когда это необходимо. Как совместить два кода что бы они работали совместно? что бы сигнал с гироскопа так же продолжал работать при новом угле вала сервопривода, установленного с помощью потенциометра? 

Специалисты в программировании, подскажите пожалуйста. Коды могу предоставить.

Navigator
Navigator аватар
Offline
Зарегистрирован: 26.01.2016

Скетч в студию !!!

Logik
Offline
Зарегистрирован: 05.08.2014

алекс1138 пишет:

. Возник вопрос как объединить работу сервопривода от двух сигналов (с гироскопа и потенциометра)? Суть такова: гироскоп выполняет основную роль, но мне нужно потенциометром подрегулировать угол установки сервы когда это необходимо. Как совместить два кода что бы они работали совместно? что бы сигнал с гироскопа так же продолжал работать при новом угле вала сервопривода, установленного с помощью потенциометра? 

Специалисты в программировании, подскажите пожалуйста. Коды могу предоставить.

Отвечу  сразу на 3 вопроса - надо хоть немного научится програмироват. Задача  Вас - ну проще не бывает, разве что блинк, немного проще.

Navigator
Navigator аватар
Offline
Зарегистрирован: 26.01.2016

На серво подается обычно определенное значение. myservo.write(val);

Требуется только его изменить с учетом положения потенциометра.

Jбъявляем вход для потенциометра, potPin=A3 и переменную valPot

Суммируем val и valPot, предварительно промасштабировав значения с потенциометра.

val=(map(analogRead(potPin), 0, 1023, -20, +20))+val;