source: rtos_arduino/trunk/arduino_lib/libraries/Esplora/examples/Beginners/EsploraLightCalibrator/EsploraLightCalibrator.ino@ 136

Last change on this file since 136 was 136, checked in by ertl-honda, 8 years ago

ライブラリとOS及びベーシックなサンプルの追加.

File size: 2.5 KB
Line 
1/*
2 Esplora Led calibration
3
4 This sketch shows you how to read and calibrate the light sensor.
5 Because light levels vary from one location to another, you need to calibrate the
6 sensor for each location. To do this, you read the sensor for a few seconds,
7 and save the highest and lowest readings as maximum and minimum.
8 Then, when you're using the sensor's reading (for example, to set the brightness
9 of the LED), you map the sensor's reading to a range between the minimum
10 and the maximum.
11
12 Created on 22 Dec 2012
13 by Tom Igoe
14
15 This example is in the public domain.
16 */
17
18#include <Esplora.h>
19
20// variables:
21int lightMin = 1023; // minimum sensor value
22int lightMax = 0; // maximum sensor value
23boolean calibrated = false; // whether the sensor's been calibrated yet
24
25void setup() {
26 // initialize the serial communication:
27 Serial.begin(9600);
28
29 // print an intial message
30 Serial.println("To calibrate the light sensor, press and hold Switch 1");
31}
32
33void loop() {
34 // if switch 1 is pressed, go to the calibration function again:
35 if (Esplora.readButton(1) == LOW) {
36 calibrate();
37 }
38 // read the sensor into a variable:
39 int light = Esplora.readLightSensor();
40
41 // map the light level to a brightness level for the LED
42 // using the calibration min and max:
43 int brightness = map(light, lightMin, lightMax, 0, 255);
44 // limit the brightness to a range from 0 to 255:
45 brightness = constrain(brightness, 0, 255);
46 // write the brightness to the blue LED.
47 Esplora.writeBlue(brightness);
48
49 // if the calibration's been done, show the sensor and brightness
50 // levels in the serial monitor:
51 if (calibrated == true) {
52 // print the light sensor levels and the LED levels (to see what's going on):
53 Serial.print("light sensor level: ");
54 Serial.print(light);
55 Serial.print(" blue brightness: ");
56 Serial.println(brightness);
57 }
58 // add a delay to keep the LED from flickering:
59 delay(10);
60}
61
62void calibrate() {
63 // tell the user what do to using the serial monitor:
64 Serial.println("While holding switch 1, shine a light on the light sensor, then cover it.");
65
66 // calibrate while switch 1 is pressed:
67 while (Esplora.readButton(1) == LOW) {
68 // read the sensor value:
69 int light = Esplora.readLightSensor();
70
71 // record the maximum sensor value:
72 if (light > lightMax) {
73 lightMax = light;
74 }
75
76 // record the minimum sensor value:
77 if (light < lightMin) {
78 lightMin = light;
79 }
80 // note that you're calibrated, for future reference:
81 calibrated = true;
82 }
83}
84
85
86
87
88
89
90
91
Note: See TracBrowser for help on using the repository browser.