Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Arduino.h>
- #include <MD_TCS230.h>
- #define S0_OUT 2
- #define S1_OUT 3
- #define S2_OUT 4
- #define S3_OUT 5
- MD_TCS230 ColorSensor(S2_OUT, S3_OUT, S0_OUT, S1_OUT);
- #define R_OUT 6
- #define G_OUT 7
- #define B_OUT 8
- void set_rgb_led(int r, int g, int b) {
- if (g > 100) {
- g = (255 + g) / 2;
- r /= 2;
- b /= 2;
- }
- analogWrite(R_OUT, 255 - r);
- analogWrite(G_OUT, 255 - g);
- analogWrite(B_OUT, 255 - b);
- }
- void setup()
- {
- Serial.begin(115200);
- Serial.println("Started!");
- sensorData whiteCalibration;
- whiteCalibration.value[TCS230_RGB_R] = 42920;
- whiteCalibration.value[TCS230_RGB_G] = 43330;
- whiteCalibration.value[TCS230_RGB_B] = 55360;
- sensorData blackCalibration;
- blackCalibration.value[TCS230_RGB_R] = 6610;
- blackCalibration.value[TCS230_RGB_G] = 6000;
- blackCalibration.value[TCS230_RGB_B] = 7350;
- ColorSensor.begin();
- ColorSensor.setDarkCal(&blackCalibration);
- ColorSensor.setWhiteCal(&whiteCalibration);
- pinMode(R_OUT, OUTPUT);
- pinMode(G_OUT, OUTPUT);
- pinMode(B_OUT, OUTPUT);
- }
- void loop()
- {
- colorData rgb;
- ColorSensor.read();
- while (!ColorSensor.available())
- ;
- ColorSensor.getRGB(&rgb);
- set_rgb_led(rgb.value[TCS230_RGB_R], rgb.value[TCS230_RGB_G], rgb.value[TCS230_RGB_B]);
- print_rgb(rgb);
- delay(50);
- }
- void print_rgb(colorData rgb)
- {
- Serial.print(rgb.value[TCS230_RGB_R]);
- Serial.print(" ");
- Serial.print(rgb.value[TCS230_RGB_G]);
- Serial.print(" ");
- Serial.print(rgb.value[TCS230_RGB_B]);
- Serial.println();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement