Реализация ШИМ.
- Войдите на сайт для отправки комментариев
Сб, 18/11/2017 - 14:38
Доброе время суток. Подскажите кто ни будь, есть ли возможность в Ардуино Уно инвертировать сигнал PWM. Установку элемента "НЕ" прошу не предлагать. Заранее спасибо.
прямой - analogWrite(pin, x)
инверсный - analogWrite(pin, 255 - x)
Вариант НЕ не предлагаю
Спасибо большое .за совет, попробую
Не получается получить инверсию. Дело в том мне нужен ШИМ с регулировкой скважности. На низкой частоте получить инверсию удалось, но нет регулировки скважности. А на высокой частоте даже инверсия не получается. Я использую протеус для симулирования.
Вот этот код.
Я использую протеус для симулирования.
Ну, так не используйте.
Что, по-вашему, есть инверсия ШИМ?
Используйте, лучше, осциллограф ))
Зачем Вам это?
Timer1.pwm(10, 255);
почему не
analogWrite(10, 255);
Я использую протеус для симулирования.
Ну, так не используйте.
Я спрашиваю тех кто знает, а не тех даёт идиотские советы. Извините, но по другому ваш ответ не могу комментировать.
Я недавно начал изучать программирование, поэтому и спрашиваю, есть ли в ардуино уно возможность использовать комплементарный ШИМ. А то что мне удалось получить, вернее громко сказано, что удалось нашёл код в инете, в нем скважность можно регулировать тольс помощью установок таймера.
Если почитаете тут, то увидите, что никаких таймеров в вашем случае не требуется.
Второй аргумент ф-ии analogWrite в диапазоне от 0 до 255 задаёт скважность ШИМ.
Вы, таки, правда хочете получить отрицательный ШИМ?
analogWrite(10, 0-255);
Осциллографа под рукой нет, и вообще нахожусь в Индии, решил заняться программированием на старости лет. Под рукой только комп. Ардуино у зятя на фирме. Не хочу отвлекать от работы.
есть такое, протеус редко когда может аппаратный шим моделировать
А вы сами как отреагировали на такой ответ. А насчёт протеуса вы не правы, уж инвертированный сигнал худо бедно он покажет, я уже давно пользуюсь протеусом, правда с микроконтроллерами не имел дела. Прошу прощения конечно за резкий ответ, но на форумах столько оскорблений услышишь, а дельных советов никак.
Осциллографа под рукой нет
И это, конечно, достаточная причина назвать меня идиотом за нормальный, совершенно по делу совет. Валяйте дальше, успехов! Надеюсь, Вам кто-нибудь объяснит, как заставить Протеус нормально промоделировать этот процесс.
А насчёт протеуса вы не правы
Вам виднее.
Мне главное знать есть такая возможность в Ардуино уно или нет. Здесь не у кого спросить не настолько хорошо знаю английский, чтобы мне доходчиво объяснили, можно сказать варюсь в собственном соку. Только пару месяцев как занялся изучением программирования. А в 59 лет уже тяжеловато воспринимается, но по чайной ложечке уже кое что познал.
Возможно я ошибаюсь, может придётся реальным ардуино воспользоваться. Если что напишу. Спасибо за совет, ещё раз прошу прощения, беру слова обратно.
Протеус можно настроить, чтобы он всё показал.
Там проблема возникает когда настройка Timestep per Frame совпадает (или кратна) частоте процесса. Тогда получается, что протеус может считать точки, которые попадают на те же самые места в сигнале (допустим, только на high-участки) и тогда протеус просто не заметит сигнала. Если такая беда случчилась, надо просто поменять Timestep. Вот здесь (в разделе 4.6) есть описание аналогичной проблемы только для низких частот (для переменного тока), но суть та же. При умолчательных настройках протеуса, такая проблема возникает как раз на частоте 500 Гц (а стандартный ШИМ - 490), потому там частенько появляется беда.
ХЗ , но у меня протеус без дополнительных настроек что 490HZ что 25KHz нехотел симулировать, пришлось в живую проверять
Поставил Протеус 8, настройки дефолтные. Такой скетч -
Результат -

а теперь добавьте строчек 50 кода и шим перестанет работать