Rohm / Mbed OS rohm-tileshield-6sensor-demo

Dependencies:   rohm-bh1726 rohm-bh1745 rohm-rpr0521 rohm-sensor-hal

Fork of rohm-bd7411g-hello by Rohm

Files at this revision

API Documentation at this revision

Comitter:
MikkoZ
Date:
Tue Sep 20 12:11:45 2016 +0000
Parent:
12:18c2160813c6
Commit message:
Initial version of 6sensor-demo.; ; Tested with GR-Peach and Rohm tileshield.

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
rohm-bh1726.lib Show annotated file Show diff for this revision Revisions of this file
rohm-bh1745.lib Show annotated file Show diff for this revision Revisions of this file
rohm-rpr0521.lib Show annotated file Show diff for this revision Revisions of this file
rohm-sensor-hal.lib Show annotated file Show diff for this revision Revisions of this file
diff -r 18c2160813c6 -r 69b1b8cadb78 main.cpp
--- a/main.cpp	Mon Sep 19 10:07:15 2016 +0000
+++ b/main.cpp	Tue Sep 20 12:11:45 2016 +0000
@@ -1,21 +1,151 @@
-#include "mbed.h"
+/*   Copyright 2016 Rohm Semiconductor
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
 
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+#include "rohm-sensor-hal/rohm-sensor-hal/rohm_hal.h"       //mbed.h, types, DEBUG_print*
+#include "rohm-sensor-hal/rohm-sensor-hal/I2CCommon.h"
+
+#include "rohm-bh1726/rohm-bh1726/bh1726_driver.h"
+#include "rohm-bh1726/rohm-bh1726/bh1726.h"
+#include "rohm-rpr0521/rohm-rpr0521/rpr0521_driver.h"
+#include "rohm-rpr0521/rohm-rpr0521/rpr0521.h"
+#include "rohm-bh1745/rohm-bh1745/bh1745_driver.h"
+#include "rohm-bh1745/rohm-bh1745/bh1745.h"
+
+
+Serial pc(USBTX, USBRX);
 DigitalOut led1(LED1);
-//Edit input pin setup according to where hall sensor is connected
-//(USER_BUTTON0 for button on GR-PEACH)
 DigitalIn hall_sensor(USER_BUTTON0);
-Serial pc(USBTX, USBRX);
+AnalogIn ml8511_input(A0);
+AnalogIn bd1020_input(A2);
+
+
+void bh1726_print_one_value(){
+    bool error;
+    uint16_t data[2];       //2 channels of 16-bit data
+
+    error = bh1726_read_data(&data[0]);
+    if (!error) {
+        pc.printf("BH1726 ALS Data0[%4u], Data1[%4u]\n\r", data[0], data[1]);
+        }
+    else {
+        pc.printf("\n\r");
+        }
+    return;
+}
+
+
+void bd1020_print_one_value(){
+    float temperature;
+
+    temperature = -(1000 * (bd1020_input * 3.3f) - 1546) / 8.2;
+    pc.printf("BD1020 Temperature=%5.3f\r\n", temperature);
+    return;
+}
+
+
+void rpr0521_print_one_value(){
+    bool error;
+    uint16_t data[3];
+    
+    error = rpr0521_read_data(&data[0]);
+    if (!error) {
+        pc.printf("RPR0521 PS[%4u], Als0[%4u], Als1[%4u]\n\r", data[0], data[1], data[2]);
+        }
+    else {
+        pc.printf("\n\r");
+        }
+}
+
+
+void bh1745_print_one_value(){
+    bool error;
+    uint16_t data[4];       //4 channels of 16-bit data
+
+    error = bh1745_read_data(&data[0]);
+    if (!error) {
+        pc.printf("BH1745 Red[%4u], Green[%4u], Blue[%4u], Clear[%4u]\n\r", data[0], data[1], data[2], data[3]);
+        }
+    else {
+        pc.printf("\n\r");
+        }
+}
+
+
+void ml8511_print_one_value(){
+    float uvraw, uv;
+    #define MIN (0.300)
+    #define MAX (0.900)
+    #define UVONMAX 15
+    uvraw = ml8511_input;
+    uv = ( (UVONMAX/(MAX-MIN)) * (uvraw - MIN) );
+    pc.printf("ML8511 UV Intensity %2.2fmW/cm^2 (raw[%2.3f])\r\n", uv, uvraw);
+}
+
+
+void bd7411_print_one_value(){
+        if (!hall_sensor){
+            pc.printf("BD7411 Magnet detected.\n\r");
+            }
+        else{
+            pc.printf("BD7411 No magnet.\n\r");
+            }
+        led1 = hall_sensor;
+}
+
 
 // main() runs in its own thread in the OS
 // (note the calls to Thread::wait below for delays)
 int main() {
     pc.printf("\n\r");
-    pc.printf("BD7411G Hall sensor example application.\r\n");
-    pc.printf("Led on board will change ON/OFF according to magnet detection. \n\r");
+    pc.printf("\n\r");
+    pc.printf("\n\r");
+    pc.printf("6 sensor test on Rohm tileshield with 6 tiles.\r\n");
+    pc.printf("\n\r");
+
+    I2CCommonBegin();
+
+    bh1726_wait_until_found();
+    pc.printf("BH1726 Sensor found.\n\r");
+    bh1726_initial_setup();
+
+    pc.printf("BD1020  Analog sensor assumed to be connected.\n\r");
+
+    rpr0521_wait_until_found();
+    pc.printf("RPR0521 Sensor found.\n\r");
+    rpr0521_initial_setup();
+
+    bh1745_wait_until_found();
+    pc.printf("BH1745 Sensor found.\n\r");
+    bh1745_initial_setup();
+
+    pc.printf("ML8511  Analog sensor assumed to be connected.\n\r");
+    pc.printf("BD7411 Digital sensor assumed to be connected.\n\r");
+
+    pc.printf("\n\r");
+    pc.printf("\n\r");
+
 
     while (true) {
-        led1 = hall_sensor;
-        Thread::wait(100);
+        bh1726_print_one_value();
+        bd1020_print_one_value();
+        rpr0521_print_one_value();
+        bh1745_print_one_value();
+        ml8511_print_one_value();
+        bd7411_print_one_value();
+        
+        Thread::wait(200);
     }
 }
 
diff -r 18c2160813c6 -r 69b1b8cadb78 rohm-bh1726.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rohm-bh1726.lib	Tue Sep 20 12:11:45 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/teams/Rohm/code/rohm-bh1726/#6eb91c7c6560
diff -r 18c2160813c6 -r 69b1b8cadb78 rohm-bh1745.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rohm-bh1745.lib	Tue Sep 20 12:11:45 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/teams/Rohm/code/rohm-bh1745/#2b4a1b49998d
diff -r 18c2160813c6 -r 69b1b8cadb78 rohm-rpr0521.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rohm-rpr0521.lib	Tue Sep 20 12:11:45 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/teams/Rohm/code/rohm-rpr0521/#145f11782373
diff -r 18c2160813c6 -r 69b1b8cadb78 rohm-sensor-hal.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rohm-sensor-hal.lib	Tue Sep 20 12:11:45 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/teams/Rohm/code/rohm-sensor-hal/#f83fa2f3cfab