microwave 2.0.0.0
Main Page

Microwave click

Microwave click detects movement, thanks to the PD-V11 a 24GHz microwave motion sensor. The typical use for Microwave click is a proximity or motion detector in various applications and devices.

click Product page


Click library

  • Author : Nemanja Medakovic
  • Date : Nov 2019.
  • Type : ADC type

Software Support

We provide a library for the Microwave Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.

Package can be downloaded/installed directly form compilers IDE(recommended way), or downloaded from our LibStock, or found on mikroE github account.

Library Description

‍This library contains API for Microwave Click driver.

Standard key functions :

‍This is an example which demonstrates the use of Microwave Click board. Microwave click reads ADC results, takes exact amount of samples, calculation of difference between taken samples and reference ADC value, and reports movement if difference is greater/lower than selected threshold value.

The demo application is composed of two sections :

Application Init

‍Initializes the ADC and uart console where the results will be displayed. Also calculates the reference ADC value for Microwave Click board.

void application_init( void )
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, "---- Application Init ----" );
// Click initialization.
MICROWAVE_MAP_MIKROBUS( cfg, MIKROBUS_1 );
microwave_init( &microwave, &cfg );
Delay_ms ( 100 );
log_printf( &logger, " Calibrating the sensor...\r\n" );
log_printf( &logger, " There must be no movement near the sensor!\r\n" );
log_printf( &logger, "*********************************************\r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
sum = 0;
for ( uint8_t cnt = 0; cnt < MICROWAVE_SAMPLES_COUNT_100; cnt++ )
{
sum += microwave_generic_read( &microwave );
}
reference = sum / MICROWAVE_SAMPLES_COUNT_100;
log_printf( &logger, " The sensor has been calibrated!\r\n" );
log_printf( &logger, "** Reference value: %d\r\n", reference );
log_printf( &logger, "*********************************************\r\n" );
Delay_ms ( 1000 );
}
#define MICROWAVE_MAP_MIKROBUS(cfg, mikrobus)
Definition microwave.h:85
microwave_err_t microwave_init(microwave_t *ctx, microwave_cfg_t *cfg)
Click Initialization function.
microwave_data_t microwave_generic_read(microwave_t *ctx)
Generic ADC Read function.
void microwave_cfg_setup(microwave_cfg_t *cfg)
Configuration Object Setup function.
#define MICROWAVE_SAMPLES_COUNT_100
Definition microwave.h:65
void application_init(void)
Definition main.c:44
Click configuration structure definition.
Definition microwave.h:124

Application Task

‍Reads the AD converted results and compares this results with the previously calculated reference value, taking into account the choosen threshold value which controls the sensor sensitivity. All data is being displayed on the USB UART where you can track their changes.

void application_task( void )
{
microwave_data_t adc_sample;
uint16_t detector;
uint8_t sampler;
uint8_t cnt = 0;
sum = 0;
for ( sampler = 0; sampler < MICROWAVE_SAMPLES_COUNT_100; sampler++ )
{
adc_sample = microwave_generic_read( &microwave );
sum += adc_sample;
cnt++;
}
if ( cnt )
{
detector = sum / cnt;
if ( ( ( detector + MICROWAVE_THRESHOLD_10 ) < reference ||
( detector - MICROWAVE_THRESHOLD_10 ) > reference ) &&
old_detector != detector )
{
log_printf( &logger, "** MOVE DETECTED!\r\n" );
log_printf( &logger, "** Detector value : %d\r\n", detector );
log_printf( &logger, "**************************\r\n" );
old_detector = detector;
Delay_ms ( 100 );
}
}
}
#define MICROWAVE_THRESHOLD_10
Definition microwave.h:73
uint16_t microwave_data_t
Analog data type.
Definition microwave.h:99
void application_task(void)
Definition main.c:90

The full application code, and ready to use projects can be installed directly form compilers IDE(recommneded) or found on LibStock page or mikroE GitHub accaunt.

Other mikroE Libraries used in the example:

  • MikroSDK.Board
  • MikroSDK.Log
  • Click.Microwave

Additional notes and informations

Depending on the development board you are using, you may need USB UART click, USB UART 2 Click or RS232 Click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all Mikroelektronika compilers, or any other terminal application of your choice, can be used to read the message.