In robotics, the color sensor is used widely. It is used to identify the color of the object. It reflects white light on the object whose color is to be detected. Then it observes the reflected rays from the objects and converts it to the corresponding voltage signal using photodiode. In this post how to interface color sensor with Arduino is discussed.
CONNECTIONS:
CODE:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | //Pins const int s0 = 4; const int s1 = 5; const int s2 = 6; const int s3 = 7; const int out = 8; int red = 0; int green = 0; int blue = 0; void setup() { Serial.begin(9600); pinMode(s0, OUTPUT); pinMode(s1, OUTPUT); pinMode(s2, OUTPUT); pinMode(s3, OUTPUT); pinMode(out, INPUT); digitalWrite(s0, HIGH); digitalWrite(s1, HIGH); } void loop() { color(); Serial.print("R Intensity:"); Serial.print(red, DEC); Serial.print(" G Intensity: "); Serial.print(green, DEC); Serial.print(" B Intensity : "); Serial.print(blue, DEC); if (red < blue && red < green && red < 20) { Serial.println(" - (Red Color)"); } else if (blue < red && blue < green) { Serial.println(" - (Blue Color)"); } else if (green < red && green < blue) { Serial.println(" - (Green Color)"); } else{ Serial.println(); } delay(300); } void color() { digitalWrite(s2, LOW); digitalWrite(s3, LOW); //count OUT, pRed, RED red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); digitalWrite(s3, HIGH); //count OUT, pBLUE, BLUE blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); digitalWrite(s2, HIGH); //count OUT, pGreen, GREEN green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); } |
OUTPUT:
THANKYOU
SHARE THIS!!!