APDS 9930

APDS 9930 это широко распространенный датчик приближения и освещенности. Данный датчик широко распространен на площадке алиэкспресс. Представлен в виде модуля для Arduino. Мы же рассмотрим как подключить ADPDS 9930 к ESP32 C3 mini.

Расcпиновка APDS 9930

Датчик освещенности и приближения APDS 9930
ПинИмяТипОписание
1SDAI/OПин ввода\вывода данных I2C
2INTOПин прерывания, настроен как открытый сток
3LDRIДрайвер светодиода для датчика приближения – до 100 мА, открытый сток.
4LEDKOКатод светодиода, подключается к LDR
5LEDAIАнод светодиода, подключается к Vbat
6GNDЗемля
7SCLIТактовый сигнал синхронизации I2C
8VddПитание, MAX 3.8V

Подключение датчика приближения

Когда вы используете датчик APDS9930 в исполнении модуля для ардуины, то подключить датчик освещенности и приближения достаточно просто. Необходимо задействовать ножки I2C, землю, и подать питание 3.3. Прерывание использовать не обязательно. Работать с датчиком можно и без него.

ВНИМАНИЕ! У чипа ESP32 C3 mini нет определенных пинов для I2C. По этому для подключения I2C используйте любые понравившиеся нам пины ввода-вывода.

Библиотека APDS 9930 для ESP32

Данная библиотека поддерживает минимальный набор функций, для получения расстояния до приближающегося объекта. Так же обратите внимание на то, что по работе с освещением библиотека не дописана. На все вопросы ответим в комментариях.

Для использования библиотеки необходимо проинициализировать модуль I2C:

esp_err_t i2c_master_init(void)
{
    int i2c_master_port = I2C_MASTER_NUM;
    i2c_config_t conf = {
    		.clk_flags = I2C_SCLK_SRC_FLAG_FOR_NOMAL,
        	.mode = I2C_MODE_MASTER,
		    .sda_io_num = I2C_SDA,         // select GPIO specific to your project
		    .sda_pullup_en = GPIO_PULLUP_ENABLE,
		    .scl_io_num = I2C_SCL,         // select GPIO specific to your project
		    .scl_pullup_en = GPIO_PULLUP_ENABLE,
		    .master.clk_speed = I2C_MASTER_FREQ_HZ,

    };
    i2c_param_config(i2c_master_port, &conf);
    return i2c_driver_install(i2c_master_port, conf.mode, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0);
}

В файле APDS_9930.h в дефайнах настроить константы линии I2C

#define I2C_MASTER_NUM 0
#define I2C_MASTER_FREQ_HZ 100000
#define I2C_SCL GPIO_NUM_1
#define I2C_SDA GPIO_NUM_0
#define I2C_MASTER_TX_BUF_DISABLE   0
#define I2C_MASTER_RX_BUF_DISABLE   0
#define I2C_MASTER_TIMEOUT_MS  1000

Загрузки

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии