Software Serial на аналоговом порту возможно? (Atmega168PA-AU)

AonMaster
Offline
Зарегистрирован: 04.12.2017

Всем привет!

Везде читаю, что стандартная библиотека SoftwaerSerial поддерживает только цифровые порты. Но ведь  аналоговые тоже можно использовать как цифровые, т.е. определять их состояние - 0 или 1.

Мне по топологии удобней приём сигнала (RX) вести на пин A2. Может быть, есть более продвинутая библиотека, которая это позволит?

 

 

b707
Offline
Зарегистрирован: 26.05.2017

порты A0-A5 являются цифровыми, SoftSerial на них должен работать

AonMaster
Offline
Зарегистрирован: 04.12.2017

Как цифровыми? я считал, что они и цифровые, и аналоговые могут быть.

 

b707
Offline
Зарегистрирован: 26.05.2017

AonMaster пишет:

они и цифровые, и аналоговые могут быть.

 

так и есть. Но в данном случае нас ведь интересют они как цифровые

nik182
Offline
Зарегистрирован: 04.05.2015

Больше того. После сброса все порты только цифровые и работают на вход (А6 А7 в квадратном корпусе всё равно на вход) . Аналоговыми или другими альтернативными их можно сделать только принудительно запрограмировав. За Вас это делает функция Init , которую спрятали. Можно сделать самому любую ногу так, как описано в даташите на МК . Для каждой ноги есть перечень альтернативных функций.

AonMaster
Offline
Зарегистрирован: 04.12.2017

Спасибо, хорошо рассказали! :)

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

AonMaster пишет:

Как цифровыми? я считал, что они и цифровые, и аналоговые могут быть.

Изначально все пины цифровые, но к некоторым подключен АЦП (аналого-цифровой преобразователь), который нужно задействовать (Arduino IDE делает это за пользователя).

Green
Offline
Зарегистрирован: 01.10.2015

Init() никакого отношения к аналоговым пинам не имеет. С аналоговыми пинами Ардуино может работать и как с цифровыми, и как с аналоговыми. Причём "одновременно". К примеру, вы можете читать с помощью digitalRead(A0) и тут же проверить фактическую величину с помощью analogRead(A0). Аналогично если на А0 будет включена подтяжка и даже если А0 будет настроен на выход.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Green пишет:

С аналоговыми пинами Ардуино может работать и как с цифровыми, и как с аналоговыми. Причём "одновременно".

Интиресна. А кагже Enable/Disable Digital Inputs битовая маска на только аналоговые выводы распространяется?

Иль я чо опять нипанимаю???

Green
Offline
Зарегистрирован: 01.10.2015

Да, цифровые входа можно отключить от аналоговых. Только в штатных средствах этого нет. Нужно напрямую лезть к DIDR0.