Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <pcmConfig.h>
- #include <pcmRF.h>
- #include <SD.h>
- //#define SD_ChipSelectPin 53 //sử dụng SS Pin 53 trên Mega2560
- #define SD_ChipSelectPin 4
- #include <TMRpcm.h>
- #include <SPI.h>
- const int SensorPin1 = 2; // cua vao mau vang
- const int SensorPin2 = 3; // cua ra mau xanh
- const int ledPin1 = 6; // the number of the LED pin
- const int ledPin2 = 7;
- const int Relay = 8;
- TMRpcm tmrpcm;
- unsigned long time1 = 0;
- int State = 0;
- void relay()
- { if (digitalRead(SensorPin1) == LOW)
- {
- digitalWrite(Relay, LOW);
- }
- if (digitalRead(SensorPin2) == LOW)
- {
- digitalWrite(Relay, LOW);
- }
- if (digitalRead(SensorPin1) == HIGH)
- {
- digitalWrite(Relay, HIGH);
- }
- if (digitalRead(SensorPin2) == HIGH)
- {
- digitalWrite(Relay, HIGH);
- }
- }
- void setup()
- {
- // GPIO config
- pinMode(SensorPin1, INPUT);
- pinMode(SensorPin2, INPUT);
- pinMode(ledPin1, OUTPUT);
- pinMode(ledPin2, OUTPUT);
- pinMode(Relay, OUTPUT);
- // Speaker config
- tmrpcm.speakerPin = 9;
- Serial.begin(9600);
- if (!SD.begin(SD_ChipSelectPin))
- {
- Serial.println("SD fail, please reset");
- return;
- }
- else
- {
- Serial.println("OK, start ");
- }
- }
- void Stop()
- {
- delay(6000);
- tmrpcm.stopPlayback();
- digitalWrite(9, LOW);
- Serial.println("Stop come in");
- }
- void led()
- {
- if (digitalRead(SensorPin1) == LOW)
- {
- digitalWrite(ledPin1, LOW);
- }
- if (digitalRead(SensorPin2) == LOW)
- {
- digitalWrite(ledPin2, LOW);
- }
- if (digitalRead(SensorPin1) == HIGH)
- {
- digitalWrite(ledPin1, HIGH);
- }
- if (digitalRead(SensorPin2) == HIGH)
- {
- digitalWrite(ledPin2, HIGH);
- }
- }
- void loop()
- {
- //tmrpcm.setVolume(100);
- State = (digitalRead(SensorPin1) || digitalRead(SensorPin2));
- attachInterrupt(State, Stop, FALLING);
- if (State == HIGH)
- {
- if ((digitalRead(SensorPin1) == HIGH) && (digitalRead(SensorPin2) == LOW))
- {
- led();
- Relay();
- Serial.println("Play come in");
- tmrpcm.play("1.wav");
- //delay (6000);
- }
- else if ((digitalRead(SensorPin1) == LOW) && (digitalRead(SensorPin2) == HIGH))
- {
- led();
- Relay();
- Serial.println("Play goodbye");
- tmrpcm.play("2.wav");
- // delay(6000);
- attachInterrupt(State, Stop, FALLING);
- }
- else if ((digitalRead(SensorPin1) == HIGH) && (digitalRead(SensorPin2) == HIGH))
- {
- digitalWrite(ledPin1, HIGH);
- digitalWrite(ledPin2, HIGH);
- }
- }
- if (millis() - time1 > 100)
- {
- if (!tmrpcm.isPlaying())
- { digitalWrite(9, LOW);
- time1 = millis();
- }
- }
- }
Add Comment
Please, Sign In to add comment