Guest User

Untitled

a guest
Oct 18th, 2017
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. #include <pcmConfig.h>
  2. #include <pcmRF.h>
  3.  
  4. #include <SD.h>
  5. //#define SD_ChipSelectPin 53 //sử dụng SS Pin 53 trên Mega2560
  6. #define SD_ChipSelectPin 4
  7. #include <TMRpcm.h>
  8. #include <SPI.h>
  9.  
  10. const int SensorPin1 = 2; // cua vao mau vang
  11. const int SensorPin2 = 3; // cua ra mau xanh
  12. const int ledPin1 = 6; // the number of the LED pin
  13. const int ledPin2 = 7;
  14. const int Relay = 8;
  15. TMRpcm tmrpcm;
  16. unsigned long time1 = 0;
  17. int State = 0;
  18.  
  19. void relay()
  20. { if (digitalRead(SensorPin1) == LOW)
  21. {
  22. digitalWrite(Relay, LOW);
  23. }
  24. if (digitalRead(SensorPin2) == LOW)
  25. {
  26. digitalWrite(Relay, LOW);
  27. }
  28. if (digitalRead(SensorPin1) == HIGH)
  29. {
  30. digitalWrite(Relay, HIGH);
  31. }
  32. if (digitalRead(SensorPin2) == HIGH)
  33. {
  34. digitalWrite(Relay, HIGH);
  35. }
  36.  
  37. }
  38.  
  39. void setup()
  40. {
  41. // GPIO config
  42. pinMode(SensorPin1, INPUT);
  43. pinMode(SensorPin2, INPUT);
  44. pinMode(ledPin1, OUTPUT);
  45. pinMode(ledPin2, OUTPUT);
  46. pinMode(Relay, OUTPUT);
  47. // Speaker config
  48. tmrpcm.speakerPin = 9;
  49. Serial.begin(9600);
  50. if (!SD.begin(SD_ChipSelectPin))
  51. {
  52. Serial.println("SD fail, please reset");
  53. return;
  54. }
  55. else
  56. {
  57. Serial.println("OK, start ");
  58. }
  59. }
  60. void Stop()
  61. {
  62. delay(6000);
  63. tmrpcm.stopPlayback();
  64. digitalWrite(9, LOW);
  65. Serial.println("Stop come in");
  66.  
  67. }
  68. void led()
  69. {
  70. if (digitalRead(SensorPin1) == LOW)
  71. {
  72. digitalWrite(ledPin1, LOW);
  73. }
  74. if (digitalRead(SensorPin2) == LOW)
  75. {
  76. digitalWrite(ledPin2, LOW);
  77. }
  78. if (digitalRead(SensorPin1) == HIGH)
  79. {
  80. digitalWrite(ledPin1, HIGH);
  81. }
  82. if (digitalRead(SensorPin2) == HIGH)
  83. {
  84. digitalWrite(ledPin2, HIGH);
  85. }
  86. }
  87. void loop()
  88. {
  89. //tmrpcm.setVolume(100);
  90. State = (digitalRead(SensorPin1) || digitalRead(SensorPin2));
  91. attachInterrupt(State, Stop, FALLING);
  92.  
  93. if (State == HIGH)
  94. {
  95. if ((digitalRead(SensorPin1) == HIGH) && (digitalRead(SensorPin2) == LOW))
  96. {
  97. led();
  98. Relay();
  99. Serial.println("Play come in");
  100. tmrpcm.play("1.wav");
  101. //delay (6000);
  102.  
  103.  
  104. }
  105. else if ((digitalRead(SensorPin1) == LOW) && (digitalRead(SensorPin2) == HIGH))
  106. {
  107. led();
  108. Relay();
  109. Serial.println("Play goodbye");
  110. tmrpcm.play("2.wav");
  111. // delay(6000);
  112. attachInterrupt(State, Stop, FALLING);
  113. }
  114. else if ((digitalRead(SensorPin1) == HIGH) && (digitalRead(SensorPin2) == HIGH))
  115. {
  116. digitalWrite(ledPin1, HIGH);
  117. digitalWrite(ledPin2, HIGH);
  118. }
  119. }
  120. if (millis() - time1 > 100)
  121. {
  122. if (!tmrpcm.isPlaying())
  123. { digitalWrite(9, LOW);
  124. time1 = millis();
  125. }
  126.  
  127. }
  128. }
Add Comment
Please, Sign In to add comment