Страница 1 из 1
кнопки и переменные
Добавлено: 11 янв 2020, 01:44
shura2
тренируюсь на кошках так сказать
Собрал конструкцию из 3 кнопок и сервы. первый вариант - нажатие на кнопку двигает серву на заданный угол
[spoiler]
3knopki.png
[/spoiler]
Все работает.
Заменил действие на третьей кнопке (поворот сервы на угол 10град по нажатию кнопки):
[spoiler]
3 knopki2.png
[/spoiler]
перестали работать первые две кнопки. Почему?
кнопки и переменные
Добавлено: 11 янв 2020, 05:45
edyapd
[ref]shura2[/ref], а вы найдите отличие в записи переменной "поворот" для первых двух кнопок и для третьей. И сразу станет всё понятно
кнопки и переменные
Добавлено: 11 янв 2020, 17:41
shura2
Как бы и там и там переменной присваивается значение. Согласно моей логике в первом или во втором случае переменной должно присвоится значение. Но не присваивается. Почему перестали работать первые две, а третья работает я не понимаю.
кнопки и переменные
Добавлено: 11 янв 2020, 17:51
dizzyy
[ref]shura2[/ref], что бы не присвоилось переменной в первых случаях , то третий всегда перезапишет свое ..переделайте 3 пункт на условие записи(как в первых) и все пойдет
Отправлено спустя 3 минуты 7 секунд:
если нажата кнопка 1 то поворот на столько..
если нажата кнопка 2 то поворот на столько
по барабану нажата или нет 3 кнопка присвоить переменной значение счетчика умноженное на 10
выполнить поворот
вот ваш алгоритм
кнопки и переменные
Добавлено: 12 янв 2020, 01:38
shura2
Спасибо! Поправил - заработало.
[spoiler]
3 knopki_rabochij.png
[/spoiler]
dizzyy писал(а): 11 янв 2020, 17:51
shura2, что бы не присвоилось переменной в первых случаях , то третий всегда перезапишет свое ..переделайте 3 пункт на условие записи(как в первых) и все пойдет
сделал, но все равно не понимаю,почему не работали первые две кнопки, даже если не была нажата третья?
что означает en в переменной?
кнопки и переменные
Добавлено: 12 янв 2020, 06:01
edyapd
En это разрешение на запись в переменную.
Просто представьте себя на месте цикла программы. И от вас требуется принести значение, на которое требуется повернуть серву.
Идёте вы с блокнотиком и опрашиваете устройства. Подходите к первой кнопке. Есть разрешение на управление? Есть. Записываете её значение в блокнотик. Шагаете дальше. Подходите ко второй кнопке. Есть разрешение на управление? Нет. Свободен. Шагаете к третьей. Есть разрешение? А ей разрешение не требуется. Ясно, вычёркиваете то, что дала вам первая кнопка и записываете значение третьей. Пришли вы к серве. Какое значение вы ей должны отдать?
А ещё, таким образом у вас на серву может быть два значения. Не одновременно конечно. А скажем нажали на кнопку. Записали значение в переменную. А считывание с переменной происходит не после того, как были опрошены все устройства, а где-то между ними. Серва у вас повернулась на заданное значение. А в следующем цикле эта переменная перезаписалась той, для которой разрешение не требуется и серва вернулась в исходное состояние. Она физически конечно не успеет даже повернуться, но конвульсии будут.
кнопки и переменные
Добавлено: 14 янв 2020, 21:53
shura2
Спасибо большое за разжеванное объяснение.
кнопки и переменные
Добавлено: 18 янв 2020, 20:36
shura2
Продолжаю тренироваться на кошках.
Сделал такую схемку:
[spoiler]
3 knopki_serva.png
[/spoiler]
1 кнопка - 0град
2 кнопка - 90 град
3 кнопка - +10 градусов к текущему положению.
все работает без замечаний.
Вопрос - как лучше упростить схему?
второй вопрос, если мне нужно двигать серву вниз, то ставить новый счетчик?
кнопки и переменные
Добавлено: 18 янв 2020, 20:46
edyapd
[ref]shura2[/ref], было бы удобней, если бы вы выложили файл проекта, а не картинку.
кнопки и переменные
Добавлено: 18 янв 2020, 23:48
shura2
К сожалению не сохранил.
Так как поменял логику - теперь 1 кнопка ставит серву в положение 90град, остальные две кнопки +-10 град.
[spoiler]
3 knopki+-.png
[/spoiler]
и тут тоже вопрос: мне для того что бы подключить сброс (R), SP и триггер мало того, что пришлось ввести логику OR, не нужную в данном случае, так еще и соблюдать порядок в подключении. (сначала R, потом OR, потом триггер). Это фича или баг?
может есть какой то другой способ?
[spoiler]
3 knopki+-.flp
[/spoiler]
кнопки и переменные
Добавлено: 19 янв 2020, 00:44
grin-mpx
3 knopki+-2.flp
[spoiler]
3 кнопки.jpg
[/spoiler]
Отправлено спустя 2 минуты 57 секунд:
shura2 писал(а): 18 янв 2020, 23:48
мне для того что бы подключить сброс (R), SP и триггер мало того, что пришлось ввести логику OR, не нужную в данном случае, так еще и соблюдать порядок в подключении. (сначала R, потом OR, потом триггер).
А зачем там вообще вверху OR нужен? Тем более одноногий?
кнопки и переменные
Добавлено: 19 янв 2020, 03:20
shura2
grin-mpx писал(а): 19 янв 2020, 00:44
А зачем там вообще вверху OR нужен? Тем более одноногий?
[ref]grin-mpx[/ref], А он и не нужен был. я не смог 3 вывода подключить на кнопку.
А зачем на вашей схеме Rtriger? и что за Ftriger? Я попробовал к счетчику напрямую "кнопку 90гр" подключить - работает
[spoiler]
3 knopki+- v2.png
[/spoiler]
кнопки и переменные
Добавлено: 19 янв 2020, 13:56
grin-mpx
shura2 писал(а): 19 янв 2020, 03:20
А зачем на вашей схеме Rtriger? Я попробовал к счетчику напрямую "кнопку 90гр" подключить - работает
Работает и хорошо. Rtriger для записи в 1 цикл независимо от длины нажатия на кнопку.
shura2 писал(а): 19 янв 2020, 03:20
и что за Ftriger
viewtopic.php?f=81&t=2977
кнопки и переменные
Добавлено: 01 фев 2020, 23:58
shura2
А как сделать, что бы повторное нажатие кнопки не перезапускало какой-либо цикл снова?
кнопки и переменные
Добавлено: 02 фев 2020, 02:02
support
Но можно ещё проще
Серво.PNG
Отправлено спустя 2 минуты 7 секунд:
Да и вообще можно отказатся от R тригеров. Счетные входы счетчика и так работают по переднему фронту.
Отправлено спустя 2 минуты 34 секунды:
Серво1.PNG
кнопки и переменные
Добавлено: 05 фев 2020, 01:15
shura2
А как сделать, что бы, к примеру, кнопка "90град" не "нажималась" повторно, пока выполняется поворот?
кнопки и переменные
Добавлено: 05 фев 2020, 05:50
edyapd
shura2 писал(а): 05 фев 2020, 01:15
А как сделать, что бы, к примеру, кнопка "90град" не "нажималась" повторно, пока выполняется поворот?
Для этого надо ввести обратную связь. В своём устройстве, делаете концевик, а выход с него заводите в проект.
А там уже в зависимости от логики схема "И" или "RS-тригер".
Просто сами подумайте, как программа может узнать, повернулась Серва или ещё нет?