safwan092

Color Sensor 3 Trash Bin Red Blue Green Arduino Code

Nov 12th, 2024
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1.  
  2. #include <Servo.h>
  3.  
  4. Servo Servo_Green;
  5. Servo Servo_Blue;
  6. Servo Servo_Red;
  7.  
  8.  
  9. #define S0 4
  10. #define S1 5
  11. #define S2 6
  12. #define S3 7
  13. #define sensorOut 8
  14. #define Servo1 9
  15. #define Servo2 10
  16. #define Servo3 11
  17.  
  18.  
  19. int frequencyR = 0;
  20. int frequencyG = 0;
  21. int frequencyB = 0;
  22.  
  23. //Color is RED
  24. int numA = 26;
  25. int numB = 120;
  26. int numC = 19;
  27.  
  28. //Color is Blue
  29. int numAb = 130;
  30. int numBb = 70;
  31. int numCb = 18;
  32.  
  33. //Color is Green
  34. int numAg = 54;
  35. int numBg = 37;
  36. int numCg = 14;
  37.  
  38. void setup() {
  39. Servo_Green.attach(Servo1);
  40. Servo_Blue.attach(Servo2);
  41. Servo_Red.attach(Servo3);
  42. pinMode(S0, OUTPUT);
  43. pinMode(S1, OUTPUT);
  44. pinMode(S2, OUTPUT);
  45. pinMode(S3, OUTPUT);
  46. pinMode(sensorOut, INPUT);
  47. digitalWrite(S0, HIGH);
  48. digitalWrite(S1, LOW);
  49.  
  50. Serial.begin(9600);
  51. }
  52. void loop() {
  53.  
  54. ReadColorSensor();
  55. SerialOutColor(frequencyR, frequencyG, frequencyB);
  56. }
  57.  
  58.  
  59. void ReadColorSensor() {
  60. digitalWrite(S2, LOW);
  61. digitalWrite(S3, LOW);
  62. frequencyR = pulseIn(sensorOut, LOW);
  63. Serial.print("R= ");
  64. Serial.print(frequencyR);
  65. Serial.print(" ");
  66. delay(100);
  67. digitalWrite(S2, HIGH);
  68. digitalWrite(S3, HIGH);
  69. frequencyG = pulseIn(sensorOut, LOW);
  70. Serial.print("G= ");
  71. Serial.print(frequencyG);
  72. Serial.print(" ");
  73. delay(100);
  74. digitalWrite(S2, LOW);
  75. digitalWrite(S3, HIGH);
  76. frequencyB = pulseIn(sensorOut, LOW);
  77. Serial.print("B= ");
  78. Serial.print(frequencyB);
  79. Serial.println(" ");
  80. delay(100);
  81. }
  82.  
  83. void SerialOutColor(int a, int b, int c) {
  84. //Color is RED
  85. if (a > (numA - 10) && a < (numA + 10) && b > (numB - 10) && b < (numB + 10) && c > (numC - 10) && c < (numC + 10)) {
  86. Serial.println("Color is RED");
  87. delay(2000);
  88. MoveRedServo();
  89. }
  90. //Color is Blue
  91. else if (a > (numAb - 10) && a < (numAb + 10) && b > (numBb - 10) && b < (numBb + 10) && c > (numCb - 10) && c < (numCb + 10)) {
  92. Serial.println("Color is Blue");
  93. delay(2000);
  94. MoveBlueServo();
  95. }
  96. //Color is Green
  97. else if (a > (numAg - 10) && a < (numAg + 10) && b > (numBg - 10) && b < (numBg + 10) && c > (numCg - 10) && c < (numCg + 10)) {
  98. Serial.println("Color is Green");
  99. delay(2000);
  100. MoveGreenServo();
  101. }
  102. }
  103.  
  104. void MoveRedServo() {
  105. Servo_Green.write(90);
  106. Servo_Blue.write(90);
  107. Servo_Red.write(0);
  108. delay(2000);
  109. Servo_Green.write(90);
  110. Servo_Blue.write(90);
  111. Servo_Red.write(90);
  112. }
  113.  
  114. void MoveBlueServo() {
  115. Servo_Green.write(90);
  116. Servo_Blue.write(0);
  117. Servo_Red.write(90);
  118. delay(2000);
  119. Servo_Green.write(90);
  120. Servo_Blue.write(90);
  121. Servo_Red.write(90);
  122. }
  123.  
  124. void MoveGreenServo() {
  125. Servo_Green.write(0);
  126. Servo_Blue.write(90);
  127. Servo_Red.write(90);
  128. delay(2000);
  129. Servo_Green.write(90);
  130. Servo_Blue.write(90);
  131. Servo_Red.write(90);
  132. }
  133.  
Advertisement
Add Comment
Please, Sign In to add comment