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.
main.cpp
00001 // Example program connecting to the TCS34725 Color Sensor to the K64F using I2C 00002 00003 #include "mbed.h" 00004 00005 I2C i2c(I2C_SDA, I2C_SCL); //pins for I2C communication (SDA, SCL) 00006 Serial pc(USBTX, USBRX); 00007 00008 int sensor_addr = 41 << 1; 00009 00010 DigitalOut green(LED_GREEN); 00011 00012 int main() { 00013 pc.baud(9600); 00014 green = 1; // off 00015 00016 // Connect to the Color sensor and verify whether we connected to the correct sensor. 00017 00018 i2c.frequency(200000); 00019 00020 char id_regval[1] = {146}; 00021 char data[1] = {0}; 00022 i2c.write(sensor_addr,id_regval,1, true); 00023 i2c.read(sensor_addr,data,1,false); 00024 00025 if (data[0]==68) { 00026 green = 0; 00027 wait (2); 00028 green = 1; 00029 } else { 00030 green = 1; 00031 } 00032 00033 // Initialize color sensor 00034 00035 char timing_register[2] = {129,0}; 00036 i2c.write(sensor_addr,timing_register,2,false); 00037 00038 char control_register[2] = {143,0}; 00039 i2c.write(sensor_addr,control_register,2,false); 00040 00041 char enable_register[2] = {128,3}; 00042 i2c.write(sensor_addr,enable_register,2,false); 00043 00044 // Read data from color sensor (Clear/Red/Green/Blue) 00045 00046 while (true) { 00047 char clear_reg[1] = {148}; 00048 char clear_data[2] = {0,0}; 00049 i2c.write(sensor_addr,clear_reg,1, true); 00050 i2c.read(sensor_addr,clear_data,2, false); 00051 00052 int clear_value = ((int)clear_data[1] << 8) | clear_data[0]; 00053 00054 char red_reg[1] = {150}; 00055 char red_data[2] = {0,0}; 00056 i2c.write(sensor_addr,red_reg,1, true); 00057 i2c.read(sensor_addr,red_data,2, false); 00058 00059 int red_value = ((int)red_data[1] << 8) | red_data[0]; 00060 00061 char green_reg[1] = {152}; 00062 char green_data[2] = {0,0}; 00063 i2c.write(sensor_addr,green_reg,1, true); 00064 i2c.read(sensor_addr,green_data,2, false); 00065 00066 int green_value = ((int)green_data[1] << 8) | green_data[0]; 00067 00068 char blue_reg[1] = {154}; 00069 char blue_data[2] = {0,0}; 00070 i2c.write(sensor_addr,blue_reg,1, true); 00071 i2c.read(sensor_addr,blue_data,2, false); 00072 00073 int blue_value = ((int)blue_data[1] << 8) | blue_data[0]; 00074 00075 // print sensor readings 00076 00077 pc.printf("Clear (%d), Red (%d), Green (%d), Blue (%d)\n", clear_value, red_value, green_value, blue_value); 00078 wait(0.5); 00079 } 00080 00081 }
Generated on Tue Jul 19 2022 07:29:41 by
1.7.2
Adafruit TCS34725 RGB Color Sensor