Страница 1 из 3

ШИМ на GyverPWM

Добавлено: 19 май 2021, 21:10
AlexCrane
Блоки расширенной генерации ШИМ на библиотеке GyverPWM

Поддерживаемые платформы: платы на ATmega328/168 (Arduino Nano, UNO, Pro Mini)
    GyverPWM.png
      Полное описание возможностей
      https://alexgyver.ru/gyverpwm/

      Используемые библиотеки (в блок не интегрированы, скачивать по ссылкам ниже):
      https://github.com/AlexGyver/GyverLibs/ ... verPWM.zip

      Блоки бета-версия:
      ШИМ_AlexCrane_GiverPWM_(Code_-_Professional)_28.05.2021.zip
      ШИМ_AlexCrane_GiverPWM_(Code_-_Professional)_27.06.2021.zip
      Исправления ошибок
      ШИМ_AlexCrane_GiverPWM_(Code_-_Professional)_27.10.2021.zip
      Исправление ошибок в блоке PWM_Resolution

      Обозначения:
      _|¯ - постоянная подача true, отработка по переднему фронту
      _|_ - Подача сигнала через RTrig на один цикл

      Описание входов и выходов добавлю позже если будут вопросы...

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

      ШИМ на GyverPWM

      Добавлено: 19 май 2021, 21:23
      Vuktor
      :smile152:

      ШИМ на GyverPWM

      Добавлено: 28 май 2021, 07:53
      Di123
      ошибка с блоком выдаёт
      Arduino: 1.8.13 (Windows 10), Плата:"Arduino Uno"

      C:\Users\User\AppData\Local\Temp\flprog\pr21\pr21.ino: In function 'void setup()':

      pr21:166:21: error: expected primary-expression before ')' token

      PWM_prescaler(3,);

      ^

      Несколько библиотек найдено для "OneWire.h"

      Используется: c:\PortableFLProg_7-3-4_Win64\ideV6\portable\sketchbook\libraries\OneWire

      Не используется: c:\PortableFLProg_7-3-4_Win64\ideV6\libraries\OneWire

      exit status 1

      expected primary-expression before ')' token



      Этот отчёт будет иметь больше информации с
      включенной опцией Файл -> Настройки ->
      "Показать подробный вывод во время компиляции"
      Отправлено спустя 3 минуты 47 секунд:
      1.rar
      Отправлено спустя 59 секунд:
      я так понял на дути мы подаём число из таблицы для выбора частоты ?
      2021-05-28_115256.png

      ШИМ на GyverPWM

      Добавлено: 28 май 2021, 08:57
      AlexCrane
      [ref]Di123[/ref], Спасибо за тестирование. Исправил. Качать в шапке viewtopic.php?f=89&t=7389&p=103838#p103838

      ШИМ на GyverPWM

      Добавлено: 27 июн 2021, 06:27
      Di123
      на ресолутион в паскорект на пине 3 ничего не работает

      2021-06-27_102510.png

      ШИМ на GyverPWM

      Добавлено: 27 июн 2021, 10:43
      дрон
      Здравствуйте Александр и форумчане, вот бы еще блок для серво на библиотеке SERVOSMOOTH(https://alexgyver.ru/servosmooth/ ). Прошу прощения если пишу не в той теме.

      ШИМ на GyverPWM

      Добавлено: 27 июн 2021, 11:48
      Di123
      [ref]av[/ref], запятая не помогает

      ШИМ на GyverPWM

      Добавлено: 27 июн 2021, 20:09
      AlexCrane
      Di123 писал(а): 27 июн 2021, 06:27 на ресолутион в паскорект на пине 3 ничего не работает
      Исправил
      av писал(а): 27 июн 2021, 10:00 Обычная ошибка (торопимся при создании блока).
      В данном случае да. Но всплыли еще некоторые особенности редактора блоков, не нравятся ему некоторые слова в именах входов ...

      ШИМ на GyverPWM

      Добавлено: 18 июл 2021, 13:01
      Di123
      в плескареле наблюдается при плавном нарастании шим на светодиоде некий всплеск яркости под максимум в течении около милисикунды такая некая вспышка на 10 битах а на 8 битах всё норм и при убывании она же повторятся снова

      2021-07-18_164701.png

      меняю блок на ресолютион выставляю теже настройки и всё норм на 10 битах а так же на 8 и 12 всё плавно загорается и гаснет как надо

      2021-07-18_164719.png

      меняю блоки обратно и опять вспышка на плескареле
      возвращаю обратно ресолютион всё норм
      :smile37:
      2.mp4

      ШИМ на GyverPWM

      Добавлено: 18 июл 2021, 13:24
      AlexCrane
      [ref]Di123[/ref], Может дело все-таки в проекте, можно посмотреть?

      ШИМ на GyverPWM

      Добавлено: 18 июл 2021, 13:36
      Di123
      но в проекте ничего не меняется кроме вашего блоков

      1.rar

      ШИМ на GyverPWM

      Добавлено: 15 сен 2021, 11:50
      ingener
      Почему-то не добавляется библиотека в скетче (добавить ZIP библиотеку) - выдает текст в IDE, в списке она не появляется

      Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: MALFORMED
      at java.util.zip.ZipCoder.toString(ZipCoder.java:58)
      at java.util.zip.ZipFile.getZipEntry(ZipFile.java:583)
      at java.util.zip.ZipFile.access$900(ZipFile.java:60)
      at java.util.zip.ZipFile$ZipEntryIterator.next(ZipFile.java:539)
      at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:514)
      at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:495)
      at processing.app.tools.ZipDeflater.deflate(ZipDeflater.java:41)
      at processing.app.Base.handleAddLibrary(Base.java:2414)
      at processing.app.Base$6.actionPerformed(Base.java:1124)
      at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
      at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
      at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
      at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
      at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
      at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:842)
      at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:886)
      at java.awt.Component.processMouseEvent(Component.java:6539)
      at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
      at java.awt.Component.processEvent(Component.java:6304)
      at java.awt.Container.processEvent(Container.java:2239)
      at java.awt.Component.dispatchEventImpl(Component.java:4889)
      at java.awt.Container.dispatchEventImpl(Container.java:2297)
      at java.awt.Component.dispatchEvent(Component.java:4711)
      at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
      at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
      at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
      at java.awt.Container.dispatchEventImpl(Container.java:2283)
      at java.awt.Window.dispatchEventImpl(Window.java:2746)
      at java.awt.Component.dispatchEvent(Component.java:4711)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
      at java.awt.EventQueue.access$500(EventQueue.java:97)
      at java.awt.EventQueue$3.run(EventQueue.java:709)
      at java.awt.EventQueue$3.run(EventQueue.java:703)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
      at java.awt.EventQueue$4.run(EventQueue.java:733)
      at java.awt.EventQueue$4.run(EventQueue.java:731)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

      ШИМ на GyverPWM

      Добавлено: 27 окт 2021, 22:37
      AlexCrane
      Исправил блоки в шапке.

      ШИМ на GyverPWM

      Добавлено: 15 ноя 2021, 17:11
      Di123
      2021-11-15_203630.png
      конфликт.flp

      ваш блок невыдаёт шим если использовать вачдог

      ШИМ на GyverPWM

      Добавлено: 15 ноя 2021, 18:05
      AlexCrane
      [ref]Di123[/ref], А вот тут непонятно чей баг, похоже на баг редактора.
      Лечится легко. Я давно для себя взял за правило кусок кода в новом редакторе заканчивать переводом строки (Enter), иначе может при компиляции объединить строки кода в одну строку (и иногда не правильно, как в этом случае).
      Так что подправьте блок WatchDog и будет все работать.

      ШИМ на GyverPWM

      Добавлено: 15 ноя 2021, 18:14
      Di123
      но я в нём ничего не понимаю :)
      для меня это набор букв и цыфр не более
      даже еслиб он был написан на китайском я бы не возмутился

      Отправлено спустя 24 секунды:
      ладно поищю автора

      ШИМ на GyverPWM

      Добавлено: 15 ноя 2021, 18:16
      AlexCrane
      [ref]Di123[/ref], Подправил блок WatchDog
      не конфликт v2.flp

      ШИМ на GyverPWM

      Добавлено: 15 ноя 2021, 20:08
      aidar_i
      AlexCrane писал(а): 15 ноя 2021, 18:05 А вот тут непонятно чей баг, похоже на баг редактора.
      Автор писал , это не баг, а фича!

      Отправлено спустя 2 минуты 18 секунд:
      Di123 писал(а): 18 июл 2021, 13:01 в плескареле наблюдается при плавном нарастании шим на светодиоде некий всплеск яркости под максимум в течении около милисикунды такая некая вспышка на 10 битах а на 8 битах всё норм и при убывании она же повторятся снова
      Поставьте уарт, посмотрите не на 255 вспышка?

      ШИМ на GyverPWM

      Добавлено: 15 ноя 2021, 20:35
      Di123
      [ref=#000080]aidar_i[/ref], верно происходит на 255
      на осцылографе это выглядит как пропуск импульсов с удержанием единицы на выходе

      2021-11-16 00-26-42.JPG
      притом чем меньше ускорение допустим раз в секунду тем он намного дольше горит на максимуме

      ШИМ на GyverPWM

      Добавлено: 15 ноя 2021, 22:00
      aidar_i
      У Гувера есть в библиотеке исправление этой ошибки (или нет?), это происходит, потому что в библиотеке Ардуино прописано (8 бит) :

      Код: Выделить всё

      void analogWrite(uint8_t pin, int val) {
      pinMode(pin, OUTPUT);
      	if (val == 0)
      	{
      		digitalWrite(pin, LOW);
      	}
      	else if (val == 255)
      	{
      		digitalWrite(pin, HIGH);
      	}
      	........
      	
      А Вы используете 10 бит.
      Нужно просто прописать на выходе если =255 то выход равно 256, те проскакиваем это или используем ШИМ без обращения к портам с помощью библиотек Ардуино (не используйте analogWrite) .
      PS. У него не нашел исправление в библиотеке.
      В других блоках он обращается напрямую к портам.