Понимаю, что есть цифровые порты и аналоговые, но когда работаешь с цифровым портом в шим, то к нему обращаешься как к аналогу, то есть analogWrite и т.д. Но например, чтобы регулировать яркость светодиода, то значения от 0 до 255, а например аналоговый считывает значения до 1024. То есть у аналоговых портов больше дискретность?
Вкратце, все верно, но немного не так. На аналоговых портах https://ru.wikipedia.org/wiki/Аналого-цифровой_преобразователь. У него, в случае с ардуино, разрядность 10 бит. 2^10=1024 состояний. А на цифровых (которые пригодны для ШИМ) https://ru.wikipedia.org/wiki/Цифро-аналоговый_преобразователь У него разрядность 8 бит. Т.е. 2^8=256 состояний. Именно этим, как я думаю, обусловлено отличие.. Тапками не кидать, изложил в силу своих познаний) Если не прав, поправьте, пожалуйста.
я когда начал пост писать, тема была пуста))) И мое "немного не так" относилось к топикстартеру, а не к вам)
Аналоговый на вход, цифровой шим на выход. Вообще разные задачи у них. Если, например, нужно прямо пропорционально регулировать яркость светодиода подключенному к ШИМ при помощи переменного резистора подключенного к аналоговому порту, следует делить значение последнего на 4, ну или сдвигать биты вправо на 2. )
Подробнее можно почитать тут. И вообще, разобраться с битовыми операциями очень полезно, иной раз они здорово упрощают и ускоряют программу.
Ну ОК, валялись, но не рядом. В ардуино нет фильтров, ШИМ выходит просто в виде цифровой последовательности. ЦАП должен давать постоянное напряжение, а ШИМ постоянно шатает сигнал туда-сюда. Для светодиода можно и ШИМ считать ЦАПом, а для построения синусоиды одним ШИМом отделаться уже не получится. Нужно учитывать конкретное применение и исходя из этого решать, можно ли считать ШИМ ЦАПом.
Логика тут такая: Аналоговый выход (ЦАП) позволяет задать НАПРЯЖЕНИЕ. А выход с ШИМ (как в ардуино) не позволяет управлять напряжением, а только МОЩНОСТЬЮ. Там какое-то время "1" на выходе, остальное "0". Чем больше значение передается в analogWrite, тем больше времени для единиц и меньше для нулей.