safwan092

Test code for traffic light project in traffic condition chatgpt

Nov 28th, 2024
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. // IR Sensor Pins
  2. const int IR1_SideA = 2; // IR Sensor 1 on Side A
  3. const int IR2_SideA = 3; // IR Sensor 2 on Side A
  4. const int IR1_SideB = 4; // IR Sensor 1 on Side B
  5. const int IR2_SideB = 5; // IR Sensor 2 on Side B
  6.  
  7. // Traffic Light Pins for Side A
  8. const int RedA = 6;
  9. const int YellowA = 7;
  10. const int GreenA = 8;
  11.  
  12. // Traffic Light Pins for Side B
  13. const int RedB = 9;
  14. const int YellowB = 10;
  15. const int GreenB = 11;
  16.  
  17. // Timing variables
  18. const int greenTime = 5000; // Green light duration in ms
  19. const int yellowTime = 2000; // Yellow light duration in ms
  20.  
  21. void setup() {
  22. // Set IR sensor pins as input
  23. pinMode(IR1_SideA, INPUT);
  24. pinMode(IR2_SideA, INPUT);
  25. pinMode(IR1_SideB, INPUT);
  26. pinMode(IR2_SideB, INPUT);
  27.  
  28. // Set traffic light pins as output
  29. pinMode(RedA, OUTPUT);
  30. pinMode(YellowA, OUTPUT);
  31. pinMode(GreenA, OUTPUT);
  32. pinMode(RedB, OUTPUT);
  33. pinMode(YellowB, OUTPUT);
  34. pinMode(GreenB, OUTPUT);
  35.  
  36. // Initialize traffic lights (Side A red, Side B red)
  37. digitalWrite(RedA, HIGH);
  38. digitalWrite(RedB, HIGH);
  39. }
  40.  
  41. void loop() {
  42. // Read IR sensors
  43. int carsSideA = !digitalRead(IR1_SideA) + !digitalRead(IR2_SideA); // Count cars on Side A
  44. int carsSideB = !digitalRead(IR1_SideB) + !digitalRead(IR2_SideB); // Count cars on Side B
  45.  
  46. if (carsSideA > carsSideB) {
  47. switchToGreen('A');
  48. } else if (carsSideB > carsSideA) {
  49. switchToGreen('B');
  50. } else {
  51. // Equal or no cars detected, default to Side A green
  52. switchToGreen('A');
  53. }
  54. }
  55.  
  56. void switchToGreen(char side) {
  57. if (side == 'A') {
  58. // Side A green
  59. digitalWrite(GreenA, HIGH);
  60. digitalWrite(RedB, HIGH);
  61. delay(greenTime);
  62.  
  63. // Side A yellow
  64. digitalWrite(GreenA, LOW);
  65. digitalWrite(YellowA, HIGH);
  66. delay(yellowTime);
  67.  
  68. // Reset to red
  69. digitalWrite(YellowA, LOW);
  70. digitalWrite(RedA, HIGH);
  71. digitalWrite(RedB, LOW);
  72. } else {
  73. // Side B green
  74. digitalWrite(GreenB, HIGH);
  75. digitalWrite(RedA, HIGH);
  76. delay(greenTime);
  77.  
  78. // Side B yellow
  79. digitalWrite(GreenB, LOW);
  80. digitalWrite(YellowB, HIGH);
  81. delay(yellowTime);
  82.  
  83. // Reset to red
  84. digitalWrite(YellowB, LOW);
  85. digitalWrite(RedB, HIGH);
  86. digitalWrite(RedA, LOW);
  87. }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment