Многовыходной переключатель пропускает первый светодиод
Многовыходной переключатель пропускает первый светодиод
Приветствую уважаемые форумчане!
Решил по тихоньку осваивать Arduino, с FLProg это происходит на много приятнее и проще (но не всегда).
Решил сделать для примера бегущий огонь из пяти светодиодов:генератор, счетчик, переключатель. Вроде бы ничего сложного, но споткнулся на одном неприятном моменте: при запуске программы свечение начинается со второго светодиода. Следующие циклы-как положено, первый участвует.
Подскажите пожалуйста, что я не учел в столь простой схеме?
Решил по тихоньку осваивать Arduino, с FLProg это происходит на много приятнее и проще (но не всегда).
Решил сделать для примера бегущий огонь из пяти светодиодов:генератор, счетчик, переключатель. Вроде бы ничего сложного, но споткнулся на одном неприятном моменте: при запуске программы свечение начинается со второго светодиода. Следующие циклы-как положено, первый участвует.
Подскажите пожалуйста, что я не учел в столь простой схеме?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Многовыходной переключатель пропускает первый светодиод
Обратите внимание на последовательность выполнения блоков.
Пока кнопка не нажата на выходе из счетчика "0", соответственно активен выход "0" переключателя. Но на его вход подается "0" из переменной и он не горит.
Когда нажали кнопку, переменная стала "1", но переключатель опрашивает вход после того, как счетчик по переднему фронту с генератора начал счет...
Думаю поняли.
[spoiler] [/spoiler]
Пока кнопка не нажата на выходе из счетчика "0", соответственно активен выход "0" переключателя. Но на его вход подается "0" из переменной и он не горит.
Когда нажали кнопку, переменная стала "1", но переключатель опрашивает вход после того, как счетчик по переднему фронту с генератора начал счет...
Думаю поняли.
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Лейтенант
- Сообщения: 556
- Зарегистрирован: 04 июн 2022, 04:14
- Имя: Михаил
- Благодарил (а): 5 раз
- Поблагодарили: 9 раз
Многовыходной переключатель пропускает первый светодиод
Можно либо считать от -1, либо сдвинуть выходы дешифратора, либо между счётчиком и дешифратором поставить блок вычитания единицы.
Многовыходной переключатель пропускает первый светодиод
По входу поставил предустановку константу -1 и теперь как положено!
Три дня сидел все ни как допереть не мог.
Спасибо за помощь!
Три дня сидел все ни как допереть не мог.


Спасибо за помощь!

- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Многовыходной переключатель пропускает первый светодиод
[ref]ertos84[/ref],
Как вариант поставить между генератором и счетчиком Ftrig
Как вариант поставить между генератором и счетчиком Ftrig
Win10-64, FLProg (portable)
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Многовыходной переключатель пропускает первый светодиод
[ref]ertos84[/ref], [ref=#ff8000]rw6cm[/ref], Или переменную между счетчиком и м.переключателем.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
- Dryundel
- Полковник
- Сообщения: 2415
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
Многовыходной переключатель пропускает первый светодиод
Отличное начинание!ertos84 писал(а): 18 фев 2023, 17:35 Решил по тихоньку осваивать Arduino, с FLProg это происходит на много приятнее и проще
Вот вам еще два примера бегущего огня на дешифраторе и на битовых операциях.
Когда разберетесь как работают оба, можно будет зачесть подъем на целую ступеньку.

[spoiler=Примеры бегущего огня] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Многовыходной переключатель пропускает первый светодиод
Спасибо за такие примеры! Обязательно разберусь, но как только закончу начатое!Dryundel писал(а): 20 фев 2023, 17:08 Отличное начинание!
Вот вам еще два примера бегущего огня на дешифраторе и на битовых операциях.
Когда разберетесь как работают оба, можно будет зачесть подъем на целую ступеньку.
Мотивацией к изучение послужил сломанный детский аппарат "Хватайка". Приобрел в Детском Мире за символическую плату как "неисправный". Так как с паяльником на "Ты", думал обойдусь малой кровью, в надежде на какой нибудь пустяк. Но не тут то было, на плате управления МК (капля) кипела как утюг. Вот тут и пришла в голову идея переделать под управлением Ардуино. В голове сложил картинку последовательности:
в режиме ожидания - бегущий огонек из светодиодов (на верхней части) и бегущие по кругу сегменты на двух разрядном индикаторе (с ОК).
кинул монетку - режим ожидания отключается отсчитывается таймер в 60 секунд, за которые нужно успеть достать игрушку по нажатию кнопки. Ну и в идеале чтобы музыка проигрывалась, когда идет обратный отсчет (на алиэкспресе присмотрел MP3 модуль).
Так как придется задействовать много портов ввода, вывода (кнопки джойстиков, выходы на моторы, концевики, светодиоды и двухразрядный семисегментный индикатор) решил разделить это на две платы Ардуино (Uno и Nano) соединенные по UART.
Задумку буду осуществлять до последнего, так как дочка уже давно мечтала об такой игрушке, да и для саморазвития только плюс (уже составил план дальнейших изобретений).
Но чем дальше в лес тем больше вопросов, на которые я думаю вы мне дадите правильное направление, по крайней мере надеюсь на это:)
С бегущим огнем разобрался благодаря вашим подсказкам. Также сделал бегущий огонь на индикаторе (по кругу) но ни как не могу заставить его работать в цикле (по аналогии со светодиодами).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Многовыходной переключатель пропускает первый светодиод
Посмотрел Видео про эту игрушку,ertos84 писал(а): 21 фев 2023, 05:45 С бегущим огнем разобрался благодаря вашим подсказкам. Также сделал бегущий огонь на индикаторе (по кругу) но ни как не могу заставить его работать в цикле (по аналогии со светодиодами).
но что то там не увидел индикатор по кругу, да и сверху диоды не только в лево/право бегают.
Да и на индикатор по хорошему дешифратор бы поставить
Win10-64, FLProg (portable)
Многовыходной переключатель пропускает первый светодиод
У меня цели нет полностью сделать копию заводской модели. Решил что в режиме ожидания круговое свечение двухразрядного семисегментного индикатора будет смотреться интересно.rw6cm писал(а): 21 фев 2023, 09:56 Посмотрел Видео про эту игрушку,
но что то там не увидел индикатор по кругу, да и сверху диоды не только в лево/право бегают.
А с дешифратором можно реализовать последовательное включение сегментов в нужные разряды?
- Dryundel
- Полковник
- Сообщения: 2415
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
Многовыходной переключатель пропускает первый светодиод
Последовательное можно, но по одному. Одновременно свечение двух, трех... нельзя. А вот с помощью битовых операций можно что угодно. Возможна любая последовательность и сочетание.ertos84 писал(а): 21 фев 2023, 05:45 А с дешифратором можно реализовать последовательное включение сегментов в нужные разряды?
Изучайте примеры.

-
- Лейтенант
- Сообщения: 556
- Зарегистрирован: 04 июн 2022, 04:14
- Имя: Михаил
- Благодарил (а): 5 раз
- Поблагодарили: 9 раз
Многовыходной переключатель пропускает первый светодиод
Если поставить на выходах дешифратора блоки ИЛИ и последовательно входы завести, то можно включать светодиоды парами. Своего рода аналог диодной развязки.
1|2=d1&d2
2|3=d2&d3
3|4=d3&d4
etc
Ну или использовать командоаппарат и тогда можно вообще в произвольной последовательности диоды включать.
- Dryundel
- Полковник
- Сообщения: 2415
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
Многовыходной переключатель пропускает первый светодиод
Тяжеловат он в понимании логики для новичка. Да и для моргания светодиодов избыточен.WildCat писал(а): 21 фев 2023, 12:41 Ну или использовать командоаппарат и тогда можно вообще в произвольной последовательности диоды включать.
Ок давайте знакомиться с битами.

Это совсем не низкоуровневое программирование, как считают некоторые. На самом деле все просто до банальности.
Сделаем пару-тройку примеров и все станет понятно.
Итак
Есть у нас переменная типа Byte. Это 8 бит. Вот ими то и будем оперировать.
Записав к примеру число 48 в бинарном виде получаем b00110000
Штатный блок Byte->Bits при подаче на вход 48 выдаст логическую единицу на выходах Bit-4 и Bit-5
(Биты считаются с нулевого и справа налево)
Вот и вся наука.
Подавая на вход блока Byte->Bits значения от 0 до 255, получаем разное сочетание единиц и нулей на выходах.
[spoiler=Вывод рандомного числа на светодиоды] [/spoiler]
[spoiler=Вывод счета от 0 до 255 на диоды] [/spoiler]
.
Есть некоторая сложность в переводе десятичного числа в бинарный формат. НО! FLProg легко работает и с бинарным форматом.
На входы блоков и в константы переменных можно вводить b00110000 и все будет точно так же работать.
А если выводить разные числа последовательно, то можно получить абсолютно любой эффект. При этом всё будет достаточно наглядно.
b00000000
b00000001
b00000010
b00000100
b00001000
b00010000
b00100000
b01000000
b10000000
Светящийся светодиод "побежит" именно так, как единица в этой последовательности.
Единственный момент, это то, что при вводе бинарного числа, нули слева удалятся. Точно так же как и в десятичном формате.
[spoiler=Эффект с последовательным вводом] [/spoiler]
.
А огромный блок с большим количеством входов можно заменить на блок "Получение элемента массива", создав в нем всю последовательность.
[spoiler=Прячем программу эффектов в массив] [/spoiler]
.
Конечно же будет лучше, если сохранить такой массив в EEPROM, но штатных средств для этого нет.
Однако можно воспользоваться штатной записью и чтением значений в EEPROM, выполнив запись один раз при старте контроллера.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Многовыходной переключатель пропускает первый светодиод
На самом деле ничего сложного. Теория в полне понятна. Тем более с такими примерами. Спасибо громадноеDryundel писал(а): 21 фев 2023, 15:49 Ок давайте знакомиться с битами.
Это совсем не низкоуровневое программирование, как считают некоторые. На самом деле все просто до банальности.
Сделаем пару-тройку примеров и все станет понятно.

Если взять семисегментный двухразрядный индикатор при зажигании сегментов вопросов вообще нет, тем более за сегодняшний день открыл для себя много методов, а вот с разрядами все ни как не могу вникнуть. Это будет являться по сути динамической индикацией.
И нужно подавать 0 на катод, либо первого или второго разряда, в определенный момент времени.
Отправлено спустя 9 минут 25 секунд:
Ааа, вроде понял. Все также игра с битами! Проведу эксперимент и обязательно отпишусь о результате. На самом деле с битами можно творить чудеса

Многовыходной переключатель пропускает первый светодиод
На данный момент перешел к следующему шагу, а именно иллюминация в режиме игры. Первая часть программы, иллюминация светодиодов, работает как положено. Нажал - горит, еще раз нажал - погасло. Вторая часть -нажал 60 секунд обратный отсчет. При повторном нажатии - дисплей должен отключиться. Так вот чтобы он отключался от повторного нажатия ни как не получается. Подскажите где я сделал не правильно или не доделал.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2415
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
Многовыходной переключатель пропускает первый светодиод
[ref]ertos84[/ref], у вас индикаторы с общим катодом. Для того, чтобы все погасло надо на катоды подать "плюс". Т.е. надо на выходы которые идут на катоды подать логическую единицу.
Достаточно подсказки?
Достаточно подсказки?
Многовыходной переключатель пропускает первый светодиод
Я понимаю что надо повесить единицу на катоды, чтобы погасить индикаторы. Не могу допетрить какой блок использовать.
- Dryundel
- Полковник
- Сообщения: 2415
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
Многовыходной переключатель пропускает первый светодиод
Типа так. И на второй аналогично.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя