Эта библиотека позволяет подключить энкодер KY-040. Дополнительную информацию можно найти в моём блоге itworkclub.ru
Dependents: STM32_Encoder TFT_Touch_Menu_Encoder Encoder_rotativo TFT_Touch_Menu_Touch
Encoder.h
- Committer:
- zelmic
- Date:
- 2018-06-20
- Revision:
- 0:e1a3b380b0d6
File content as of revision 0:e1a3b380b0d6:
/* * Автор - Железняков Андрей * Сайт - itworkclub.ru * Данный класс описывает энкодер с кнопкой KY-040 * Обработка вращения и нажатий происходит с помощью прерываний. * При вращении энкодера меняется состояние переменной State * в ту или иную сторону. Значения переменной State ограничены заданным * диапазоном, например, от 0 до 100 или 0т 300 до 500. Диапазон задается * функцией setRange. По умолчанию диапазон от 0 до 100. * Узнать текущее значение энкодера можно с помощью функции getState(); * Нажата ли кнопка с помощью функции getButtonState(); * К энкодеру припаяны два дополнительных конденсатора по 1000пФ для устранения * дребезга: один между GND и CLK, второй между GND и DT. Если этих конденсаторов * нет, то необходимо раскомментировать задержку в функции encode. Так же * необохдимо проверить запаян ли подтягивающий резистор 10кОм на кнопку SW * Его необходимо припаять. */ #ifndef Encoder_H #define Encoder_H #include "mbed.h" class EncoderAli { public: // В конструкторе задаем пины, к которым подключен энкодер EncoderAli(PinName DT,PinName CLK1,PinName SW); int getState(); // возвращает положение энкодера void setRange(int minValue,int maxValue);// задает диапазон bool getButtonState();// true - кнопка нажата, false - отжата private: int State; // положение энкодера bool work; // флаг, который поднимается, когда идет обработка прерывания // и опускается по заверщении прерывания. int minValue_; // минимальное значение энкодера int maxValue_; // максимальное значение энкодера bool button; //true - кнопка нажата, false - отжата DigitalIn DT_; InterruptIn CLK1_; InterruptIn SW_; void encode(void); //обработчик вызывается при повороте энкодера void buttonPress(void); //обработчик вызывается при нажатии кнопки void buttonUp(void); // обработчик вызывается при отпускании кнопки }; #endif