управление сервопривода

almaz80
Offline
Зарегистрирован: 09.02.2019

Нужна помощь знатоков,

мне нужно управлять сервоприводом на ардуино с помощью напряжения т.е. у меня на переключателе (10положений) появляется  -5v в одном из положений ,паять на каждый выход по два резистора (резестивный делитель) не очеть охото, как можно еще выйти из положения , програмно я так понимаю не получится

b707
Offline
Зарегистрирован: 26.05.2017

откуда эти "-5в" берутся? Может это не "минус", а банальная "земля". Тогда проблемка легко решается при наличии на МК 10 свободных входов....

almaz80
Offline
Зарегистрирован: 09.02.2019

да земля появляется

b707
Offline
Зарегистрирован: 26.05.2017

на каждый полюс переключателя по цифровому пину, пины подтянуть к +5в и мониторить на них низкий уровень. Далее на каждый пин свой пеоворот сервы. Программа получается элементарная.

Если занимать 10 входов слишком жирно - можно собрать резистивную сборку по классической схеме подключения нескольких кнопок к аналоговому порту

almaz80
Offline
Зарегистрирован: 09.02.2019

а какую мк можно например ?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Подключите на ваши минус пять землю Ардуины.
И ваша земля станет плюс пятьми.
Или пятью, не знаю как правильно.
Или поставьте оптрон.
Он вам всё перевернёт как надо.

b707
Offline
Зарегистрирован: 26.05.2017

almaz80 пишет:

а какую мк можно например ?

Если только переключатель и одна серва - практически любая. Банальные Уно или Нано запросто справятся

almaz80
Offline
Зарегистрирован: 09.02.2019

т.е. мк переключатель будет менять напряжение на выходе ? , которое я подаю на вход ардуино вместо потенциометра ?

almaz80
Offline
Зарегистрирован: 09.02.2019

привет, до меня только дошло то что вы предлагали, можите помочь с прогой (на каждый пин свой поворот сервы, 10 входов не жирно а как раз

sadman41
Offline
Зарегистрирован: 19.10.2016

Прога:

pinMode(3, OUTPUT);
...
digitalWrite(3, HIGH);

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Программа у вас получается относительно простой, если не учитывать дребезг контактов переключателя:

1. В loop() опрашиваете свои 10 пинов последовательными if(){} (если пин замкнут на землю, то)

2. Внутри каждого if(){} вызывается установка сервы на заданный угол.

Всё.

По п.1. - смотрите функцию digitalRead() в верхнем меню есть кнопка "программирование";

По п.2. - смотрите библиотеку Servo.h и как ей пользоваться.

В setup() не забудьте правильно настроить пин серводвигателя.

Если требуется устранять дребезг, то смотрите в разделе "Программирование" соответствующую тему за кнопки и их обработку.