нужна помощь чайнику в написании программы

kuzmich983
Offline
Зарегистрирован: 08.01.2018

Доброго времени суток нужна помощь в плане управления мосфетом с помощью шим и потенциометра. но есть одно большое но в принцепе управления, то есть система такая.  когда потенциомер стоит по середине сигнал должен быть на минемуме если потенциомер повернуть влево либо в право то соответственно сигнал дожен быть на максимуме. воообщем не могу придумать как написать программу  что бы поделить потенцииометр попалам    

vk007
Offline
Зарегистрирован: 16.06.2015

Что же тут придумывать? Один конец потенциометра - на +5, другой - на землю, ползунок - на аналоговый вход. В этом случае диапазон значений на аналоговом входе от 0 до 1023, т.е. середина - это примерно 512. Таким образом, если от 512 вычитать значение на входе, то получим, насколько сильно потенциометр выкручен влево или вправо - чем сильнее выкручен, тем больше эта разница. Только при выкручивании в одну сторону она будет положительной, в другую отрицательной. Если направление кручения не важно, а нужно только отклонение, то применяем к результату модуль.

kuzmich983
Offline
Зарегистрирован: 08.01.2018

как это написать в программе 

vk007
Offline
Зарегистрирован: 16.06.2015

kuzmich983 пишет:

как это написать в программе 

Че за приколы? Разделом не ошиблись?

И да, потенциометр должен быть линейным.

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Выход = 0xff & (abs(512 - Вход) / 2);

kuzmich983
Offline
Зарегистрирован: 08.01.2018

дело втом что я еще чайник в это деле, с разделом незнаю ошибся или нет .

но я не могу придумать как это прописять в скейче

vk007
Offline
Зарегистрирован: 16.06.2015

Видите ли, тут так не принято. Если вам нужен скетч, но вы в этом ни бум бум, то вам в "Ищу исполнителя", там всегда найдутся люди, которые за разного размера вознаграждение помогут его написать.

Если же вы пытаетесь написать что-то сами, но где-то затык, то вероятно найдутся люди, которым это интересно и они потратят на вас некоторое количество своего времени. Но для этого надо предоставить свои наработки и рассказать что где у вас не получается.

А халявщиков, которым "напиши за меня, я новичек", тут не жалуют.

kuzmich983
Offline
Зарегистрирован: 08.01.2018

pwm=analogRead(0);

pwm=map(pwm0,1023);

pwm=constrait(pwm0,1023);

analogWrite(3, pwm)

куда лучше  вставить данную строчку Выход = 0xff & (abs(512 - Вход) / 2);

kuzmich983
Offline
Зарегистрирован: 08.01.2018

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

wdrakula пишет:

Выход = 0xff & (abs(512 - Вход) / 2);

Лучше бы на брейнфаке написать.

Меня давно подмывает какому-нибудь из постоянно приползающих студиоусов выдать - нехай сдаёт.

kuzmich983
Offline
Зарегистрирован: 08.01.2018

здесь меня совсем в тупик поставили

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

И правильно сделали :)

Выбирайтесь.

kuzmich983
Offline
Зарегистрирован: 08.01.2018

ЕвгенийП пишет:

И правильно сделали :)

Выбирайтесь.

спасибо постараюсь

kuzmich983
Offline
Зарегистрирован: 08.01.2018

всем спасибо вроде разобрался с этими модулями