ECEELEC4 Elective 4 (Microprocessor System) 01 / 1 / 19 SBEE - 4A ALAMO, LOPEZ, PEREZ, TORMIENTO PROF. JOSELITO A. TRINIDAD, MTE I. Title : COLOR SORTER SYSTEM II. Objectives Be able to; Construct a color sensing and color sorter system. Utilize a microcontroller. Program the system using embedded system III. List of Materials/Tools/Equipment 1. Color sensor module 2. Servo Motor 3. Microcontroller Comp. 4. Connecting wires 5. Breadboard 6. Compiler program IV. Block Diagram V. Methodology / Procedure 1. Gather all the necessary materials 2. Using the Data Sheet, construct the wiring diagram. 3. Make the program in an embedded system. 4. Configure your circuit having to identify at least 5 colors. 5. Connect a color in your sensor it must be represented in the OUTPUT Servo Motor VI. Flow Chart / Schematic Diagram Schematic Diagram Flow Chart VII. Algorithm and Program Codes Program Codes // Activity 2 of Microcontroller/Microprocessor // Color Sensor with Servo Motor #include <Servo.h> // The library of servo motor which includes to run the program. #define S0 2 // S0 of the Color Sensor Module is connected to pin 2 of the Arduino Uno R3 ECEELEC4 Elective 4 (Microprocessor System) 01 / 1 / 19 SBEE - 4A ALAMO, LOPEZ, PEREZ, TORMIENTO PROF. JOSELITO A. TRINIDAD, MTE #define S1 3 // S1 of the Color Sensor Module is connected to pin 3 of the Arduino Uno R3 #define S2 4 // S2 of the Color Sensor Module is connected to pin 4 of the Arduino Uno R3 #define S3 5 // S3 of the Color Sensor Module is connected to pin 5 of the Arduino Uno R3 #define OUT 6 // OUT of the Color Sensor Module is connected to pin 6 of the Arduino Uno R3 int ReadFrequencies = 0; //default reading frequency is equal to 0. int ReadColors = 0; //default reading color is equal to zero. Servo SV1; // Naming the Servo to SV1 void setup() { //Setting up the INPUT and OUTPUT of the system pinMode(S0, OUTPUT); // Setting up the S0 as output pinMode(S1, OUTPUT); // Setting up the S1 as output pinMode(S2, OUTPUT); // Setting up the S2 as output pinMode(S3, OUTPUT); // Setting up the S3 as output pinMode(OUT, INPUT); // Setting up the OUT as input //Initial Setup for frequency scaling: 20% digitalWrite(S0, HIGH); digitalWrite(S1, LOW); //Setting up the Serial port Serial.begin(9600); //Servo SV1.attach(9); // Servo motor is connect on Pin9 SV1.write(90); // } void loop() { // Setting red filtered photodiodes to be read digitalWrite(S2, LOW); digitalWrite(S3, LOW); // Reading the output frequency ReadFrequencies = pulseIn(OUT, LOW); int Red = ReadFrequencies; delay(50); // Setting the green filtered photodiodes to be read digitalWrite(S2, HIGH); digitalWrite(S3, HIGH); // Read the output frequency ReadFrequencies = pulseIn(OUT, LOW); int Green = ReadFrequencies; delay(50); // Setting blue filtered photodiodes to be read digitalWrite(S2, LOW); digitalWrite(S3, HIGH); // Reading the output frequency ReadFrequencies = pulseIn(OUT, LOW); int Blue = ReadFrequencies; delay(50); if(Red<34 & Red>30 & Green<125 & Green>113){ SV1.write(34); //Servo moves at 34degrees Serial.println("Red"); } if(Green<33 & Green>27 & Blue<37 &Blue>34){ SV1.write(68); //Servo moves at 68degrees Serial.println("Orange"); } if(Red<64 & Red>56 & Green<53 & Green>45){ SV1.write(102); //Servo moves at 102degrees Serial.println("Green"); ECEELEC4 Elective 4 (Microprocessor System) 01 / 1 / 19 SBEE - 4A ALAMO, LOPEZ, PEREZ, TORMIENTO PROF. JOSELITO A. TRINIDAD, MTE } if(Red<19 & Red>13 & Green<24 & Green>18){ SV1.write(136); //Servo moves at 136degrees Serial.println("Yellow"); SV1.write(170); //Servo moves at 170degrees Serial.println("Blue"); } if (Green<44 & Green>35 & Blue<25 & Blue>17){ } } return ReadColors; Algorithm Step 1: Start Step 2: Servo motor library includes Step 3: S0 of the Color Sensor Module is connected to pin 2 of the Arduino Uno R3 Step 4: S1 of the Color Sensor Module is connected to pin 3 of the Arduino Uno R3 Step 5: S2 of the Color Sensor Module is connected to pin 4 of the Arduino Uno R3 Step 6: S3 of the Color Sensor Module is connected to pin 5 of the Arduino Uno R3 Step 7: OUT of the Color Sensor Module is connected to pin 6 of the Arduino Uno R3 Step 8: Setting up the S0 as output Step 9: Setting up the S1 as output Step 10: Setting up the S2 as output Step 11: Setting up the S3 as output Step 12: Setting up the OUT as input Step 13: Initial Setup for frequency scaling: 20% Step 14: Setting up the Serial port Step 15: Servo motor is connect on Pin9 Step 16: Setting red filtered photodiodes to be read (S2 and S3 is LOW) Step 17: Reading the output frequency (int Red = ReadFrequencies) Step18: Setting the green filtered photodiodes to be read (S2 and S3 is HIGH) Step 19: Read the output frequency (int Green = ReadFrequencies) Step 20: Setting blue filtered photodiodes to be read (S2 is LOW and S3 is HIGH) Step 21: Reading the output frequency (int Blue = ReadFrequencies) Step 22: If the color sensor read a RED color Step 23: Servo moves at 34 degrees Step 24: If the color sensor read an ORANGE color Step 25: Servo moves at 68 degrees Step 26: If the color sensor read a GREEN color Step 27: Servo moves at 102 degrees Step 28: If the color sensor read a YELLOW color Step 29: Servo moves at 136 degrees Step 30: If the color sensor read a BLUE color Step 31: Servo moves at 170 degrees Step 32: End VIII. Data Sheet 1. Arduino UNO ECEELEC4 Elective 4 (Microprocessor System) 01 / 1 / 19 SBEE - 4A ALAMO, LOPEZ, PEREZ, TORMIENTO PROF. JOSELITO A. TRINIDAD, MTE 2. Color Sensor ECEELEC4 Elective 4 (Microprocessor System) 01 / 1 / 19 SBEE - 4A ALAMO, LOPEZ, PEREZ, TORMIENTO PROF. JOSELITO A. TRINIDAD, MTE 3. Servo Motor ECEELEC4 Elective 4 (Microprocessor System) 01 / 1 / 19 SBEE - 4A ALAMO, LOPEZ, PEREZ, TORMIENTO PROF. JOSELITO A. TRINIDAD, MTE IX. Eperimental Set-up Actual Set-Up Color Sensor : RED ; Servo @ 34° Color Sensor : ORANGE ; Servo @ 68° Color Sensor : GREEN ; Servo @ 102° ECEELEC4 Elective 4 (Microprocessor System) 01 / 1 / 19 SBEE - 4A ALAMO, LOPEZ, PEREZ, TORMIENTO PROF. JOSELITO A. TRINIDAD, MTE Color Sensor : YELLOW ; Servo @ 136° Color Sensor : BLUE ; Servo @ 170° X. Analyzation Our observation will be the same because we only change the output which is RGB and the new output is the servo. We also observe that servo has different angle which can help us mechanically arrange in sorting the color of a thing. In this activity we need to make a color sensor with a servo motor as a sorter of an object. When the color sensor read a color RED object the servo will move at 34 degrees from the initial sides, When the color sensor read a color ORANGE object the servo will move at 68 degrees from the initial sides, When the color sensor read a color GREEN object the servo will move at 102 degrees from the initial side, When the color sensor read a color YELLOW object the servo will move at 136 degrees from the initial side, When the color sensor read a color BLUE object the servo will move at 170 degrees, and when the sensor read a different color object the servo motor shaft will remain at the previous position. XI. Conclusion Therefore when the color sensor read an object and when the object color is based on the specific colors in the program, The position of the servo motor will rotate according to the color of the object. This principle will can apply in a color sorter when the sensor has a different colored object the servo motor will sort the object in a specific position or place.