@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, к которому подключен модуль, напримерI2C1irqPin— пин прерывания.
Класс для работы с датчиком 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'); } });