中级
30 分钟

使用RPR-0521RS和PIC18F57Q43,开启响应您存在的沉浸式免提界面

一步一步地让生活更轻松

Proximity 11 Click with Curiosity Nano with PIC18F57Q43

已发布 6月 24, 2024

点击板

Proximity 11 Click

开发板

Curiosity Nano with PIC18F57Q43

编译器

NECTO Studio

微控制器单元

PIC18F57Q43

接近检测不再是科幻小说;它是一种现实,正在重新定义我们与世界的连接方式。

A

A

硬件概览

它是如何工作的?

Proximity 11 Click 基于 ROHM Semiconductor 的 RPR-0521RS,这是一款数字环境光和接近传感器。它是一种准确且可靠的接近和环境光传感器,旨在用于使用 TFT 或 LCD 面板的应用中节省电力。 通过提供巨大的动态范围,RPR-0521RS 传感器允许放置在深色玻璃或半透明屏幕边框后面,也可以暴露在明亮的阳光下。 集成恒流 LED 驱动器的专有设计实现了即插即用的接近检测,范围从 1mm 到 100mm,无需校准程序。 通过在外壳内集成微光学元件,RPR-0521RS 极大地简化了应用设计。 使用 IR LED 检测物体的接近,IR LED 向物体发射光脉冲。 反射的 IR 光量由集成的 IR 光电二极管测量。 在 

LED 脉冲持续时间内,反射的 IR 光量被测量和集成。 在 LED 关闭状态下,也会测量和集成背景 IR 光。 然后从最终结果中减去背景 IR 光,从而实现准确的测量并减少背景 IR 噪声。 将其缩放为 16 位值后,最终结果以低/高字节格式在输出寄存器中可用。 通常,光敏元件对 IR 光最敏感。 人眼无法检测到 IR 光。因此,PD 元件必须过滤掉 IR 光,使得只有可见部分的光才能通过。 channel0 配备了这样的 PD,使其可用于 ALS 传感。 在 ALS 测量期间,两个通道都被测量。 RPR-0521RS 的数据表提供了一个转换公式,可以用来获得物理单位(lx)中的结果。 这些公式还考虑了来自通道 1 的 IR 测量,完全消除了其

对最终结果的影响。 通过调整积分时间(也称为过采样),可以完全消除荧光灯的闪烁效应。 广泛的中断引擎允许编写优化的固件。 四个寄存器用于指定 ALS 和接近测量的低和高阈值。 每当这些阈值被超过时,相应寄存器中的中断状态位将被设置。 用户可以将外部引脚分配给中断,因此每当发生中断事件时,MCU 都会收到警报。 每当超过编程次数(中断持久性)的阈值时,就会生成中断。 这有助于防止错误和不规则的中断报告。 Click board™ 设计为仅适用于 3.3V。当与使用 5V 通信电平的 MCU 一起使用时,应使用适当的电平转换电路。

Proximity 11 Click top side image
Proximity 11 Click bottom side image

功能概述

开发板

PIC18F57Q43 Curiosity Nano 评估套件是一款尖端的硬件平台,旨在评估 PIC18-Q43 系列内的微控制器。其设计的核心是包含了功能强大的 PIC18F57Q43 微控制器(MCU),提供先进的功能和稳健的性能。这个评估套件的关键特点包括一个黄 色用户 LED 和一个响应灵敏的机械用户开关,提供无

缝的交互和测试。为一个 32.768kHz 水晶振荡器足迹提供支持,确保精准的定时能力。套件内置的调试器拥有一个绿色电源和状态 LED,使编程和调试变得直观高效。此外,增强其实用性的还有虚拟串行端口 (CDC)和一个调试 GPIO 通道(DGI GPIO),提供广泛的连接选项。该套件通过 USB 供电,拥有由

 MIC5353 LDO 调节器提供支持的可调目标电压功能,确保在 1.8V 至 5.1V 的输出电压范围内稳定运行,最大输出电流为 500mA,受环境温度和电压限制。

PIC18F57Q43 Curiosity Nano double side image

微控制器概述 

MCU卡片 / MCU

default

建筑

PIC

MCU 内存 (KB)

128

硅供应商

Microchip

引脚数

48

RAM (字节)

8196

你完善了我!

配件

Curiosity Nano Base for Click boards 是一款多功能硬件扩展平台,专为简化 Curiosity Nano 套件与扩展板之间的集成而设计,特别针对符合 mikroBUS™ 标准的 Click 板和 Xplained Pro 扩展板。这款创新的基板(屏蔽板)提供了无缝的连接和扩展可能性,简化了实验和开发过程。主要特点包括从 Curiosity Nano 套件提供 USB 电源兼容性,以及为增强灵活性而提供的另一种外部电源输入选项。板载锂离子/锂聚合物充电器和管理电路确保电池供电应用的平稳运行,简化了使用和管理。此外,基板内置了一个固定的 3.3V 电源供应单元,专用于目标和 mikroBUS™ 电源轨,以及一个固定的 5.0V 升压转换器,专供 mikroBUS™ 插座的 5V 电源轨,为各种连接设备提供稳定的电力供应。

Curiosity Nano Base for Click boards accessories 1 image

使用的MCU引脚

mikroBUS™映射器

NC
NC
AN
NC
NC
RST
NC
NC
CS
NC
NC
SCK
NC
NC
MISO
NC
NC
MOSI
Power Supply
3.3V
3.3V
Ground
GND
GND
NC
NC
PWM
Interrupt
PA6
INT
NC
NC
TX
NC
NC
RX
I2C Clock
PB2
SCL
I2C Data
PB1
SDA
NC
NC
5V
Ground
GND
GND
1

“仔细看看!”

Click board™ 原理图

Proximity 11 Click Schematic schematic

一步一步来

项目组装

Curiosity Nano Base for Click boards front image hardware assembly

从选择您的开发板和Click板™开始。以Curiosity Nano with PIC18F57Q43作为您的开发板开始。

Curiosity Nano Base for Click boards front image hardware assembly
Charger 27 Click front image hardware assembly
PIC18F47Q10 Curiosity Nano front image hardware assembly
Prog-cut hardware assembly
Board mapper by product8 hardware assembly
Necto image step 2 hardware assembly
Necto image step 3 hardware assembly
Necto image step 4 hardware assembly
Necto image step 5 hardware assembly
Necto image step 6 hardware assembly
PIC18F57Q43 Curiosity MCU Step hardware assembly
Necto No Display image step 8 hardware assembly
Necto image step 9 hardware assembly
Necto image step 10 hardware assembly
Debug Image Necto Step hardware assembly

软件支持

库描述

该库包含 这个库包含了Proximity 11 Click 驱动程序的 API。

关键函数:

  • proximity11_get - 此功能从所需寄存器读取接近值。

  • proximity11_update - 此功能更新用于计算照度的数据。如果更改 ALS 测量时间和 ALS 增益,应调用此功能。

  • proximity11_set_als_threshold_high - 此功能设置高 ALS 阈值。

开源

代码示例

完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio 应用程序代码也可以在MIKROE的GitHub账户中找到。

/*!
 * \file 
 * \brief Proximity11 Click example
 * 
 * # Description
 * This appication enables usage of the proximity and ambient light sensors
 *
 * The demo application is composed of two sections :
 * 
 * ## Application Init 
 * Initializes I2C driver and performs device initialization
 * 
 * ## Application Task  
 * Gets ALS and PS values and logs those values
 * 
 * \author MikroE Team
 *
 */
// ------------------------------------------------------------------- INCLUDES

#include "board.h"
#include "log.h"
#include "proximity11.h"

// ------------------------------------------------------------------ VARIABLES

static proximity11_t proximity11;
static log_t logger;

// ------------------------------------------------------ APPLICATION FUNCTIONS

void application_init ( void )
{
    log_cfg_t log_cfg;
    proximity11_cfg_t cfg;
    uint8_t init_status;

    /** 
     * Logger initialization.
     * Default baud rate: 115200
     * Default log level: LOG_LEVEL_DEBUG
     * @note If USB_UART_RX and USB_UART_TX 
     * are defined as HAL_PIN_NC, you will 
     * need to define them manually for log to work. 
     * See @b LOG_MAP_USB_UART macro definition for detailed explanation.
     */
    LOG_MAP_USB_UART( log_cfg );
    log_init( &logger, &log_cfg );
    log_info( &logger, "---- Application Init ----" );

    //  Click initialization.

    proximity11_cfg_setup( &cfg );
    PROXIMITY11_MAP_MIKROBUS( cfg, MIKROBUS_1 );
    proximity11_init( &proximity11, &cfg );

    Delay_ms ( 500 );

    init_status = proximity11_default_cfg( &proximity11 );

    if ( init_status == 1 )
    {
        log_printf( &logger, "> app init fail\r\n" );
		while( 1 );
    }
    else if ( init_status == 0 )
    {
        log_printf( &logger, "> app init done\r\n" );
    }
}

void application_task ( void )
{
    //  Task implementation

    uint16_t ps_value;
    float als_value;

    proximity11_get_ps_als_values( &proximity11, &ps_value, &als_value );

    log_printf( &logger, "PS  : %u [count]\r\n", ps_value );
    log_printf( &logger, "ALS : %.2f [Lx]\r\n\r\n", als_value );

    Delay_ms ( 500 );

}

int main ( void ) 
{
    /* Do not remove this line or clock might not be set correctly. */
    #ifdef PREINIT_SUPPORTED
    preinit();
    #endif
    
    application_init( );
    
    for ( ; ; ) 
    {
        application_task( );
    }

    return 0;
}


// ------------------------------------------------------------------------ END

额外支持

资源

喜欢这个项目吗?

'购买此套件' 按钮会直接带您进入购物车,您可以在购物车中轻松添加或移除产品。