Страница 1 из 2
ШИМ на GyverPWM
Добавлено: 19.05.2021{, 21:10}
AlexCrane
Блоки расширенной генерации ШИМ на библиотеке GyverPWM
Поддерживаемые платформы: платы на ATmega328/168 (Arduino Nano, UNO, Pro Mini)
- 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
ШИМ на 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 (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 ничего не работает
ШИМ на 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 (10.99 КБ) 1963 просмотра
меняю блок на ресолютион выставляю теже настройки и всё норм на 10 битах а так же на 8 и 12 всё плавно загорается и гаснет как надо
- 2021-07-18_164719.png (10.55 КБ) 1963 просмотра
меняю блоки обратно и опять вспышка на плескареле
возвращаю обратно ресолютион всё норм
- 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 (1.5 КБ) 1706 просмотров
ваш блок невыдаёт шим если использовать вачдог
ШИМ на 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
ШИМ на 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
на осцылографе это выглядит как пропуск импульсов с удержанием единицы на выходе
притом чем меньше ускорение допустим раз в секунду тем он намного дольше горит на максимуме
ШИМ на 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. У него не нашел исправление в библиотеке.
В других блоках он обращается напрямую к портам.