Подключение Энкодера на аналоговые пины?

Sanyaba
Sanyaba аватар
Offline
Зарегистрирован: 27.07.2015

Собственно вот есть пример с подключением энкодера на цифровые пины http://easymcu.ru/publ/12-1-0-102 а я сталкнулся с проблеммой отсутствия свободных пинов и есть в наличии только аналоговые.

Подскажите как решить данный вопрос, заранее спасибо всем откликнувшимся.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Sanyaba, какие аналоговые? Чисто аналоговых пинов на стандартной ардуине всего два -A6 и A7. Подключение к другим Ax ничем не отличается от подключения к 0..13

Sanyaba
Sanyaba аватар
Offline
Зарегистрирован: 27.07.2015

Огромное спасибо за ответ, у меня в этом проекте Pro Mini, занятые пины я отметил

собственно вопрос о подключении на пины А0,A1,A2,A4,A5 исходя из кода предидущего сообщения

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

Вот содрал у колеги dimax на другом форуме. Просто и безглючно.

Только я прерывание ставлю только на один вход, а не на два - так правильнее и ресурсов меньше жрет.

volatile int enc;
void setup() {              
Serial.begin(9600);
PCICR=1<<PCIE1; //разрешить прерывание
PCMSK1=(1<<PCINT9)|(1<<PCINT8); //выбрать входы
}

ISR (PCINT1_vect){
static byte old_n=PINC&3; // маска B00000011 что б читать только нужные 2 бита
byte new_n=PINC&3;
if (old_n==1&&new_n==3||old_n==2&&new_n==0) {enc++;}
if (old_n==2&&new_n==3||old_n==1&&new_n==0) {enc--;}
old_n= new_n;
}

void loop() {
Serial.println(enc);
}

 

Sanyaba
Sanyaba аватар
Offline
Зарегистрирован: 27.07.2015

спасибо вам Okmor за ответ, но если честно я не совсем понял к каким пинам в вашем коде подключать энкодер

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Okmor же не просто так дал ссылку, там явно написано, что для этого скетча используются пины A0 и A1.

А так подключать 'энкодер можно к любым пинам, кроме A6, A7, и 13. 

Кстати, у тебя еще есть два незадействованных пина 0 и 1 (RX и TX). Их тоже можно использовать, но: 
а) перед каждой заливкой скетча придется физически отключать все, что к ним подключено.
б) вывод в Serial работать не будет.

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

Sanyaba пишет:

спасибо вам Okmor за ответ, но если честно я не совсем понял к каким пинам в вашем коде подключать энкодер


PCINT9, PCINT8. Ищешь в гугле arduino pro mini pinout и смотришь картинки.

Sanyaba
Sanyaba аватар
Offline
Зарегистрирован: 27.07.2015

Огромное СПАСИБО всеи откликнувшимся, у меня все получилось, бу энкодер от автомагнитолы кстати оказался глючным.