счетчик не досчитывает количество импульсов за промежуток времени
счетчик не досчитывает количество импульсов за промежуток времени
допустим в меню пусть будет 5 сек - это время за которое лампочка должна загореться плавно
принцып такой что эти 5 сек а далее 5000 мс подаются на задержку в течении которой происходит работа генератора
а также в щетчик как подщет 5000 импульсов
а так же в маштабирование как 5000 ступенек на шим
так как они все взаимосвзяны одной настройкой
но при подаче сигнала лампа загорается гораздо дольше чем 5 сек
принцып такой что эти 5 сек а далее 5000 мс подаются на задержку в течении которой происходит работа генератора
а также в щетчик как подщет 5000 импульсов
а так же в маштабирование как 5000 ступенек на шим
так как они все взаимосвзяны одной настройкой
но при подаче сигнала лампа загорается гораздо дольше чем 5 сек
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Капитан
- Сообщения: 708
- Зарегистрирован: 06 фев 2016, 11:01
- Откуда: Ярославль
- Имя: Сергей
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
счетчик не досчитывает количество импульсов за промежуток времени
Подавать значения типа float туда, где должны быть значения типа int, это, как минимум, аморально.
Для начала на 5-й плате после блока умножения поставьте блок преобразования float в int.
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
счетчик не досчитывает количество импульсов за промежуток времени
[ref]Naladchik[/ref], попробовал ничего не поменялось
шим как и раньше за 5 сек успевает добежать только до 80
шим как и раньше за 5 сек успевает добежать только до 80
-
- Капитан
- Сообщения: 708
- Зарегистрирован: 06 фев 2016, 11:01
- Откуда: Ярославль
- Имя: Сергей
счетчик не досчитывает количество импульсов за промежуток времени
Может... Профиль то не настроен... Возможно из братской Молдавской ССР, но это не значит что можно проявлять такое неуважение к русскому языку.
В названии темы какими-то потугами смог написать "счетчик"...
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
счетчик не досчитывает количество импульсов за промежуток времени
Вы можете сами ответить на многие вопросы по временным интервалам в своих программах, если разберетесь хотя бы с двумя темами - c циклом выполнения программы и с функцией millis().
Но если Вам лениво... попробую как понимаю сам, "на пальцах".
Допустим в программе, помимо прочих функций, мы хотим генерировать сигналы с периодом 1мс и считать их. Как только подсчитанное кол-во будет равно заданному, выполнить некое действие. ̶Е̶с̶л̶и̶ ̶В̶ы̶ ̶п̶о̶с̶м̶о̶т̶р̶и̶т̶е̶ ̶п̶о̶ ̶р̶е̶з̶у̶л̶ь̶т̶а̶т̶у̶ ̶п̶е̶р̶е̶в̶о̶д̶а̶ ̶В̶а̶ш̶е̶й̶ ̶п̶р̶о̶г̶р̶а̶м̶м̶ы̶ ̶в̶ ̶I̶D̶E̶,̶ ̶к̶а̶к̶ ̶р̶е̶а̶л̶и̶з̶о̶в̶а̶н̶а̶ ̶ф̶у̶н̶к̶ц̶и̶я̶ ̶_̶i̶s̶T̶i̶m̶e̶r̶, хотя о чем это я...
И тут оказывается (внезапно так), что время выполнения ВСЕЙ программы за один цикл, составляет допустим 50мс (экраны, энкодеры, сложная математика и прочая "неторопливая" хотелка). В итоге - генератор "генерит" с реальным периодом в лучшем случае 100мс (цикл на 1 + цикл на 0)...
P.S.Темой не владею. Чисто выводы из "накуренного"

Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Капитан
- Сообщения: 708
- Зарегистрирован: 06 фев 2016, 11:01
- Откуда: Ярославль
- Имя: Сергей
счетчик не досчитывает количество импульсов за промежуток времени
[ref]Ingwar[/ref], Человеку некогда вникать в это, нет времени использовать поиск и читать темы, хватает времени только на создание тем по своим вопросам и писать что базовые блоки не работают. Увы, но скорее всего, Ваш пост ему бесполезен...
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
счетчик не досчитывает количество импульсов за промежуток времени
Все это звенья одной цепочки.Di123 писал(а): 16 авг 2020, 20:01 счетчик не досчитывает количество импульсов за промежуток времени
---------
но при подаче сигнала лампа загорается гораздо дольше чем 5 сек
----------
Naladchik, попробовал ничего не поменялось
шим как и раньше за 5 сек успевает добежать только до 80
И Вы снова столкнулись с проблемой длительности цикла контроллера.
Однажды я уже обращал ваше внимание на подобный факт.
Начнем с того, что генератор не может работать с частотой превышающей частоту циклов контроллера при выполнении программы.
Прочитайте эту фразу несколько раз для осмысления.
От того и проблема.
Таймер который Вы настраиваете на 5000 мс справляется с задачей т.к. основан на millis и не зависит от длительности цикла программы.
А генератор может выдавать максимум одну операцию за цикл, один переход из 1 в 0 или наоборот.
Соответственно если у вас время цикла к примеру 1мс то и длину импульса симметричный мультивибратор выдаст 1мс. Столько же будет и промежуток. А это в два раза больше чем вами задано.
Поищите информацию о тайминге операций и может быть, все будет более понятно.
Отправлено спустя 18 минут 31 секунду:
Как выход из ситуации, могу предложить следующее:
1. Секунды из меню умножайте не на 1000, а на 100
2. Длительность импульса генератора увеличьте в 10 раз не 500мкс а 5мс
Есть вероятность что заработает.

Отправлено спустя 4 минуты 17 секунд:
И еще. Хотите плавного включения/выключения - посмотрите вот эти блоки
Отправлено спустя 6 минут 46 секунд:
И очень Вас прошу, пользуйтесь хотя бы проверкой орфографии. Ну правда, обидно за великий и могучий.
- ingener
- Лейтенант
- Сообщения: 580
- Зарегистрирован: 14 окт 2018, 00:26
- Имя: Андрей
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
счетчик не досчитывает количество импульсов за промежуток времени
а зачем использовать два отдельных генератора на счетчик? Не рациональнее ли использовать один + переключать направление счета
У вас нет необходимых прав для просмотра вложений в этом сообщении.
счетчик не досчитывает количество импульсов за промежуток времени
значит даже если я поставлю вместо генератора внешний модуль часов который будет использовать свои независимые ресурсы то ардуина будет принимать уже стабильный готовый результат в момент прихода цикла работы счетчика но все равно не будет успевать вести подсчет их из за длинного цикла программы
почему тогда таймер задержки основан на других принципахDryundel писал(а): 16 авг 2020, 21:54 А генератор может выдавать максимум одну операцию за цикл, один переход из 1 в 0 или наоборот.
ведь на него не влияют циклы программы
ему сказано через 5 сек отключится и он отключается
тогда можно было и генератор по такому принципу сделать что бы он брал данные из ардуино как таймер
а не выдавал их по мере прихода цикла разрешения работы для него
это я там учол изначально 0,5мкс + 0,5мксDryundel писал(а): 16 авг 2020, 21:54 Соответственно если у вас время цикла к примеру 1мс то и длину импульса симметричный мультивибратор выдаст 1мс. Столько же будет и промежуток. А это в два раза больше чем вами задано.
[ref]ingener[/ref], я предположил что раз они работают в противофазе то и влияние на загруженность у него нету раз один не работает
но оказывается что работает генератор что не работает ресурсы в цикле программы он забирает одинаковые
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
счетчик не досчитывает количество импульсов за промежуток времени
Походу диалог Вам вести гораздо легче, чем изучить вопрос...Di123 писал(а): 17 авг 2020, 04:31 почему тогда таймер задержки основан на других принципах
ведь на него не влияют циклы программы



Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
счетчик не досчитывает количество импульсов за промежуток времени
переделал по новой
сделал что бы счетчик и генератор автоматически подстраивались сами под выставленное значение в меню
но все это выходит на заданный режим только после 38 сек но стоит убрать компиляцию всех дисплеев как все работает идеально даже при 1 сек в меню плавно достигает 1023
но без дисплея значения не выставить и там потом еще будут значение другие на выставления
в общем дисплей нужен
сделал что бы счетчик и генератор автоматически подстраивались сами под выставленное значение в меню
но все это выходит на заданный режим только после 38 сек но стоит убрать компиляцию всех дисплеев как все работает идеально даже при 1 сек в меню плавно достигает 1023
но без дисплея значения не выставить и там потом еще будут значение другие на выставления
в общем дисплей нужен
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
счетчик не досчитывает количество импульсов за промежуток времени
Не надо так нервничать, коллега.

Вариантов два. Или придет понимание, или же все это не на долго.
Творчество, это конечно хорошо. Но велосипед давно уже изобретен. Крутить педали ушами, по меньшей мере не удобно.Di123 писал(а): 17 авг 2020, 07:49 переделал по новой
сделал что бы счетчик и генератор автоматически подстраивались сами под выставленное значение в меню...
---------
но без дисплея значения не выставить и там потом еще будут значение другие на выставления
в общем дисплей нужен
Научить Вас - задачка еще та.
Поэтому предлагаю пойти коротким путем. Опишите задачу - нарисуем Вам схему. Так всем проще будет.
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
счетчик не досчитывает количество импульсов за промежуток времени
И генератор и таймер основаны на одних и тех же принципах. Можно даже сказать что таймер задержки это тот же генератор-одновибратор. Есть некоторые различия, но это уже тонкости.Di123 писал(а): 17 авг 2020, 04:31 Dryundel писал(а): ↑
16.08.2020{, 21:54}
А генератор может выдавать максимум одну операцию за цикл, один переход из 1 в 0 или наоборот.
почему тогда таймер задержки основан на других принципах
ведь на него не влияют циклы программы
ему сказано через 5 сек отключится и он отключается
Суть в том, что и тот и другой ориентируются на независимый временной таймер контроллера, который отсчитывает время от начала запуска (подачи питания).
Логика работы такая:
Таймер задержки запоминает время его запуска опираясь на независимый таймер и каждый цикл выполнения программы сравнивает это запомненное время с текущим. Когда разница между текущим временем и запомненным превысит заданные 5000мс, таймер задержки и срабатывает. Однако таймер задержки может сработать только тогда, когда очередь на его выполнении в цикле программы дойдет до него. Поэтому нельзя однозначно сказать, что он сработал четко через 5000мс. Если время цикла составляет к примеру 1мс, то сработка может превысить заданное время на время выполнения цикла, т.е. 5000+1мс. В данном случае это не сильно заметно, т.к. погрешность ничтожна по сравнению с заданным временем.
Генератор работает точно так же, опираясь на время независимого таймера. Соответственно если время импульса в генераторе задано 0,5мс (500мкс), а погрешность из-за времени выполнения цикла составляет ту же 1мс, то и время импульса может превысить заданное на 1мс, а значит может быть в пределах от 500 до 1500 мкс. В среднем получается что генератор будет выдавать импульсы в 1000мкс т.е. один раз за цикл программы.
Поэтому в случае с генератором и могут возникать такие проблемы, т.к. погрешность относительно велика по сравнению с заданным временем импульса.
Последний раз редактировалось Dryundel 18 авг 2020, 09:53, всего редактировалось 1 раз.
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
счетчик не досчитывает количество импульсов за промежуток времени
[ref]Di123[/ref], следующая Ваша ошибка в проекте в том, что Вы пытаетесь подать на 8-битный ШИМ (0-255) 10-битное значение (0-1023). Не думаю, что в Ардуино НАНО Вы используете не стандартные настройки ШИМ.
На сколько я понимаю, Вы хотите добиться плавного включения освещения и минимальное настраиваемое время этой плавности 1 секунда. А значит максимально для изменения значения подаваемого на ШИМ потребуется 255 "ступенек" за 1 секунду, а это примерно 4мс на ступеньку и оперировать длительностью импульса в 500мкс не имеет смысла.
Кроме того, в предыдущих постах я давал вам ссылку на эти блоки.
С использованием их схема может выглядеть примерно так:
. . Отправлено спустя 6 минут 20 секунд:
Кроме того, для правильного видимого увеличения яркости освещения, можно использовать блок вот из этой темы.
Вот так:
. . Отправлено спустя 12 минут 34 секунды:
Можно пойти и еще дальше, расширив функционал кнопки блоком из этой темы.
В этом случае по одинарному клику будет происходить плавное включение или выключение, а по двойному клику - остановка (заморозка) яркости освещения в текущий момент. Т.е. по первому одиночному клику началось плавное включение. В середине нарастания яркости кликаем дважды и нарастание останавливается. (освещение в половину мощности) Если дальше кликнуть один раз начнется плавное выключение с текущей яркости.
Схема будет такая:
. . Отправлено спустя 2 минуты 57 секунд:
Как видно, при использовании соответствующих блоков, при не значительном усложнении схемы, функционал заметно возрастает.
На сколько я понимаю, Вы хотите добиться плавного включения освещения и минимальное настраиваемое время этой плавности 1 секунда. А значит максимально для изменения значения подаваемого на ШИМ потребуется 255 "ступенек" за 1 секунду, а это примерно 4мс на ступеньку и оперировать длительностью импульса в 500мкс не имеет смысла.
Кроме того, в предыдущих постах я давал вам ссылку на эти блоки.
С использованием их схема может выглядеть примерно так:
. . Отправлено спустя 6 минут 20 секунд:
Кроме того, для правильного видимого увеличения яркости освещения, можно использовать блок вот из этой темы.
Вот так:
. . Отправлено спустя 12 минут 34 секунды:
Можно пойти и еще дальше, расширив функционал кнопки блоком из этой темы.
В этом случае по одинарному клику будет происходить плавное включение или выключение, а по двойному клику - остановка (заморозка) яркости освещения в текущий момент. Т.е. по первому одиночному клику началось плавное включение. В середине нарастания яркости кликаем дважды и нарастание останавливается. (освещение в половину мощности) Если дальше кликнуть один раз начнется плавное выключение с текущей яркости.
Схема будет такая:
. . Отправлено спустя 2 минуты 57 секунд:
Как видно, при использовании соответствующих блоков, при не значительном усложнении схемы, функционал заметно возрастает.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
счетчик не досчитывает количество импульсов за промежуток времени
да на примерах более проще разобраться
ясно почему плотер мне не рисовал идеально одинаковые графики при маленьких значениях у него макушки были немного разные
я вот закончил свой проект сравнил на плотере время все чотко
только пришлось индикатор отдать чисто под меню и не трогать его более да и собственно он посути то для него и нужен был
там блок шима на 10 бит как заявлял его писатель что он якобы все проверил и так и есть
поэтому и выбирал 1023
а так да при таких значениях и 255 достаточно
но стоит при 255 поставить 4 минуты на плавное загорание как 1 ступенька будет равна почти 1 сек
но зато теперь есть срабатывание по датчику движения плавное загорание и угасание
и так же продублировано включение кнопкой
и можно менять временные интервалы на удержание во включенном состоянии
и время на плавное вкл/выкл
и режим ночника с выбором яркости
мне только не понятно как соотносятся битность и ступеньки
допустим пишут в характеристиках 12 бит это 4096
10 бит 1024
8 бит 256
пробовал высчитать константу но она всегда разная почему то и ее нельзя применить допустим что бы посчитать 16 бит градацию
ясно почему плотер мне не рисовал идеально одинаковые графики при маленьких значениях у него макушки были немного разные
я вот закончил свой проект сравнил на плотере время все чотко
только пришлось индикатор отдать чисто под меню и не трогать его более да и собственно он посути то для него и нужен был
там блок шима на 10 бит как заявлял его писатель что он якобы все проверил и так и есть
поэтому и выбирал 1023
а так да при таких значениях и 255 достаточно
но стоит при 255 поставить 4 минуты на плавное загорание как 1 ступенька будет равна почти 1 сек
но зато теперь есть срабатывание по датчику движения плавное загорание и угасание
и так же продублировано включение кнопкой
и можно менять временные интервалы на удержание во включенном состоянии
и время на плавное вкл/выкл
и режим ночника с выбором яркости
мне только не понятно как соотносятся битность и ступеньки
допустим пишут в характеристиках 12 бит это 4096
10 бит 1024
8 бит 256
пробовал высчитать константу но она всегда разная почему то и ее нельзя применить допустим что бы посчитать 16 бит градацию
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
счетчик не досчитывает количество импульсов за промежуток времени
Ну если простым языком - Битность это количество знаков в двоичной системе.Di123 писал(а): 18 авг 2020, 11:49 мне только не понятно как соотносятся битность и ступеньки
допустим пишут в характеристиках 12 бит это 4096
10 бит 1024
8 бит 256
пробовал высчитать константу но она всегда разная почему то и ее нельзя применить допустим что бы посчитать 16 бит градацию
К примеру 4 бита это в двоичной системе числа от 0000 до 1111 что соответствует десятичной от 0 до 15 всего 16 комбинаций, 16 вариантов, 16 ступенек, 16 градаций. Это уж как удобней воспринимать.
Соответственно 16 бит это от 0000000000000000 до 1111111111111111 в двоичной системе. Если перевести в десятичную, получите и количество возможных комбинаций.
Отправлено спустя 5 минут 14 секунд:
[ref]Di123[/ref], Вам сколько лет и где учились, если не секрет?
счетчик не досчитывает количество импульсов за промежуток времени
36 лет
заканчивал железнодорожный техникум
заканчивал железнодорожный техникум
- nalnik
- Подполковник
- Сообщения: 1320
- Зарегистрирован: 14 май 2016, 17:12
- Откуда: Кисловодск
- Имя: Александр
счетчик не досчитывает количество импульсов за промежуток времени
Dryundel писал(а): 18 авг 2020, 12:22 Соответственно 16 бит это от 0000000000000000 до 1111111111111111 в двоичной системе. Если перевести в десятичную, получите и количество возможных комбинаций.
11011000000001101100000000
перевод:
тыдык тыдык ------------------ тыдык тыдык -------------
Не обижайтесь, простите - просто не удержался.

Я хочу быть добрее, но люди сами нарываются.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей