Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: rgbSensor.cpp
- Revision:
- 0:a9a4c0fd5f8a
diff -r 000000000000 -r a9a4c0fd5f8a rgbSensor.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rgbSensor.cpp Tue Nov 27 18:01:29 2018 +0000
@@ -0,0 +1,68 @@
+#include "mbed.h"
+#include "rgbSensor.h"
+
+rgbSensor::rgbSensor(PinName sda, PinName scl) :
+ _i2c(sda, scl){
+ value_R = 0;
+ value_G = 0;
+ value_B = 0;
+ sensor_addr = 41 << 1;
+
+ _i2c.frequency(200000);
+
+ char id_regval[1] = {146};
+ char data[1] = {0};
+ _i2c.write(sensor_addr,id_regval,1, true);
+ _i2c.read(sensor_addr,data,1,false);
+}
+
+void rgbSensor::update()
+{
+ char clear_reg[1] = {148};
+ char clear_data[2] = {0,0};
+ _i2c.write(sensor_addr,clear_reg,1, true);
+ _i2c.read(sensor_addr,clear_data,2, false);
+
+ value_C = ((int)clear_data[1] << 8) | clear_data[0];
+
+ char red_reg[1] = {150};
+ char red_data[2] = {0,0};
+ _i2c.write(sensor_addr,red_reg,1, true);
+ _i2c.read(sensor_addr,red_data,2, false);
+
+ value_R = ((int)red_data[1] << 8) | red_data[0];
+
+ char green_reg[1] = {152};
+ char green_data[2] = {0,0};
+ _i2c.write(sensor_addr,green_reg,1, true);
+ _i2c.read(sensor_addr,green_data,2, false);
+
+ value_G = ((int)green_data[1] << 8) | green_data[0];
+
+ char blue_reg[1] = {154};
+ char blue_data[2] = {0,0};
+ _i2c.write(sensor_addr,blue_reg,1, true);
+ _i2c.read(sensor_addr,blue_data,2, false);
+
+ value_B = ((int)blue_data[1] << 8) | blue_data[0];
+}
+
+int rgbSensor::get_C()
+{
+ return value_C;
+}
+
+int rgbSensor::get_R()
+{
+ return value_R;
+}
+
+int rgbSensor::get_G()
+{
+ return value_G;
+}
+
+int rgbSensor::get_B()
+{
+ return value_B;
+}
