example for using the rgb_color_sensor class

Dependencies:   mbed rgb_sensor

Committer:
meriac
Date:
Wed Jun 25 14:44:44 2014 +0000
Revision:
0:d034f4b3b23c
Child:
3:3649eaf4f954
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
meriac 0:d034f4b3b23c 1 /* Discrete RGB color sensor
meriac 0:d034f4b3b23c 2 *
meriac 0:d034f4b3b23c 3 * - uses single-channel light-dependent resistor (via ADC)
meriac 0:d034f4b3b23c 4 * and a RGB LED.
meriac 0:d034f4b3b23c 5 * - compensates background light
meriac 0:d034f4b3b23c 6 *
meriac 0:d034f4b3b23c 7 * Copyright (c) 2014 ARM Limited
meriac 0:d034f4b3b23c 8 *
meriac 0:d034f4b3b23c 9 * Licensed under the Apache License, Version 2.0 (the "License");
meriac 0:d034f4b3b23c 10 * you may not use this file except in compliance with the License.
meriac 0:d034f4b3b23c 11 * You may obtain a copy of the License at
meriac 0:d034f4b3b23c 12 *
meriac 0:d034f4b3b23c 13 * http://www.apache.org/licenses/LICENSE-2.0
meriac 0:d034f4b3b23c 14 *
meriac 0:d034f4b3b23c 15 * Unless required by applicable law or agreed to in writing, software
meriac 0:d034f4b3b23c 16 * distributed under the License is distributed on an "AS IS" BASIS,
meriac 0:d034f4b3b23c 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
meriac 0:d034f4b3b23c 18 * See the License for the specific language governing permissions and
meriac 0:d034f4b3b23c 19 * limitations under the License.
meriac 0:d034f4b3b23c 20 */
meriac 0:d034f4b3b23c 21
meriac 0:d034f4b3b23c 22 #include <mbed.h>
meriac 0:d034f4b3b23c 23 #include "rgb_sensor.h"
meriac 0:d034f4b3b23c 24
meriac 0:d034f4b3b23c 25 #define COUNT(x) (sizeof(x)/sizeof(x[0]))
meriac 0:d034f4b3b23c 26
meriac 0:d034f4b3b23c 27 int main() {
meriac 0:d034f4b3b23c 28 TRGB color;
meriac 0:d034f4b3b23c 29 int i, seq;
meriac 0:d034f4b3b23c 30
meriac 0:d034f4b3b23c 31 /* serial console */
meriac 0:d034f4b3b23c 32 Serial console(USBTX, USBRX);
meriac 0:d034f4b3b23c 33 console.baud(115200);
meriac 0:d034f4b3b23c 34
meriac 0:d034f4b3b23c 35 /* R,G,B pins and ADC for light dependent resistor */
meriac 0:d034f4b3b23c 36 RGB_Sensor rgb(p23,p24,p25,p20);
meriac 0:d034f4b3b23c 37
meriac 0:d034f4b3b23c 38 /* needed for time measurement */
meriac 0:d034f4b3b23c 39 Timer timer;
meriac 0:d034f4b3b23c 40
meriac 0:d034f4b3b23c 41 seq = 0;
meriac 0:d034f4b3b23c 42 while(1) {
meriac 0:d034f4b3b23c 43
meriac 0:d034f4b3b23c 44 /* start four channel RGB conversion */
meriac 0:d034f4b3b23c 45 timer.reset();
meriac 0:d034f4b3b23c 46 timer.start();
meriac 0:d034f4b3b23c 47
meriac 0:d034f4b3b23c 48 /* detect RGB value */
meriac 0:d034f4b3b23c 49 rgb.capture(color);
meriac 0:d034f4b3b23c 50
meriac 0:d034f4b3b23c 51 /* stop time measurement */
meriac 0:d034f4b3b23c 52 timer.stop();
meriac 0:d034f4b3b23c 53
meriac 0:d034f4b3b23c 54 console.printf("%06i", seq++);
meriac 0:d034f4b3b23c 55 for(i=0; i<COUNT(color.data); i++)
meriac 0:d034f4b3b23c 56 console.printf(",%04i", color.data[i] / RGB_OVERSAMPLING);
meriac 0:d034f4b3b23c 57 console.printf(",%i\n\r", timer.read_us());
meriac 0:d034f4b3b23c 58 }
meriac 0:d034f4b3b23c 59 }