@amperka/proximity
Библиотека для работы с датчиком приближения и освещённости.
Позволяет измерять расстояние до предметов в диапазоне от 0 до 200 миллиметров и освещённость в диапазоне от 0 до 20000 люкс. Датчик подключается по протоколу I2C и использует пин прерывания IRQ
.
// настраиваем I2C1 для работы модуля I2C1.setup({sda: SDA, scl: SCL, bitrate: 400000}); // подключаем модуль к I2C1 и пину прерывания var prox = require('@amperka/proximity').connect({ i2c: I2C1, irqPin: P4 }); // каждые 10 миллисекунд измеряем расстояние function getRange() { prox.range(function(error, value) { if (error) { print(error.msg); } else { print('distance:', value, 'mm'); } setTimeout(getAmbient, 10); }); } // каждые 10 миллисекунд измеряем освещенность function getAmbient() { prox.ambient(function(error, value) { if (error) { print(error.msg); } else { print('illuminance:', value, 'lux'); } setTimeout(getRange, 10); }); } getRange();
Функции модуля
Создаёт новый объект VL6180X. Объект pins
должен содержать поля:
i2c
— I2C, к которому подключен модуль, напримерI2C1
irqPin
— пин прерывания.
Класс для работы с датчиком VL6180X. Для создания экземпляра используйте функцию connect
.
Функция измерения расстояния. Результат передаётся в функцию callback
. callback
принимает 2 аргумента: error
и value
. Объект error
равен false
, если измеренное расстояние лежит в пределах от 0 до 200 миллиметров. В противном случае error.msg
будет содержать информацию об ошибке. Параметр value
хранит расстояние в миллиметрах.
prox.range(function(error, value) { if (error) { print(error.msg); } else { print('distance:', value, 'mm'); } });
Функция измерения освещённости. Результат передаётся в функцию callback
. callback
принимает 2 аргумента: error
и value
. Объект error
равен false
, если измеренное расстояние лежит в пределах от 0 до 20000 люкс. В противном случае error.msg
будет содержать информацию об ошибке. Параметр value
хранит расстояние в люксах.
prox.ambient(function(error, value) { if (error) { print(error.msg); } else { print('illuminance:', value, 'lux'); } });