Пульсация сигнала при analogread
- Войдите на сайт для отправки комментариев
Пт, 01/01/2016 - 21:11
Доброе время суток ... ситуация - собираю тестовую схему в Протеусе , все просто : на 9 пин вешаю светодиод и управлятью им по analogWrite . при подаче сигнала светодиод мерцает с непостоянной частотой
код простой как топор :
void setup() {
}
void loop() {
analogWrite(9, 125);
}
если выставить уровень 255 - стоит четко, не мигая
где я туплю ?
на всякий случай
voidsetup(){pinMode(9, OUTPUT);// установка порта на выход}какой результат ожидаешь получить не понятно
протеус не симулирует в реальном времени, легко увидеть если посмотреть счетчик времени, внизу слева насколько помню
а analowrite это шим, и весь его смысл подавать 1 и 0 на выход с нужной частотой и скважностью
купи ардуину и балуйся, и попробуй увидеть моргание
ну, при использовании analogWrite переключать пин на выход вроде не обязательно ...
на выходе хочу получить напряжение в 2,5 в.
Ардуину купил , да сжег быстренько :)
вторая едет , но НГ у всех
Я так понял , это издержки симулятора ?
ну, при использовании analogWrite переключать пин на выход вроде не обязательно ...
переключить - надёжнее , чем скрытое необязательное...
#2 - вход в реальность :)
на выходе хочу получить напряжение в 2,5 в.
Не получится, ШИМ не так работает. Амплитуда всегда будет 5В, меняется скважность.
Я так понял , это издержки симулятора ?
Да, как уже сказали, протеус не может корректно симулировать ШИМ в реальном времени. Но даже если бы мог, 2.5В таким способом всё равно не получишь. Нужна доработка схемы, чтобы сглаживать ШИМ.
а зачем тебе 2.5в?
Не получится, ШИМ не так работает. Амплитуда всегда будет 5В, меняется скважность.
Да, как уже сказали, протеус не может корректно симулировать ШИМ в реальном времени. Но даже если бы мог, 2.5В таким способом всё равно не получишь. Нужна доработка схемы, чтобы сглаживать ШИМ.
тоесть , для управления нагрузкой через транзистор использовать только аналоговіе порты ?
тоесть , для управления нагрузкой через транзистор использовать только аналоговіе порты ?
нет !
Не получится, ШИМ не так работает. Амплитуда всегда будет 5В, меняется скважность.
Получится. Любое от 0 до 5В в зависимости от скважности. Среднее значение будет таким. Потому функция и называется analogWrite. Если надо, можно включить фильтр НЧ и получится просто постоянка диапазона 0-5В и пульсация маленькая. Многие виды нагрузки сами по себе хороший фильтр НЧ, потому не парятся и считают, что ШИМ и есть аналоговый вывод. (Про ЦАП знаю, не надо туточки того.)
Кстати амплитуды 5 вольт тоже не будет. Амплитуда считается по отклонению от среднегр в обе стороны, т.е. ШИМ 50% на уровнях логических 0 и 5В = постоянка 2,5В и прямоугольная пульсация амплитудой тоже 2,5В. Она пол периода отнимается от постоянки, пол периода складывается.
ты хочешь что то регулировать через транзистор по средствам шим?
тоесть , для управления нагрузкой через транзистор использовать только аналоговіе порты ?
В микроконтроллерах AVR (которые стоят в ардуине) нет настоящих аналоговых портов на выход (ЦАП). Аналоговые есть только на вход (АЦП), на выход только цифровые. На некоторых цифровых можно выдать ШИМ-сигнал (функция analogWrite)
ты хочешь что то регулировать через транзистор по средствам шим?
да
а регулировать нужно именно плавно или можно сделать из нескольких ступений
Получится. Любое от 0 до 5В в зависимости от скважности. Среднее значение будет таким. Потому функция и называется analogWrite.
Я настаиваю на том, что не получится. Если замерять осциллографом, амплитуда всегда будет одинаковая и равнятся VCC. Функцию можно назвать как угодно, но законы физики никто не отменял.
Если надо, можно включить фильтр НЧ и получится просто постоянка диапазона 0-5В
Воооот... я и писал выше, что нужно сглаживание, чтобы получить аналоговый сигнал диапазона 0-5В.
потому не парятся и считают, что ШИМ и есть аналоговый вывод.
И вводят новичков в заблуждение.
а так если
Доброе время суток ... ситуация - собираю тестовую схему в Протеусе , все просто : на 9 пин вешаю светодиод и управлятью им по analogWrite . при подаче сигнала светодиод мерцает с непостоянной частотой
код простой как топор :
void setup() { } void loop() { analogWrite(9, 125); }если выставить уровень 255 - стоит четко, не мигая
где я туплю ?
ни где !!!!!
собери реальную схему - мигать не будет , и тупления закончатся :)
Я настаиваю на том, что не получится. Если замерять осциллографом, амплитуда всегда будет одинаковая и равнятся VCC. Функцию можно назвать как угодно, но законы физики никто не отменял.
Настаивать на своей безграмотности глупо. Можете подключить осцилограф в режиме закрытого входа, исключающего постоянную составляющую, и убедится что амплит будет 2,5В. Уровень логического 0 будет -2.5В, а 1 будет +2.5. Это и есть амплитуда. Название функции отражает её назначение, может Вам и привычней черное белым называть, но разумные люди дают разумное название. Законы физики часто не понимают, Вы это сейчас илюстрируете. По законам физики сигнал может быть представлен как сумма сигналов кратных частот и постоянного смещения (нулевой частоты в общем то). Фамилия Фуре вам ни о чем не говорит?
Если надо, можно включить фильтр НЧ и получится просто постоянка диапазона 0-5В
Воооот... я и писал выше, что нужно сглаживание, чтобы получить аналоговый сигнал диапазона 0-5В.
Чукча не читатель чукча писатель?! Разница между "Если надо, можно.." и "нужно" есть? Лампы, светодиоды, нагреватели, и часть индуктивных нагрузок (обмотки реле например) ни в каких фильтрах не нуждается.
потому не парятся и считают, что ШИМ и есть аналоговый вывод.
И вводят новичков в заблуждение.
Я Вас в заблуждение не вводил, это или кто другой был или Вы сами. И вероятно просто это не учили.
в данном случае идет речь о использовании шим для управления транзистором с регулировкой
получить просто 2,5в не достаточно ...тут диапазон нужен
ну, при использовании analogWrite переключать пин на выход вроде не обязательно ...
на выходе хочу получить напряжение в 2,5 в.
Не слушайте никого, даже меня :)
Просто экспериментируйте. По напишут всякого, осцилографф с открытым/закрытым входом,
амплитуды там разные, хрен что разберёшь. Поставте делитель, схему вам уже нарисовали,
получите 2,5 вольта или сколько там нужно без всякого шима,
ткните мультиметром и весь шим до копейки.
ну, при использовании analogWrite переключать пин на выход вроде не обязательно ...
на выходе хочу получить напряжение в 2,5 в.
Не слушайте никого, даже меня :)
Просто экспериментируйте. По напишут всякого, осцилографф с открытым/закрытым входом,
амплитуды там разные, хрен что разберёшь. Поставте делитель, схему вам уже нарисовали,
получите 2,5 вольта или сколько там нужно без всякого шима,
ткните мультиметром и весь шим до копейки.
не тупи ТС !!!!!
...сам-то понял что написал ?
Logik, Можете подключить осцилограф в режиме закрытого входа, исключающего постоянную составляющую, и убедится что амплит будет 2,5В. Уровень логического 0 будет -2.5В, а 1 будет +2.5. Это и есть амплитуда.
Не пойму, что вам не понравилось в словах Jeka_M ? Какая разница сколько будет в минусе, а сколько в плюсе. Размах амплитуды всё равно не измениться ни при какой скважности.
А напряжение RMS это вообще чисто математическое понятие. И согласен, с Jeka_M название для функции analogWrite придумали очень некорректное, отсюда постоянные недопонимания со стороны начинающих. Что было не назвать PWMout ?
dimax , всё правильно...
но для начинающих - что analogWrite() , что PWMout() - НЕ ПОНЯТНО !
...если не читать мануалы :) и не видеть осциллограмм сигналов на пине....
dimax , с Наступившим !!!!!!!!!!
спасибо за все комменты !!!!
О и осцилограмма как раз что надо. Спасибо за илюстрацию!
Не пойму, что вам не понравилось в словах Jeka_M ?
Не понравилась категоричность в ложном утверждении о отсутствии постоянной составляющей напряжения на выходе ШИМ без НЧ фильтрации.
Какая разница сколько будет в минусе, а сколько в плюсе. Размах амплитуды всё равно не измениться ни при какой скважности.
Разница огромная. Не сложно сделать, к примеру на ОУ с двухполярным питанием, генератор формирующий прямоугольники с амплитудой 2,5В и не содержащий постоянной составляющей. Осцилограмма в режиме закрытого входа будет точно как на картинке выше. Т.е. переменная составляющая напряжения с этого генератора будет аналогичен ШИМу 50%. А в чем их разница?! Смотрим на осцилограмму при открытом входе и явно видим. Именно в постоянной составляющей. Которой у ШИМ без НЧ фильтра как бы нет согласно утверждениям Jeka_M. По его логике получается что фильтр НЧ преобразует переменное напряжение в постоянное, на подобии выпрямителя. Думаю написаного достаточно, чтоб понять и запомнить:
1. ШИМ действительно формирует постоянное напряжение, величиной которого изменяется параметром функции analogWrite, в полном соответствии с её названием.
2. Кроме постоянного напряжения на выходе присутствуют значительные помехи в виде переменного напряжения высокой частоты (там целый спектр, что тема отдельная). В некоторых случаях для борьбы с ними необходим фильтр низкой частоты, в некоторых нет. Зависит от влияния помех на то, что подключено к ШИМ.
3. При наблюдении на осцилографе с открытым входом (что обычно для цифровой техники) сигнал ШИМ мы видим как сумму сигналов из п.1 и п.2, эта сумма и выглядит как прямоугольные импульсы с логическими уровнями.
4. (без конкретной пользы, так, в напоминание) ШИМ - сигнал аналоговый, передача информации в нем происходит в аналоговой форме - длительностями. Их дискретность в случае ардуино - чисто проблемы реализации, легко реализуется на аналоговых компонентах честный без дискретности ШИМ.
А напряжение RMS это вообще чисто математическое понятие.
Ничего подобного, абсолютно физично. Эквивалент производимой работы. Вот вики, че пишет, да и так хороше известно.
Действующим (эффективным) значением силы переменного тока называют величину постоянного тока, действие которого произведёт такую же работу (тепловой или электродинамический эффект), что и рассматриваемый переменный ток за время одного периода.
Грубо говоря греть и светить будет как раз исходя из RMS, какая ж тут математика, чистая физика. Даже более физично чем определение напряжения - как разности потенциалов!
вот это волна :) спасибо за коменты, приедет плата , таки попробую :) всех с наступившим !