Классическое подключение на два порта, выдаем (HIGH, LOW) один цвет, выдаем (LOW, HIGH) второй цвет. В конфигурации (ШИМ, LOW) управляем яркостью первого цвета, в конфигурации (LOW, ШИМ) яркостью второго цвета. Очевидно, что управляя (ШИМ1, ШИМ2) светим двумя компонентами сразу, максимально в “полнакала” (можно смириться), но стоит задача генерировать неконфликтующие напряжения.
Ардуинка умеет генерировать инверсный сигнал ШИМ на свой порт, или без своего кода или инвертирующей обвязки не обойтись? По факту надо управлять не только длительностью импульса в один период модуляции, но и его сдвигом относительно начала.
Здесь больше задача теоретическая, чтобы научиться управлять ШИМ по фазе. И второе - практическая. Это как пример двупроводная нитка гирлянды (т.е. не надо тянуть общий провод). Может быть актуально как для гирлянды, так и для какого-нибудь выносного индикатора, где есть ограничение по линии (например, уже дан разъем где мало пинов).
Это совсем про другое. Если на двух пинах строго инвертированный шим, то, подключив к ним двухцветный, двуногий светодиод, Вы можете плавно управлять его цветом от зелёного до красного через жёлтый. Чем выше коэффициент заполнения на “красном” пине, тем краснее, и чем ниже - тем зеленее.
Ну да, а не при строгом инвертировании можно бегать по части спектра, не полный RGB, но все же. Рассчитывать яркость каждой компоненты исходя из того, что она определяется либо положительной либо отрицательной разницей сигналов. Когда сигналы равны, оба светодиода погашены.
А чему тут казаться? Вот выдаём мы такой шим на 9-ом и 10-ом пинах. Если допустим на 9-ом HIGH, а на 10-ом LOW, то светится зелёным. Тогда в те моменты времени, когда на 9-ом LOW, а на 10-ом HIGH – оно светится красным. Вот и получается, что меняя скважность, можно плавно менять цвет.
При инвертированном ШИМ сигналы никогда не будут равны. Там всегда на одном HIGH, а на другом LOW. Равными их можно сделать только если выключить ШИМ и привести оба пина в одинаковое состояние. Пока ШИМ работает - равными они быть не могут.
Сдвинув генератор второго ШИМ на величину f получаем управления яркостью светодиодов на отрезках A и B. Для равновесного управления обоими светодиодами сдвиг по фазе должен быть равен половине периода. Тогда задавая ширину W1 и W2 управляем яркостью каждой компоненты. По факту, когда сдвиг на полпериода и ширины равны половине периода оба диода светят вполнакала. Без сдвига фазы никак, чтобы получить не только положительную, но и отрицательную составляющую.
Хотя не, вру. Просто разные скважности без сдвига тоже дают оба знака разницы.
Требования к геренации такие чтобы сумма параметров всегда была меньше 255 и параметр первой функции (классического выхода) был меньше параметра второй функции (инвертированного выхода). Иначе в моменты перехлеста сигналов по одинаковому знаку будет нежелательное потухание обоих светодиодов.
Вы не можете ничего сдвинуть. Участки типа того, что слева от А (когда на обоих пинах HIGH) – невозможны!
Вы знаете, что означает слово “инвертированный”? Это когда на одном пине HIGH, а на другом LOW и никогда “на обоих одинаково”.
Если Вам нужно, чтобы иногда на обоих было одинаково, Вам нужен не инвертированный шим, а два независимых ШИМ (возможно, как-то синхронизированные), но это совсем другая задача.
Да, два независимых. Но если второй не будет инвертированным, то они оба начнутся с HIGH. Это не спор, я доуточнил терминологию. Второй выход инвертирован не относительно первого, а сам по себе, чтобы стартовал с LOW и скважность задавала длительность низкого уровня. Обвязкой это делается. Самописным кодом делается. Если делается просто настройкой, чтобы далее пином управлять через те же вызовы - шикарно. Я примеры порою дома, в периоды творчества.
Вывод не может быть инвертирован “сам по себе”. Само слово “инвертирован” предполагает наличие двух объектов в противоположных состояниях. Посмотрите, наконец, в словарь и перестаньте использовать слова, смысла которых Вы не понимаете! Неправильным употреблением терминов Вы сожрали кучу своего и чужого времени!
при Х = 50 - получаем два одинаковых ШИМа. И в случае их полной синхронизации получаем нулевую разность потенциалов между ними и отсутсвие света, вместо 50% зеленого и 50% красного.
Я так понимаю вопрос больше про синхронизацию двух ШИМов, чем про инверсию. Можно ли каким-то “простым” способом синхронизировать два ШИМа с одним периодом и разной скважностью? Хотя бы в одной фазе, лучше - со сдвигом в половину периода, в идеале - с произвольным сдвигом.
На мой взгляд слишком узкое применение для того, чтобы можно было обойтись без
Следует отметить, что сигнал ШИМ можно инвертировать, т.е. при прямом счёте (вверх) и совпадении значения счёта со значением, записанным в Compare (TOP), на выводе ОС1х (ОС0х) будет низкий уровень, а при обнулении счётчика – высокий.
Наверное это вредный текст, или мне не хватило базовых знаний, чтобы его правильно понять.
Но тем не менее, смысл моего вопросы вы поняли, я вас понял, примеры и документация найдена. Я не считаю свое время потраченным зря.