{"id":20330170,"url":"https://github.com/octaprog7/pca9685","last_synced_at":"2026-05-12T19:15:40.364Z","repository":{"id":217652961,"uuid":"744444828","full_name":"octaprog7/pca9685","owner":"octaprog7","description":"Модуль MicroPython для управления 16-ти канальным ШИМ контроллером, PCA9685.","archived":false,"fork":false,"pushed_at":"2024-02-24T10:20:50.000Z","size":1701,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-14T15:19:51.170Z","etag":null,"topics":["i2c","led","micropython","pwm"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/octaprog7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-01-17T10:09:59.000Z","updated_at":"2024-01-17T10:24:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"63614ae8-1f12-4277-ad32-6b728de5609f","html_url":"https://github.com/octaprog7/pca9685","commit_stats":null,"previous_names":["octaprog7/pca9685"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octaprog7%2Fpca9685","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octaprog7%2Fpca9685/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octaprog7%2Fpca9685/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octaprog7%2Fpca9685/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/octaprog7","download_url":"https://codeload.github.com/octaprog7/pca9685/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241844939,"owners_count":20029750,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["i2c","led","micropython","pwm"],"created_at":"2024-11-14T20:15:19.861Z","updated_at":"2026-05-12T19:15:35.320Z","avatar_url":"https://github.com/octaprog7.png","language":"Python","funding_links":[],"categories":["Libraries"],"sub_categories":["Motion"],"readme":"Модуль MicroPython для управления 16-ти канальным ШИМ контроллером, PCA9685. В дальнейшем контроллер!\nКонтроллер предназначен для управления СветоИзлучающими Диодами (СИД) или другими нагрузками, управляемыми ШИМ.\n\n## Шина I2C\nПросто подключите контакты (VCC, GND, SDA, SCL) платы контроллера к соответствующим контактам MicroPython платы, \nESP или любой другой с залитой прошивкой MicroPython! Вывод OE, платы контроллера, можно никуда не подключать. \nНа плате он подключен к шине GND через резистор 10 КОм, поэтому выходные каскады контроллера ШИМ включены постоянно.\nВы можете управлять ими, задействовав свободный GPIO MicroPython платы, настроив его, как ВЫХОД!\n\n## Адрес датчика\nКонтроллер доступен по широкому диапазону адресов на шине I2C в диапазоне 0x40..0x7F, с некоторыми исключениями.\nАдрес можно настроить перемычками на самой плате контроллера! \n\n## Питание\nНапряжение питания PCA9685 от 2,3 В до 5,5 В!\n\n## Загрузка ПО в плату\nЗагрузите прошивку micropython на плату NANO(ESP и т. д.), а затем файлы: main.py, pca9685mod.py и папку sensor_pack полностью!\nЗатем откройте main.py в своей IDE и запустите/выполните его.\n\n# Подключение нагрузки к выходам каналов\nВ случае подключения СИД к выходам платы контроллера, всегда используйте двух контактный разьем дополнительного питания, \nпоскольку общий ток до 16-ти СИД будет уже достаточным, чтобы влиять на питание micropython платы. Допустим, вы подключили 16 СИД.\nТокоограничивающий резистор расчитали на ток 5 мА. Итого: 16x5=80 мА дополнительной нагрузки на стабилизатор напряжения MicroPython платы!\nПоэтому, в таком случае, используйте линию +5V_USB. На нее ставьте П-образный ФНЧ, типа C-L-C. После ФНЧ ставьте пару конденсаторов в ||, \nэлектролит на 33-100 мкФ и керамический на 10 нФ. Напряжение с фильтра подаете на токоограничивающие резисторы, которые подключены к АНОДАМ СИД.\nКатоды СИД подключаете к выходам каналов ШИМ, платы контроллера. Выходы должны быть настроены на схему с открытым стоком!!!\nБолее 5 мА, ток через СИД делать не желательно. Если вам нужен ток, через СИД более 5 мА, тогда вам нужен дополнительный мощный драйвер,\nвключенный между выходом канала ШИМ и мощным СИД или любой другой нагрузкой!!! В этом случае, открытый сток вам не нужен, используйте выход по схеме \"totem pole\", или как это по русски?\nЕстественно, что питание N-мощных драйверов будет производится от отдельного(!) источника, помехи от которого, не должны влиять на работу MicroPython платы.\nМощности источника питания +5V_USB скорее всего не хватит! Для USB 2.0 это 5х0.5=2.5Вт.\nШины GND, обеих источников, нужно уметь правильно соединять, но это уже выходит за рамки этого пояснения! \n\n# Особенности\n## Работа выходного каскада ШИМ канала\nМне не удалось понять, почему, когда канал настроен так: \n    `controller.configure_led_out(inverted=False, open_drain=True)`\nприсвоение каналу значения 100 % ведет к полному погасанию СИД и наоборот.\nПоэтому я настроил каналы так:\n    `controller.configure_led_out(inverted=True, open_drain=True)`\n## Присвоение и чтение\nЗначение от 0 до 100, присвоенное выходу канала, означает время в %, которое выходной ключ открыт в периоде ШИМ.\nДопустим, вы присвоили 50, тогда половину периода ШИМ ключ будет открыт, а другую половину закрыт!\n## Разница присвоенного и считанного значений канала.\nДопустим вы присвоили каналу 49, но после чтения вы получили значение 48. Это происходит из-зи ошибки округления, \nкоторую я не считаю важной. Если у вас есть идеи по улучшению кода, предлагайте!\n\n# Картинки\n# Плата контроллера PCA9685\n![alt text](https://github.com/octaprog7/pca9685/blob/master/pics/board.jpg)\n![alt text](https://github.com/octaprog7/pca9685/blob/master/pics/board_with_usb.jpg)\n# Среда разработки\n![alt text](https://github.com/octaprog7/pca9685/blob/master/pics/ide_pca9685.png)\n# Адресация выходов ШИМ с помощью средств MicroPython\n![alt text](https://github.com/octaprog7/pca9685/blob/master/pics/channels_access.png)\n\n# Видео\n[Демо видео](https://youtu.be/RDoE17OjMUU)\n## 8 bit led bar\nПлата имеет на борту 8 СИД с общим АНОДОМ(!). Анод подключается к + внешнего источника питания. Минус внешнего источника \nпитания подключается к GND платы c PCA9685. Катоды СИД платы подключаются к входам PWM (желтые штыри) платы c PCA9685! \n![alt text](https://github.com/octaprog7/pca9685/blob/master/pics/8bit_led_bar.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctaprog7%2Fpca9685","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctaprog7%2Fpca9685","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctaprog7%2Fpca9685/lists"}