Библиотека SimpleRotary.h

Можно ли в этой библиотеке использовать аналоговые пины 15 16 17 ~ A1 A2 A3 для подключения энкодера.

А эта библиотека единственная с таким именем?

В библиотеке не знаю. А в жизни можно.

Вот в этой:

Точно можно.

ЗЫ: Интересно, а в каких нельзя?..

Видимо, в тех, что используют прерывания

1 лайк

Мысль конечно интересная, А1-А3 у уны ноги без прерываний?

Ежели библиотека требует аппаратные прерывания, то нет ))

А какие ещё бывают по ноге? Нет, я конечно знаю что можно программно дёрнуть ногу на которой висит прерывание и прерывание сработает. В мануале на 328 написано что порт С к которому относятся А1-А3 имеют аппратное прерывание PCINT9 -PCINT11(Table 18-6) и загнуты они на один вектор.

А еще есть INT - у Уно их только два

Насколько помню, у АVR такой возможности нет.

ты прошёл мимо моего шедеврального кода секундного таймера, ШИМлю ногу прерывания (analogWrite(3,127)) и в прерывании увеличиваю счётчик до нужного значения

Та нет, скорее мозги уже не те.(
Да, программно вызвать прерывание нельзя. Можно только программно-аппаратно. Т.е., принудительно менять уровни на выходе.

Не буду спорить. Я такое на stm32 видел. Но не понимаю в чём ограничение. AVR имеет всегда подключенный входной каскад на ноге и в любой момент можно проверить что нога выдаёт, а механизм прерываний вроде не имеет блокировки в зависимости от функций ноги?

Потому что флаг прерывания никак не установить (только сбросить). Ну или менять состояние на выходе, а это уже программно-аппаратно.)

    Rotary Encoder - Polling Example
    
    The circuit:
    * encoder pin A to Arduino pin 2
    * encoder pin B to Arduino pin 3
    * encoder ground pin to ground (GND)
    
*/

#include <Rotary.h>

Rotary r = Rotary(15, 17); //2, 3);

void setup() {
  Serial.begin(115200);
  r.begin(true);
}

void loop() {
  unsigned char result = r.process();
  if (result) {
    Serial.println(result == DIR_CW ? "Right" : "Left");
  }
}

что то не получилось... извини

Интересный вопрос. В списке библиотек одна с таким именем.


А как узнать можно единственная она для IDE - ? Вроде когда их две выходит сообщение и в нем говорит которая используется… Спасибо.

От вас требовалось назвать источник, откуда библиотека взята. Менеджером библиотек источники не ограничиваются

Их может быть десяток разных с одним именем. И поди разбери, какую используете лично вы.

Вы бы ещё фото квартиры приложили.

Ну это у вас что-то с руками и головой. У всех получается, а у вас нет. Ну точно! Проблема в библиотеке :laughing:

Никак не узнать, как и не увидеть исходник, расположенный на ПК другого, незнакомого человека. А без этого ответ не может быть дан.