Есть устройство, в устройстве линейный потенциометр(на 2 оси) - джойстик, с помощью которого можно рулить поворотами мотора. https://www.sparkfun.com/products/9426 Нужно - вместо него воткнуть арду со своей логикой и с арду рулить поворотами мотора, т.е иммитировать управление от линейного потенциометра. Как правильно это сделать?
Как работает джойстик? Стандартный выдает по двум осям аналоговое значение от 0 до 1023, где 512 это середина. Этот так же? Если да, то наверное использовать ШИМ на двух ногах, подогнав его под нужные значения. Или ЦАП.
Цифровое сопротивление с SPI / I2C интерфейсом. Например, MCP41xxx / MCP42xxx, xxx - сопротивление 010 = 10кОм, 050 = 50кОм и т.п.
есть и более простое решение- померять напряжение на высокопотенциальном выводе потенциометра (пусть это будет V<5 В), отключить средний вывод, подключить к любому ~выходу ардуино и выдавать на этот выход напряжение, меньшее или равное V. Метод годится, если V<= 5 В. Если V>5 В, то к выходу ~ ардуины подключаем мосфит с ттл управлением и дело в шляпе, нужно только подключить источник нужного напряжения V и рассчитать LC( RC) фильтр, лучше второго порядка.
Если в МК нет своего ЦАПа, то проще поставить либо внешний ЦАП, либо цифровое сопротивление, чем сглаживать ШИМ и пытаться сделать из Г конфетку.
абсолютно был бы с вами согласен, и даже сам бы только так и написал бы, будь мы на форуме уровня electronix. Но с учетом сопротивления материалов и написал именно так, как написал - 500 (почти) Гц шим ардуины отлично сглаживается фнч второго порядка при нужных нам временах - а это времена ручного управления, т.е. в самом быстром случае полсотни мс. пы сы у меня еще с советских времен 8 битные цапы 572ПА (если не ошибаюсь...) валяются, так и не нашел оказии их куда-нибудь приткнуть. Последний раз их с пользой использовал году так в 82, еще в дописюшную эру.
Вот поэтому и нужно озвучивать и продвигать правильные мысли, чтобы не приходилось каждый раз преодолевать сопротивление заново.
Провожу эксперименты. Вот что получилось. С девайса конечно устройство где был джойстик соотв 4 провода на джойстик было - GND,3V,СИГНАЛ1, СИГНАЛ2. У меня есть 2 блока питания http://www.yarst.org/PRIVATE/DazhengPS305D.htm Подключаю их к GND, Сигнал 1 с блока 1, сигнал 2 с блока 2, кручу напряжение от 0 до 3В -устройство рулится корректно и без проблем, здорово. Подключаю ардуино и пытаюсь рулить , не работает, глючит. В арду(нано) схема такая: В 3,4 каналы подключен РЦ пульт, на 5,6 выходы подключены СИГНАЛ1, СИГНАЛ2, экспререминтальным путем подобрал цифры в арду, чтобы напругу выдавала точно такую же, какая выходила у родного устройства с потенциометром.И в итоге рулится только в 1 сторону, иногда глючит, дергается и тд. Не спец в электрике, что я неправильно делаю? Код (C++): int k,t,p,r; float pp; void setup() { // put your setup code here, to run once: pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(3,INPUT); pinMode(4,INPUT); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: k=pulseIn(3,HIGH); t=pulseIn(4,HIGH); p=map(k,1095,1895,31,150); r=map(t,1095,1895,31,150); analogWrite(6,p); analogWrite(5,r); }
cхемку покажите, а то так трудно со слов понять. Чем четче вы изложите ситуацию, тем больше людей с большим желанием захотят вам помочь.
Правильно копаю? Схемку завтра набросаю, пишу с телефона http://www.instructables.com/id/Analog-Output-Convert-PWM-to-Voltage/