diff --git a/tests/driver_isl29020/Makefile b/tests/driver_isl29020/Makefile new file mode 100644 index 000000000..2dd0aadc5 --- /dev/null +++ b/tests/driver_isl29020/Makefile @@ -0,0 +1,28 @@ +APPLICATION = driver_isl29020 +include ../Makefile.tests_common + +FEATURES_REQUIRED = periph_i2c + +# Define default pin mappings for some boards: +ifneq (,$(filter iot-lab_M3,$(BOARD))) + export TEST_ISL29020_ADDR = 68 + export TEST_ISL29020_I2C ?= I2C_0 +endif + +USEMODULE += isl29020 +USEMODULE += vtimer + +ifneq (,$(TEST_ISL29020_I2C)) + CFLAGS += -DTEST_ISL29020_I2C=$(TEST_ISL29020_I2C) +else + # set random default + CFLAGS += -DTEST_ISL29020_I2C=I2C_0 +endif +ifneq (,$(TEST_ISL29020_ADDR)) + CFLAGS += -DTEST_ISL29020_ADDR=$(TEST_ISL29020_ADDR) +else + # set random default + CFLAGS += -DTEST_ISL29020_ADDR=68 +endif + +include $(RIOTBASE)/Makefile.include diff --git a/tests/driver_isl29020/README.md b/tests/driver_isl29020/README.md new file mode 100644 index 000000000..ad4c7c79b --- /dev/null +++ b/tests/driver_isl29020/README.md @@ -0,0 +1,12 @@ +# About +This is a manual test application for the ISL29020 light sensor driver. + +# Usage +This test application will initialize the list sensor with the following parameters: + - Mode: Ambient light measurement + - Range: 16000LUX + +After initialization, the sensor value is read every 250ms and printed to the STDOUT. + +To verify the seen value you can hold the sensor into a bright light or shield the sensor to +see the value changing. diff --git a/tests/driver_isl29020/main.c b/tests/driver_isl29020/main.c new file mode 100644 index 000000000..6b0bcca2a --- /dev/null +++ b/tests/driver_isl29020/main.c @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2014 Freie Universität Berlin + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + +/** + * @ingroup tests + * @{ + * + * @file + * @brief Test application for the ISL29020 light sensor + * + * @author Hauke Petersen + * + * @} + */ + +#ifndef TEST_ISL29020_I2C +#error "TEST_ISL29020_I2C not defined" +#endif +#ifndef TEST_ISL29020_ADDR +#error "TEST_ISL29020_ADDR not defined" +#endif + +#include + +#include "vtimer.h" +#include "isl29020.h" + +#define MODE ISL29020_MODE_AMBIENT +#define RANGE ISL29020_RANGE_16K +#define SLEEP (250 * 1000U) + +int main(void) +{ + isl29020_t dev; + int value; + + puts("ISL29020 light sensor test application\n"); + printf("Initializing ISL29020 sensor at I2C_%i... ", TEST_ISL29020_I2C); + if (isl29020_init(&dev, TEST_ISL29020_I2C, TEST_ISL29020_ADDR, RANGE, MODE) == 0) { + puts("[OK]\n"); + } + else { + puts("[Failed]"); + return 1; + } + + while (1) { + value = isl29020_read(&dev); + printf("Light value: %5i LUX\n", value); + vtimer_usleep(SLEEP); + } + + return 0; +}