Поворот сервопривода от 0 до 90 градусов и обратно 1 кнопкой

Gohstyman
Offline
Зарегистрирован: 03.04.2018

Здравствуйте, уважаемые форумчане!

Я - новичок в области arduino и в процессе моих изысканий встал вопрос: как сделать так чтобы по первому кратковременному нажатию тактовой кнопки сервопривод поворачивался с 0 до 90 градусов и удерживался в этом положении, а по второму возрощался в исходное положение.

Буду очень рад помощи профессионалов )

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

#7

Morroc
Offline
Зарегистрирован: 24.10.2016

Опять кнопку ардуиной нажать надо ? :)

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

Gohstyman пишет:

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

По чётному нажатию (0-му, 2-му и т.п.) выдавать команду servo.write(90), а по нечётному - servo.write(0).

Bobreogen
Offline
Зарегистрирован: 25.03.2018

Здесь можно немного углубить знания по сервоприводам: https://arduinomaster.ru/motor-dvigatel-privod/shagovye-dvigateli-i-moto...

Кратце код будет примерно так выглядеть:

const int stepsPerRevolution = 50; //1.8 градусов за шаг * 50 = 90

Stepper myStepper(stepsPerRevolution, 8,9,10,11) //Устанавливаем порты
 

void setup() {
 
myStepper.setSpeed(60); //установка скорости вращения ротора (можно любую поставить)
 
}

 

void loop() {
//событие для кнопки
myStepper.step(stepsPerRevolution); //Движение по и против часовой стрелки (между ними можно, к примеру, паузу поставить)
myStepper.step(-stepsPerRevolution);
}

 

 

Nikita13
Offline
Зарегистрирован: 09.10.2017

Добрый день, прошу помощи для понимания, есть код есть железо. Серво мощная, блок питания на 3а и ардуино уно. При подаче питания на плату серва встает в непонятный угол а только потом встает в нужный. Но дело вот в чем, питание у сервы глушу транзистором на землю. Поэтому не понимаю почему вообще происходит какое то движение если транзистор не пропускает.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Nikita13 пишет:
...есть код есть железо.

Не вижу ни одного, ни другого.

Цитата:
не понимаю почему вообще происходит какое то движение если транзистор не пропускает.

Ваше заявление принято к сведению.

Появятся вопросы - приходите.

svm
Offline
Зарегистрирован: 06.11.2016

Nikita13 пишет:
Но дело вот в чем, питание у сервы глушу транзистором на землю. Поэтому не понимаю почему вообще происходит какое то движение если транзистор не пропускает.

Витиевато.

Вы глушите питание транзистором на землю, а транзистор не пропускает. Это как?

Если мощный БП, то после первой попытки заглушить питание на землю транзистор должен испустить голубой дым.

Клапауций 555
Offline
Зарегистрирован: 10.03.2018

svm пишет:

транзистор должен испустить голубой дым.

транзисторы выпускают бэлый дым - пора бы уже знать матчасть. О_О

Nikita13
Offline
Зарегистрирован: 09.10.2017

Видимо не так выразился, земля сервы открывается транзистором, 5 вольт на прямую. Команды тразистору для открытия нет.

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

Nikita13 пишет:
Видимо не так выразился, земля сервы открывается транзистором, 5 вольт на прямую. Команды тразистору для открытия нет.

.... открываем землю.....
Вам бы в поэты надо было пойти, а ?

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

Nikita13 пишет:
Видимо не так выразился

Да, Вы можете выражаться как Вам угодно, только помочь Вам невозможно, пока Вы не научитесь читать, что Вам пишут. Вот Вам коллега написал

andriano пишет:

Nikita13 пишет:
...есть код есть железо.

Не вижу ни одного, ни другого.

И что? Вы как-то отреагировали на это? В итоге, имеем:

1. У Вас есть ХЗ какой код.
2. У Вас есть ХЗ какое железо

Вопрос: почему всё это не работает, как надо?
Ответ: ХЗ2!

И никакого более вразумительного ответа Вы не получите, пока не покажете схему, код, а лучше ещё и фото сборки.

Nikita13
Offline
Зарегистрирован: 09.10.2017

фото сборки уже нереально сделать, все полностью переделалось. Железо описал, код тоже не смогу сделать поскольку он теперь другой. Собственно проблему я решил с помощью реле. Но вопрос остался. Если бы тут можно было как то проще загрузить фото схемы. Я бы ее загрузил. И тогда бы не было приколов как открывается транзистором земля сервы.

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

А чего тут сложно в загрузке фото?

Nikita13
Offline
Зарегистрирован: 09.10.2017

сайт именно фото не загружает, другие изображения грузит

 

Nikita13
Offline
Зарегистрирован: 09.10.2017

Nikita13
Offline
Зарегистрирован: 09.10.2017

получилось, код работает так. когда нужно подвигать сервой подаю сигнал на транзистор что бы он открылся, соответственно у сервы появится питание. Сразу же даю сигнал серве чтобы она изменила угол. Ожидание 1 сек и закрываю транзистор. Все работает. Но при подаче питания на блок питания, ардуино во время инициализации каким то образом двигает серву в один и тот же угол хотя сигнала на транзистор приходить не должно, а соответственно и серва без питания. За счет чего она движется? Вот вопрос.

Nikita13
Offline
Зарегистрирован: 09.10.2017

реле исправило данную проблему и меня все устраивает, но вопрос мучает. да и транзистор компактнее.

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

Nikita13 пишет:


Художник из вас не выйдет.....
Все таки подумайте про драматурга или писателя.
Без обид, так нельзя рисовать схемы!!!
Сверху плюс, снизу минус, вход слева, выход справа

Nikita13
Offline
Зарегистрирован: 09.10.2017

А кроме как раздавать советы кем быть, можно по существу ответить? Я ее рисовал чтобы было наглядно видно что куда идет. 

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

По рисунку очень похоже, что вместо транзистора подключена LM78xx в корпусе TO-220. Транзисторам-то, говорят, какие-то резисторы нужны...

Nikita13
Offline
Зарегистрирован: 09.10.2017

А резистор на базу?

Nikita13
Offline
Зарегистрирован: 09.10.2017

p16nf06l точно транзистор, единственное на схеме неправильно нарисован коллектор и эмиттер. Но не стоит придираться, на деле было подключено верно)

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

Nikita13 пишет:
на схеме неправильно нарисован коллектор и эмиттер. Но не стоит придираться

Вот умеют люди настроение поднять с утра! Спасибо, Вы сделали мой день!

Класс!!! :)))))))))

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Та ладно. А потом из радиодеталей можно сделать бижутерию. Там не важно, где коллектор, а где эммитер.http://igrushka.kz/vip48/radbij.php

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

qwone пишет:

из радиодеталей можно сделать бижутерию. 

Вот здесь очень красиво - https://sergs-inf.livejournal.com/675516.html

qwone пишет:
Там не важно, где коллектор, а где эммитер

Я как-то делал (если найду, покажу) двух мужиков, квасящих пиво за столом. Мужики в шляпах - транзисторы МП40, стол - батарейка 2032, стулья - конденсаторы, руки - резисторы и т.п. Так вот всё это ещё и работало - если выключить свет, то у них на столе "настольная лампа" зажигалась - так что там, как видите, было важно где чего.

Nikita13
Offline
Зарегистрирован: 09.10.2017

Я понял, по делу тут не ответят. Лишь бы обосрать. Хотя и написал что на деле подключено правильно.

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

Уважаемые знатоки, вопрос от посетителя arduino.ru, цена - 0рублей: "Подключено правильно, но работает неправильно. В чем может быть дело?". Минута пошла.

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

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

Nikita13
Offline
Зарегистрирован: 09.10.2017

Умник, я не писал что работает не правильно! Перечитай прежде чем умничать!

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Nikita13 пишет:
Я понял, по делу тут не ответят. Лишь бы обосрать. Хотя и написал что на деле подключено правильно.

Nikita13, у Вас отсутсвует необходимый минимум, и осознания необходимости получения этого минимума. Это делает Вас и Ваше задание неодекватным. Тем более информации об этом минимуме полно.И сюда сбрасывать это минммум глупо. Так что забейте на радиодело и займитесь поделками из ваших радиодеталей. Для этого вашего минима знаний вам хватит.

 

Nikita13
Offline
Зарегистрирован: 09.10.2017

Вот вам не лень? Отвечать фиг знает на что? Перечитайте работу кода и сам вопрос. Там все расписал. Но нет, вам нужно отвечать много, но не по делу

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

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

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Так задача у вас простая, код простой, схема простая и все это есть на просторах интернета. Но у вас что-то не работает, и это что-то надо устранить. И что удивительное , что устранить надо ВАС и тогда все заработает. Странно. Не правда ли.

Nikita13
Offline
Зарегистрирован: 09.10.2017

С помощью мультиметра не успевает увидеть сигнал который идет на базу, происходит очень быстро. Да и контроллер только проходит инициализацию. Могут ли во время инициализации на пинах ардуино возникать сигналы?

Nikita13
Offline
Зарегистрирован: 09.10.2017

Себя устрани. Извиняюсь за грубость.

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

Не успевает - берете более точный прибор: осциллограф, логический анализатор. 

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

Nikita13
Offline
Зарегистрирован: 09.10.2017

Спасибо, мысль хорошая! Попробую на досуге.

Nikita13
Offline
Зарегистрирован: 09.10.2017

Базу резистором тоже подтяну. Спасибо за помощь)

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

   

Nikita13
Offline
Зарегистрирован: 09.10.2017

.

Nikita13
Offline
Зарегистрирован: 09.10.2017

.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

  

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

!

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

Никитка, а на кой ляд там ВООБЩЕ этот транзистор Вы втыкнули? Ну или "реле" .. в общем-то ПОФИГ.

Особенно, если таки прочитать инструкцию .. то можно обнаружить что И питание И земля на серву подаются напрямую, а управляться она у вас должна .. ага, тоже напрямую из ардуиновского пина D3!

.. это осмелюсь спросить: Вам лет - сколько? Думаю что те детишки (ЕвгенийП, ваш ещё не забросил надеюсь?), что тут занимаются Ардуиной в свои 9-13 лет, уже знают почему над вами многие потешаются. А вы - поняли в чем проблема или таки "товагищ Дгузь" окажется прав? :)

P.S. Если ещё не поняли, то маленькая подсказка: у полевого транзистора нет .. ни базы ни коллетора ни ещё чего-то вам понятного.

Nikita13
Offline
Зарегистрирован: 09.10.2017

Никитка?) лет мне достаточно чтобы щиты АВР собирать до 50квт.

Смысл транзистора или реле, в данной схеме заключается в том что серва в моей конструкции сделав поворот до 30 градусов механически упирается и гудит. Если уменьшаю угол то общий механизм недотягивает. Поэтому делается поворот до 30градусов и отсекается питание. В данном случае земля.

Nikita13
Offline
Зарегистрирован: 09.10.2017

На счет эмиттеров и коллекторов, стоков и истоков. Согласен обозвал ноги своего транзистора как ноги биполярного. И соглашусь вещи надо называть своими именами. Но это вы в этом знаете толк. Если бы я знал все тонкости, то не обратился бы к вам. Моя специфика работы другая. И всего лишь учусь. А вам смешно)

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

А вот похоже вы эту функцию не учли.http://arduino.ru/Reference/Library/Servo/detach

И ничего у вас жужать не будет.

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

Nikita13 пишет:
Смысл транзистора или реле, в данной схеме заключается в том что серва в моей конструкции сделав поворот до 30 градусов механически упирается и гудит. Если уменьшаю угол то общий механизм недотягивает. Поэтому делается поворот до 30градусов и отсекается питание. В данном случае земля.

https://www.arduino.cc/en/Reference/ServoDetach - отчекрыживает серву от управляющих импульсов безо всяких дополнительных навесов.

Nikita13
Offline
Зарегистрирован: 09.10.2017

Вот! Ты крут) и правда не знал про эту функцию. Спасибо тебе)

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

Nikita13 пишет:
Никитка?) лет мне достаточно чтобы щиты АВР собирать до 50квт. Смысл транзистора или реле, в данной схеме заключается в том что серва в моей конструкции сделав поворот до 30 градусов механически упирается и гудит. Если уменьшаю угол то общий механизм недотягивает. Поэтому делается поворот до 30градусов и отсекается питание. В данном случае земля.

1. Где вы видели китайскую серву которая не дёргается при подаче питания?
    Лично я не видел.
    Они ВСЕГДА так делают и бороться с этим бесполезно.

2. Где вы видели китайскую серву которая поворачивается  от 0 до 180 градусов
    с теми таймингами которые забиты в библиотеке?
    Лично я не видел.
    Они ВСЕГДА так делают и бороться с этим бесполезно.
    Градусов по 5-10 с каждой стороны.

3.1   Вместо "отсекания питания" попробуйте просто не задавать серве угол меньше  ваших 30-ти.
        Про detach вам я вижу уже сообщили.......

3.2   В библиотеке можно эти тайминги выставить под вашу конкретную серву.
      
3.3   В библиотеке можно напрямую управлять сервой задавая время импульса.

 

 

Nikita13
Offline
Зарегистрирован: 09.10.2017

До транзистора у меня ничего и не дергалось, поэтому и решил спросить у более опытных в данной тематике.