есть ардуино уно р3, один серводвигатель, и концевой выключатель тоже один Задача собственно такова - чтобы по нажатии выключателя серво двигатель крутился (например) на 180 градусов по часовой, а при следующем нажатии того же выключателя на 180 против часовой(точные значения градусов мне надо будет подбирать опытным путём). скорость серво должна быть примерно 180гр за 1 сек. так же нужно чтобы в каждом из двух крайних положений серво сохранял заданный градус. хотелось бы узнать какие тарифы. пишите в личку.
У вас не такая сложная задача, чтобы ещё и на денежку попасть. Почитайте про серву http://wiki.amperka.ru/робототехника:сервоприводы Почитайте о кнопках и дребезге контактов http://wiki.amperka.ru/конспект-arduino:кнопка http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-novichku Пишем код, если что то не получается - показываем что написали и что не так - поможем Ну а если самому ничего делать не хочется и нужно только готовое решение - чётко пишем задание и ждёмс кто возьмётся и за сколько.
То, что вы назвали ключом , называется концевым выключателем. Если хотите играться с ним, то используйте только два контакта. Я вам уже написал - чётко пишем задание !!!!!!!!! Вы не указали все параметры движения -мгновенное перемещение или с какой то скоростью (с какой, нужна ли регулировка скорости) -постоянное или дискретное движение (нажал - поехали до конца или серва повернулась на сколько то градусов) -может нужна вторая кнопка - одна для движения по ч. стрелке, вторая - против
Главная загвоздка во всей этой задаче не программирование, а подбор сервы. Я например, не знаю дешовых серв со скоростью позиционирования в 1 сек из крайних положений. Чаше всего это мощные привода с большими значениям тока. Точность позиционирования и удержание позиции зависит от внешнего момента на валу. Чем он выше, тем более мощную серву нужно.
скорость, в данном случае, не настолько важный момент. им можно пренебречь и сделать максимальную скорость на которую способен серво. в крайних положениях практически нет внешней нагрузки, просто нужна уверенность, что он от какого нибудь внешнего воздействия, положения не изменит. хар-ки сервы: Operating Speed : 0.17sec / 60 degrees (4.8V no load) Operating Speed : 0.13sec / 60 degrees (6.0V no load) Stall Torque : 13 kg-cm (180.5 oz-in) at 4.8V Stall Torque : 15 kg-cm (208.3 oz-in) at 6V Operation Voltage : 4.8 - 7.2Volts
Код (Text): #include <Bounce.h> #include <Servo.h> Servo myservo; #define BUTTON 2 Bounce bouncer = Bounce( BUTTON, 15 ); int old_val = 0; byte state = 0; int angle = 10; void setup() { myservo.attach(6); pinMode(BUTTON,INPUT); } void loop() { bouncer.update ( ); int value = bouncer.read(); if ( value == HIGH && old_val == LOW) { state = 1 - state; } old_val = value; if ( state == 0) angle = 10; if ( state == 1) angle = 170; myservo.write(angle); } только правильно подключи серву - отдельное питание и общая земля с дуней. установи библиотеку Bounce для борьбы с дребезгом.