Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- Servo Servo_Green;
- Servo Servo_Blue;
- Servo Servo_Red;
- #define S0 4
- #define S1 5
- #define S2 6
- #define S3 7
- #define sensorOut 8
- #define Servo1 9
- #define Servo2 10
- #define Servo3 11
- int frequencyR = 0;
- int frequencyG = 0;
- int frequencyB = 0;
- //Color is RED
- int numA = 26;
- int numB = 120;
- int numC = 19;
- //Color is Blue
- int numAb = 130;
- int numBb = 70;
- int numCb = 18;
- //Color is Green
- int numAg = 54;
- int numBg = 37;
- int numCg = 14;
- void setup() {
- Servo_Green.attach(Servo1);
- Servo_Blue.attach(Servo2);
- Servo_Red.attach(Servo3);
- pinMode(S0, OUTPUT);
- pinMode(S1, OUTPUT);
- pinMode(S2, OUTPUT);
- pinMode(S3, OUTPUT);
- pinMode(sensorOut, INPUT);
- digitalWrite(S0, HIGH);
- digitalWrite(S1, LOW);
- Serial.begin(9600);
- }
- void loop() {
- ReadColorSensor();
- SerialOutColor(frequencyR, frequencyG, frequencyB);
- }
- void ReadColorSensor() {
- digitalWrite(S2, LOW);
- digitalWrite(S3, LOW);
- frequencyR = pulseIn(sensorOut, LOW);
- Serial.print("R= ");
- Serial.print(frequencyR);
- Serial.print(" ");
- delay(100);
- digitalWrite(S2, HIGH);
- digitalWrite(S3, HIGH);
- frequencyG = pulseIn(sensorOut, LOW);
- Serial.print("G= ");
- Serial.print(frequencyG);
- Serial.print(" ");
- delay(100);
- digitalWrite(S2, LOW);
- digitalWrite(S3, HIGH);
- frequencyB = pulseIn(sensorOut, LOW);
- Serial.print("B= ");
- Serial.print(frequencyB);
- Serial.println(" ");
- delay(100);
- }
- void SerialOutColor(int a, int b, int c) {
- //Color is RED
- if (a > (numA - 10) && a < (numA + 10) && b > (numB - 10) && b < (numB + 10) && c > (numC - 10) && c < (numC + 10)) {
- Serial.println("Color is RED");
- delay(2000);
- MoveRedServo();
- }
- //Color is Blue
- else if (a > (numAb - 10) && a < (numAb + 10) && b > (numBb - 10) && b < (numBb + 10) && c > (numCb - 10) && c < (numCb + 10)) {
- Serial.println("Color is Blue");
- delay(2000);
- MoveBlueServo();
- }
- //Color is Green
- else if (a > (numAg - 10) && a < (numAg + 10) && b > (numBg - 10) && b < (numBg + 10) && c > (numCg - 10) && c < (numCg + 10)) {
- Serial.println("Color is Green");
- delay(2000);
- MoveGreenServo();
- }
- }
- void MoveRedServo() {
- Servo_Green.write(90);
- Servo_Blue.write(90);
- Servo_Red.write(0);
- delay(2000);
- Servo_Green.write(90);
- Servo_Blue.write(90);
- Servo_Red.write(90);
- }
- void MoveBlueServo() {
- Servo_Green.write(90);
- Servo_Blue.write(0);
- Servo_Red.write(90);
- delay(2000);
- Servo_Green.write(90);
- Servo_Blue.write(90);
- Servo_Red.write(90);
- }
- void MoveGreenServo() {
- Servo_Green.write(0);
- Servo_Blue.write(90);
- Servo_Red.write(90);
- delay(2000);
- Servo_Green.write(90);
- Servo_Blue.write(90);
- Servo_Red.write(90);
- }
Advertisement
Add Comment
Please, Sign In to add comment