// EPOCH PROJECT#2 "INPUTS AND OUTPUTS" // THIS PROJECT BUILDS OFF OF PROJECT#1. THE IDEA IS THAT WE WANT TO FLASH AN LED ONLY WHEN A BUTTON IS PRESSED. // CONNECT EITHER THE RLED, YLED, OR GLED LED (YOUR CHOICE) TO GPIO PIN 2 ON CHIP(A). RLED = RED LED, YLED = YELLOW LED, AND GLED = GREEN LED // CONNECT THE NL "NORMALLY LOW" BUTTON OUTPUT PIN TO GPIO PIN 3 ON CHIP(A). THE VOLTAGE ON THIS PIN IS 0V (LOW) WHEN NOT PRESSED. WHEN THE BUTTON IS PRESSED AND HELD DOWN, THE VOLTAGE ON THIS PIN WILL BE 5V(HIGH) #define LED 2 // LET'S CALL GPIO#2 BY THE NAME "LED". #define NL 3 // LET'S CALL GPIO#3 BY THE NAME "NL" FOR "NORMALLY LOW BUTTON" void setup() { pinMode(LED,OUTPUT); // SET "LED" AS AN OUTPUT pinMode(NL,INPUT); // SET "NL" AS AN INPUT. WE CAN NOW INSTRUCT THE CODE TO LOOK AT THE HIGH (5 VOLT) OR LOW (0 VOLT) LOGIC ON THIS INPUT. } void loop() // WHEN THE NL BUTTON IS PRESSED, THE LED WILL TURN ON FOR ONE SECOND, AND THEN OFF FOR ONE SECOND. WHEN IT IS NOT PRESSED, NOTHING WILL HAPPEN. { if(digitalRead(NL) == HIGH) // THIS IS AN "if" STATEMENT. IF THE CONDITIONS IN THIS STATEMENT ARE MET, THEN THE FOLLOWING CODE WILL BE EXECUTED. THE DIGITALREAD COMMAND READS THE STATE OF THE NL PIN. IF PRESSED (HIGH), FLASH THE LED FOR ONE SECOND. { digitalWrite(LED,HIGH); delay(1000); digitalWrite(LED,LOW); delay(1000); } } // THIS IS THE END OF THE LOOP. THE CODE NOW GOES BACK TO THE TOP OF VOID LOOP() // NOTES: // LET'S TALK MORE ABOUT THE "if" STATEMENT: if(digitalRead(NL == HIGH) // There are two tyes of "equals" that are commonly used in variants of C code. "==" is used when we're checking for something, and "=" means that we're changing a value. // For example, in the statement above, we're essentially asking, is NL HIGH? Therefore we use "==". No values are changed. // If we say: HOLD = 5, or HOLD = HOLD + 1, when we use "=" because we're instructing a value to change. In the case of "HOLD = 5", we're changing the value of "HOLD" to 5. // In the case of "HOLD = HOLD + 1" we're simply adding "1" to whatever is currrently stored in HOLD // We'll touch on integers more later, but we can use them as storage registers, or storage spaces. Don't worry if this doesn't make much sense right now. We'll talk about it more later.