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

ШИМ на GyverPWM

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

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

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

      Блоки бета-версия: Исправления ошибок Исправление ошибок в блоке PWM_Resolution

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

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

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

      ШИМ на GyverPWM

      Добавлено: 19.05.2021{, 21:23}
      Vuktor
      :smile152:

      ШИМ на GyverPWM

      Добавлено: 28.05.2021{, 07:48}
      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
      (255.44 КБ) 46 скачиваний
      Отправлено спустя 59 секунд:
      я так понял на дути мы подаём число из таблицы для выбора частоты ?
      2021-05-28_115256.png
      2021-05-28_115256.png (869 байт) 2144 просмотра

      ШИМ на GyverPWM

      Добавлено: 28.05.2021{, 08:57}
      AlexCrane
      Di123, Спасибо за тестирование. Исправил. Качать в шапке viewtopic.php?f=89&t=7389&p=103838#p103838

      ШИМ на GyverPWM

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

      2021-06-27_102510.png

      ШИМ на GyverPWM

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

      ШИМ на GyverPWM

      Добавлено: 27.06.2021{, 11:48}
      Di123
      av, запятая не помогает

      ШИМ на GyverPWM

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

      ШИМ на GyverPWM

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

      2021-07-18_164701.png
      2021-07-18_164701.png (10.99 КБ) 1963 просмотра

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

      2021-07-18_164719.png
      2021-07-18_164719.png (10.55 КБ) 1963 просмотра

      меняю блоки обратно и опять вспышка на плескареле
      возвращаю обратно ресолютион всё норм
      :smile37:
      2.mp4
      (3.95 МБ) 58 скачиваний

      ШИМ на GyverPWM

      Добавлено: 18.07.2021{, 13:24}
      AlexCrane
      Di123, Может дело все-таки в проекте, можно посмотреть?

      ШИМ на GyverPWM

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

      1.rar
      (263.94 КБ) 47 скачиваний

      ШИМ на GyverPWM

      Добавлено: 15.09.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.10.2021{, 22:37}
      AlexCrane
      Исправил блоки в шапке.

      ШИМ на GyverPWM

      Добавлено: 15.11.2021{, 17:11}
      Di123
      2021-11-15_203630.png
      2021-11-15_203630.png (1.5 КБ) 1706 просмотров
      конфликт.flp
      (6.96 МБ) 35 скачиваний

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

      ШИМ на GyverPWM

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

      ШИМ на GyverPWM

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

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

      ШИМ на GyverPWM

      Добавлено: 15.11.2021{, 18:16}
      AlexCrane
      Di123, Подправил блок WatchDog
      не конфликт v2.flp
      (6.89 МБ) 55 скачиваний

      ШИМ на GyverPWM

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

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

      ШИМ на GyverPWM

      Добавлено: 15.11.2021{, 20:35}
      Di123
      aidar_i, верно происходит на 255
      на осцылографе это выглядит как пропуск импульсов с удержанием единицы на выходе

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

      ШИМ на GyverPWM

      Добавлено: 15.11.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. У него не нашел исправление в библиотеке.
      В других блоках он обращается напрямую к портам.