// EPOCH PROJECT#7 "THE LIGHT SENSOR AND RELAY" // THIS PROJECT BUILDS OFF OF PROJECT#6. WE WILL PROGRAM THE EPOCH TO TURN ON THE RELAY WHEN THE LIGHT SENSOR SEES DARKNESS. WE'LL USE THE RELAY TO CONTROL AN AC LAMP // CONNECT THE "LIGHT" PIN TO THE A3 (ANALOG PIN#3) PIN ON CHIP-A. // CONNECT GPIO PIN#2 ON CHIP-A TO THE "RELAY" PIN ON THE UPPER RIGHT SIDE OF THE EPOCH. int hold = 0; // THIS IS AN INTEGER. IT IS ESSENTIALLY A STORAGE CONTAINER. IT CAN HOLD VALUES FROM -32,768 to 32,767. WE WILL STORE LIGHT SENSOR DATA HERE. #define relay 2 // GPIO PIN#2 ON CHIP-A WILL BE CALLED "relay" for this project void setup() { Serial.begin(9600); // THIS INITIALIZES THE SERIAL MONOTIR, AND SETS THE BAUD RATE TO 9600. MORE ON THIS LATER. IT ISN'T OVERLY IMPORTANT RIGHT NOW. pinMode(relay,OUTPUT); // DECLARE OUR RELAY CONTROL PIN (GPIO#2) AS AN OUTPUT } void loop() { hold = analogRead(3); // THIS COMMAND TAKES A READING FROM THE A3 PIN, WHICH IS CONNECTED TO THE LIGHT SENSOR OUTPUT, AND PLACES THE RESULT IN THE "hold" INTEGER. if(hold > 900) // IF THE LIGHT SENSOR OUTPUT IS HIGHER THAN 900, THEN THE LIGHTS IN THE ROOM ARE OUT. IF THIS IS THE CASE, EXECUTE THE FOLLOWING { digitalWrite(relay,HIGH); // SET THE RELAY PIN TO HIGH (5V). THIS WILL TURN THE RELAY ON. YOU SHOULD HEAR A CLICK. SEE THE NOTE SECTION FOR MORE INFORMATION ON THE RELAY Serial.println("The relay is on, and the lights are out"); // PRINT THIS TO THE SERIAL MONITOR AND GO TO THE NEXT LINE delay(500); // HALF SECOND DELAY while(analogRead(3) > 900){ // DO NOTHING WHILE THE LIGHT SENSOR CONTINUES TO SEE MORE THAN 900. THE PROGRAM WILL NOT CONTINUE UNTIL THE LIGHTS HAVE BEEN TURNED BACK ON {} } // THIS IS THE END OF THE WHILE LOOP digitalWrite(relay,LOW); // TURN THE RELAY OFF Serial.println("The relay is off, as the lights have turned back on"); // PRINT THIS TO THE SERIAL MONITOR AND GO TO THE NEXT LINE delay(500); // HALF SECOND DELAY } } // NOTES: // The light sensor output is closer to 0 when the LDR is exposed to bright light. The LDR output is closer to 1023 when in darkness. // The relay has a three pin terminal block. The terminals are labelled (NC/CO/NO). The relay is a power switch that is isolated from the rest of the electronics, but completely under our control. The relay uses an electromagnet to control // the state of the internal contacts. When energised (ON), the CO (COMMON) pin connects to the NO (Normally open) pin. When the relay is de-energised (OFF) the CO pin connects to the NC (Normally closed) pin. // If you have a wire connected to CO, and another connected to NO, they will connect together when the relay turns on. When the relay turns on, you can hear a click. When you turn it off, you can also hear a click. // Watch the project video to see how we're going to use the relay.