// EPOCH PROJECT#1 // WIGGLE YOUR BIG TOE! ALL WE'RE GOING TO DO HERE IS TURN AN LED ON AND OFF. // 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 // RIGHT BELOW THIS COMMENT, THE VERY SHORT PIECE OF CODE CAN BE FOUND. THIS IS THE ENTIRE PROGRAM. BELOW THE CODE, THE ENTIRE PROGRAM IS EXPLAINED IN DETAIL. #define LED 2 void setup() { pinMode(LED,OUTPUT); } void loop() { digitalWrite(LED,HIGH); delay(1000); digitalWrite(LED,LOW); delay(1000); } /* THIS SECTION IS WHERE I WILL BE EXPLAINING ALL OF THE CODE. YOU'LL NOTICE THAT EVERYTHING IS COMMENTED OUT, WHICH MEANS THAT IT IS IGNORED BY THE CODE. EVERYTHING AFTER "/*" WILL BE COMMENTED OUT. THIS IS THE TOP OF THE CODE. WE USE THIS AREA TO DECLARE INPUTS AND OUTPUTS, STORAGE REGISTERS, LIBRARIES, AND LOTS OF OTHER THINGS. FOR RIGHT NOW, WE'RE JUST USING THIS AREA TO INTRODUCE A GENERAL INPUT/OUTPUT PIN (GPIO) TO THE CODE WE USE THE #define COMMAND TO DO THIS. #define LED 2 // LET'S CALL GPIO#2 BY THE NAME "LED". WE CAN NAME IT WHATEVER WE'D LIKE, BUT KEEP IN MIND THAT IT IS CASE SENSITIVE. REFERRING TO IT AS "led" or "Led' WON'T WORK. IF WE NAME IT "LED", THEN WE HAVE TO REFER TO IT AS "LED" // NOTICE THE "2" BESIDE "LED". THAT MEANS THAT GPIO#2 WILL BE CONNECTED OR ASSOCIATED WITH "LED" IN THE BELOW CODE. GPIO2 WILL ACT TO POWER AN LED. void setup() // VOID SETUP HAPPENS AT THE BEGINNING OF THE CODE, AND IS ONLY EXECUTED ONCE. WE WILL USE THIS AREA TO SET UP OUR INPUTS AND OUTPUTS, AND LOTS OF OTHER STUFF DEPENDING ON THE COMPLEXITY OF THE CODE. { pinMode(LED,OUTPUT); // THIS COMMAND TELLS THE PROGRAM THAT LED (GPIO2) WILL BE USED AS AN OUTPUT. IF IT IS USED AS AN INPUT, IT WOULD LOOK LIKE THIS: pinMode(LED,INPUT); } // WITH THE SETUP DONE, LET'S GET ON WITH THE MAIN CODE, WHICH IS CONTAINED IN THE "void loop()" AREA. The code in "void loop()" will loop over and over in a neverending loop. void loop() { digitalWrite(LED,HIGH); // THE "DigitalWrite" COMMAND ACTS TO TURN AN OUTPUT ON (5 VOLTS) OR OFF (0 VOLTS). WHEN WE USE THIS COMMAND TO SET "LED" HIGH, THEN GPIO2 TURNS ON AND POWERS THE LED THAT IT IS CONNECTED TO. delay(1000); // THE DELAY COMMAND IS EXTREMELY USEFUL, AND YOU'LL BE USING IT EVERYWHERE. THE NUMBER IN THE BRACKETS IS THE LENGTH OF THE DELAY IN MILLISECONDS. 1000ms = 1 SECOND. THIS IS A 1 SECOND DELAY. digitalWrite(LED,LOW); // AGAIN, WE'RE USING THE DigitalWrite COMMAND, ONLY NOW WE'RE USING IT TO TURN "LED" OFF. delay(1000); // ADD ANOTHER 1 SECOND DELAY } // THIS IS THE END OF THE LOOP. THE CODE NOW GOES BACK TO THE TOP OF VOID LOOP() // THAT IS IT! NOW, CLICK ON THE CHECKMARK AT THE TOP LEFT OF THE SCREEN. THIS WILL COMPILE THE CODE. IF THERE ARE NO ERRORS, PRESS THE BUTTON JUST TO THE RIGHT OF THE CHECKMARK TO UPLOAD THE CODE TO YOUR EPOCH. // IS YOUR LED TURNING ON FOR ONE SECOND, AND THEN OFF FOR ONE SECOND? IF SO, THEN YOU DID IT! CONGRATS. YOU HAVE SUCCESSFULLY WIGGLED YOUR BIG TOE. NOW LET'S GET ALL THER OTHER PIGGIES WIGGLING! *NOTES: *PLAY AROUND WITH THE DELAY VALUES IN VOID LOOP. REMEMBER, YOU ARE IN CONTROL HERE. YOU CONTROL HOW LONG THE LED IS ON FOR, AND HOW LONG IT IS OFF FOR *IF YOU COULDN'T UPLOAD TO THE EPOCH, REMEMBER THAT YOU HAVE TO SET THE PROGRAMMING JUMPERS. MAKE SURE THAT THEY ARE SET TO RX1/TX1/RST1. *IF YOU CAN'T CONNECT TO THE EPOCH, REMEMBER THAT YOU NEED TO DOWNLOAD AND INSTALL THE CH340G DRIVER. AFTER YOU'VE DONE THIS, CONNECT THE EPOCH TO YOUR COMPUTER, AND UNDER THE "TOOLS" PULL-DOWN MENU, SELECT THE "PORT" THAT THE EPOCH IS CONNECTED TO. *WATCH ALL OF THE VIDEOS IN ORDER. IT WILL REALLY HELP. *IF YOU'RE HAVING TROUBLE, DON'T GIVE UP. ONCE YOU'VE EXECUTED THIS PROGRAM, YOU'RE PAST THE HARDEST PART. *TO END THE COMMENT SECTION, USE THIS COMMAND BELOW */