История изменений
Исправление Zubok, (текущая версия) :
И еще по ходу пьесы. Ток, проходящий через ножки каналов, по даташиту должен быть не выше 5мА. Если ты случайно сделаешь программную ошибку и сконфигурируешь входы как выходы и подашь HIGH на них, то через энкодер ты их просадишь на землю (а энкодер - это просто контакт) и у тебя ток большой попрет через контакты энкодера, а это разогрев. Да и можно порты пожечь - ток не ограничен ничем. Разумно ограничить ток, подключив A и B через резисторы, а подтягивать к питанию не внутренним pull-up, а внешним, то есть до резисторов (иначе делитель напряжения образуется). Еще можно конденсаторы на землю от A и B. R = 10кОм будет ок.
Encoder
Vcc --[ R ]--+ +--[ R ]-- Vcc
| A C B |
MCU_A --[ R ]--+--o o o--+--[ R ]-- MCU_B
|
___
Исправление Zubok, :
И еще по ходу пьесы. Ток, проходящий через ножки каналов, по даташиту должен быть не выше 5мА. Если ты случайно сделаешь программную ошибку и сконфигурируешь входы как выходы, то через энкодер ты их просадишь на землю (а энкодер - это просто контакт) и у тебя ток большой попрет через контакты энкодера, а это разогрев. Да и можно порты пожечь - ток не ограничен ничем. Разумно ограничить ток, подключив A и B через резисторы, а подтягивать к питанию не внутренним pull-up, а внешним, то есть до резисторов (иначе делитель напряжения образуется). Еще можно конденсаторы на землю от A и B. R = 10кОм будет ок.
Encoder
Vcc --[ R ]--+ +--[ R ]-- Vcc
| A C B |
MCU_A --[ R ]--+--o o o--+--[ R ]-- MCU_B
|
___
Исправление Zubok, :
И еще по ходу пьесы. Ток, проходящий через ножки каналов, по даташиту должен быть не выше 5мА. Если ты случайно сделаешь программную ошибку и сконфигурируешь входы как выходы, то через энкодер ты их просадишь на землю (а энкодер - это просто контакт) и у тебя ток большой попрет через контакты энкодера (разогрев, да и можно порты пожечь). Разумно ограничить ток, подключив A и B через резисторы, а подтягивать к питанию не внутренним pull-up, а внешним, то есть до резисторов (иначе делитель напряжения образуется). Еще можно конденсаторы на землю от A и B. R = 10кОм будет ок.
Encoder
Vcc --[ R ]--+ +--[ R ]-- Vcc
| A C B |
MCU_A --[ R ]--+--o o o--+--[ R ]-- MCU_B
|
___
Исправление Zubok, :
И еще по ходу пьесы. Ток, проходящий через ножки каналов, по даташиту должен быть не выше 5мА. Если ты случайно сделаешь программную ошибку и сконфигурируешь входы как выходы, то через энкодер ты их просадишь на землю (а энкодер - это просто контакт) и у тебя ток большой попрет через контакты энкодера (разогрев, да и можно порты пожечь). Разумно ограничить ток, подключив A и B через резисторы, а подтягивать к питанию не внутренним pull-up, а внешним, то есть до резисторов (иначе делитель напряжения образуется). Еще можно конденсаторы на землю от A и B.
Encoder
Vcc --[ R ]--+ +--[ R ]-- Vcc
| A C B |
MCU_A --[ R ]--+--o o o--+--[ R ]-- MCU_B
|
___
Исходная версия Zubok, :
И еще по ходу пьесы. Ток, проходящий черзе ножки каналов по даташиту должен быть не выше 5мА. Если ты случайно сделаешь программную ошибку и сконфигурируешь входы как выходы, то через энкодер ты их просадишь на землю (а энкодер - это просто контакт) и у тебя ток большой попрет через контакты энкодера (разогрев). Разумно ограничить ток, подключив A и B через резисторы, а подтягивать к питанию не внутренним pull-up, а внешним, то есть до резисторов (иначе делитель напряжения образуется). Еще можно конденсаторы на землю от A и B.
Encoder
Vcc --[ R ]--+ +--[ R ]-- Vcc
| A C B |
MCU_A --[ R ]--+--o o o--+--[ R ]-- MCU_B
|
___