Оптический энкодер CNY70 фиксирует изменения расстояния до объекта, используя отраженный ИК-свет. Подключите выходной контакт к цифровому входу платы, питание – к +5V. Для стабильных показаний добавьте подтягивающий резистор 10 кОм.
Холловый элемент A1302 реагирует на магнитное поле. Аналоговый выход передает напряжение от 0.5V до 4.5V в зависимости от угла поворота магнита. Подсоедините сигнальный провод к A0, заземление – к GND.
Резистивный трекер, например, Joystick модуль, изменяет сопротивление при смещении рукояти. Подключите оси X и Y к аналоговым входам, кнопку – к цифровому. Для калибровки считайте минимальные и максимальные значения в коде.
Инкрементальный дискретный преобразователь LPD3806 генерирует импульсы при вращении вала. Используйте прерывания на пинах 2 и 3 для фиксации направления и скорости. Шаг в 600 импульсов на оборот обеспечит точность ±0.6°.
Содержание материала
Как подключить и настроить модуль отслеживания перемещения
Выбор подходящего варианта
Потенциометры – простейший вариант, изменяющий сопротивление при повороте ручки. Для точного измерения угла поворота подходят энкодеры, а для бесконтактного считывания – датчики Холла. Линейные аналоги (например, LVDT) фиксируют смещение по прямой.
Схема соединения с платой
Потенциометр подключается тремя проводами: средний контакт – к аналоговому входу (A0-A5), крайние – к +5V и GND. Энкодеры требуют двух цифровых пинов (D2-D13) с подтягивающими резисторами 10 кОм. Датчики Холла (например, A3144) соединяются через выходной контакт с цифровым входом и питанием 5V.
Для обработки сигнала с потенциометра используйте код: int val = analogRead(A0); float angle = map(val, 0, 1023, 0, 300);. Энкодеры требуют библиотеки Encoder, где положение вычисляется через encoder.read().
Механизмы определения координат и их разновидности
Выбирайте устройства с аналоговым выходом, если нужна плавная регулировка, или цифровым – для точных дискретных значений.
- Резистивные – изменяют сопротивление при перемещении контакта. Пример: потенциометр 10 кОм с углом поворота 270°.
- Оптические – фиксируют прерывание светового потока. Энкодеры E6B2-CWZ6C выдают 600 импульсов на оборот.
- Магнитные – реагируют на изменение поля. Холловские элементы SS49E линейно отвечают в диапазоне ±1000 Гаусс.
- Индуктивные – регистрируют вихревые токи. LVDT-модули измеряют смещение до ±5 мм с точностью 0.1%.
Для подвижных узлов применяйте бесконтактные варианты – энкодеры или элементы Холла. В статичных системах подойдут потенциометры.
- Проверьте диапазон измерений: поворотные модели до 360°, линейные – от 1 см до 50 см.
- Сравнивайте разрешение: 12 бит для аналоговых выходов, 1024 шага на оборот у инкрементальных энкодеров.
- Учитывайте условия эксплуатации: магнитные версии устойчивы к пыли, оптические требуют чистоты.
Схема соединения с Arduino и пример программы
Подсоедините выходной контакт устройства к аналоговому входу A0 на плате. Питание (+5V) подайте на VCC, землю – на GND. Если используется цифровой выход, подключите его к любому цифровому пину, например, D2.
Пример кода для аналогового варианта:
void setup() {
Serial.begin(9600);
}
void loop() {
int value = analogRead(A0);
Serial.println(value);
delay(100);
}
Для цифрового варианта:
void setup() {
pinMode(2, INPUT);
Serial.begin(9600);
}
void loop() {
int state = digitalRead(2);
Serial.println(state);
delay(100);
}
Калибровка: если показания скачут, добавьте конденсатор 0.1 мкФ между VCC и GND. Для точного считывания используйте усреднение 5-10 замеров.












































