Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uint32_t steps_absolute[32] = {3,5,17,21,47,49,57,58,64,76,79,92,93,101,106,112,115,121,123,130,134,135,136,141,163,170,173,186,191,200,210,212};
- uint32_t led1vals = 2863311530;
- uint32_t led2vals = 1431655765;
- uint32_t seconds_so_far = 0;
- uint32_t current_step = 0;
- uint32_t led1Disable = 0;
- uint32_t led2Disable = 0;
- const int led1 = 8;
- const int led2 = 9;
- void delaySeconds(unsigned long duration){
- //delay for duration * 1 second (as close as possible without the overkill of my other example)
- if(duration >= 1){
- delay(duration*1000);
- }
- seconds_so_far += duration;
- }
- bool led1Activates(){
- //check to see if led1 gets turned on in this step
- if(bitRead(led1vals, current_step)){
- //turn on,
- Serial.println("1 turned on ");
- digitalWrite(led1, HIGH);
- return true;
- }
- return false;
- }
- bool led2Activates(){
- //check to see if led2 gets turned on in this step
- if(bitRead(led2vals, current_step)){
- //turn on.
- Serial.println("2 turned on");
- digitalWrite(led2, HIGH);
- return true;
- }
- return false;
- }
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);
- pinMode(led1, OUTPUT);
- pinMode(led2, OUTPUT);
- digitalWrite(led1, LOW);
- digitalWrite(led2, LOW);
- }
- void loop() {
- // put your main code here, to run repeatedly:
- if(steps_absolute[current_step] == seconds_so_far){
- if(led1Activates()){
- led1Disable = seconds_so_far + 10; //scheduling turn off point in future
- }
- if(led2Activates()){
- led2Disable = seconds_so_far + 10; //scheduling turn off point in future
- }
- current_step += 1;
- if(current_step >= 32){
- current_step = 0;
- seconds_so_far = 0;
- }
- }
- if((led1Disable == seconds_so_far) || (seconds_so_far == 0)){
- //disable
- Serial.println("1 turned off ");
- digitalWrite(led1, LOW);
- led1Disable = 0;
- }
- if((led2Disable == seconds_so_far) || (seconds_so_far == 0)){
- //disable
- Serial.println("2 turned off");
- digitalWrite(led2, LOW);
- led2Disable = 0;
- }
- Serial.print("In step #: ");
- Serial.print(current_step);
- Serial.print(" Time Elapsed(this run): ");
- Serial.println(seconds_so_far);
- delaySeconds(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement