Модуль уже содержит микроконтроллер, который обрабатывает сигналы и отдаёт готовые данные по I2C.
Что это такое
Основные характеристики
Интерфейс:
I2C
Разрешение:
30 импульсов на оборот
Кнопка:
есть
Подсветка:
2× RGB (SK6812)
Встроенный MCU:
STM32F030
Пример кода
#include <M5Core2.h> // Подключение библиотеки для M5Core2, чтобы использовать функции, например, считывать энкодер и кнопку
// Переменная для хранения предыдущего значения энкодера
int lastEncoderValue = 0;
void setup() {
M5.begin(); // Инициализация устройства
Serial.begin(115200); // Запуск сериал-связи для вывода информации
delay(1000); // Немного задержки для стабильной работы
Serial.println("Программа запущена");
}
void loop() {
// Получение текущего значения энкодера
int encoderValue = 0;
// Предположим, что у вас есть функция или способ получить значение энкодера
// В этом примере используем фиктивную функцию или переменную
// Замените следующую строку на свою реализацию
encoderValue = getEncoderValue(); // Ваша функция или метод для чтения энкодера
// Проверка, изменилось ли значение энкодера
if (encoderValue != lastEncoderValue) {
// Если значение увеличилось
if (encoderValue > lastEncoderValue) {
Serial.println("Энкодер вращается по часовой стрелке");
} else {
// Если значение уменьшилось
Serial.println("Энкодер вращается против часовой стрелки");
}
lastEncoderValue = encoderValue; // Обновляем предыдущее значение
}
// Проверка статуса кнопки
bool buttonPressed = false;
// Аналогично, замените getButtonStatus() на свою функцию
buttonPressed = getButtonStatus();
if (buttonPressed) {
Serial.println("Кнопка нажата");
} else {
Serial.println("Кнопка не нажата");
}
delay(200); // Подождать немного перед следующим чтением
}
// Заглушки функций для получения значения энкодера и статуса кнопки
// Замените их на ваши реальные функции или методы чтения
int getEncoderValue() {
// В вашем проекте сюда вставьте код получения значения энкодера
// Например, чтение пинов, инкремент/декремент счетчика и т.д.
// В этом примере возвращаем случайное число для демонстрации
static int value = 0;
// Для теста увеличиваем или уменьшаем значение случайным образом
value += (random(0, 2) * 2 - 1); // +1 или -1
return value;
}
bool getButtonStatus() {
// В вашем проекте сюда вставьте код проверки кнопки
// Например, чтение пина с кнопкой
// В этом примере всегда возвращаем false
return false;
}