Advertisement
Guest User

Untitled

a guest
Jan 18th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. int LED_1 = 2;
  3. const int LED_2 = 4;
  4. const int LED_3 = 7;
  5. const int LED_4 = 8;
  6. const int LED_5 = 12;
  7. const int LED_6 = 13;
  8.  
  9. const int LED_array[6] = {LED_1, LED_2, LED_3, LED_4, LED_5, LED_6};
  10. int LED_state[6] = {LOW, LOW, LOW ,LOW, LOW, LOW}; //states
  11. unsigned long LED_millis[6] = {0,0,0,0,0,0}; //delay
  12. unsigned long LED_interval; //currentMillis - LED_millis[LED_idx];
  13. int LED_idx = 0;
  14. int LED_dir = 1;
  15. int LED_onTime;
  16.  
  17. // the setup routine runs once when you press reset:
  18. void setup() {
  19.   // initialize serial communication at 9600 bits per second:
  20.   pinMode(LED_1, OUTPUT);
  21.   pinMode(LED_2, OUTPUT);
  22.   pinMode(LED_3, OUTPUT);
  23.   pinMode(LED_4, OUTPUT);
  24.   pinMode(LED_5, OUTPUT);
  25.   pinMode(LED_6, OUTPUT);
  26.   Serial.begin(9600); //remove if not print
  27. }
  28.  
  29. // the loop routine runs over and over again forever:
  30. void loop() {
  31.  
  32.  
  33.   // read the input on analog pin 0:
  34.   int sensorValue = analogRead(A0);
  35.   // print out the value you read:
  36.   Serial.println(sensorValue); //remove if not print
  37.  
  38.   //check LED_spd, LED_dir
  39.   if (sensorValue < 300){
  40.     LED_dir = 1;
  41.     LED_onTime = 40;
  42.   }
  43.   else if (sensorValue <723){
  44.     LED_onTime = 100;
  45.   }
  46.   else{
  47.     LED_dir = -1;
  48.     LED_onTime = 40;
  49.   }
  50.  
  51.   //Check LED_idx
  52.   if (LED_dir == 1 && LED_idx > 5){
  53.     LED_idx = 0;
  54.   }
  55.   else if(LED_dir == -1 && LED_idx < 0){
  56.     LED_idx = 5;
  57.   }
  58.  
  59.   unsigned long currentMillis = millis();
  60.  
  61.   LED_interval = currentMillis - LED_millis[LED_idx];
  62.  
  63.   if ( LED_state[LED_idx] == HIGH  && LED_interval >= LED_onTime){
  64.     LED_state[LED_idx] = LOW;
  65.     LED_millis[LED_idx] = currentMillis;
  66.     digitalWrite(LED_array[LED_idx], LOW);
  67.     LED_idx += LED_dir;
  68.   }
  69.   else if ( LED_state[LED_idx] == LOW){
  70.     LED_state[LED_idx] = HIGH;
  71.     LED_millis[LED_idx] = currentMillis;
  72.     digitalWrite(LED_array[LED_idx], HIGH);
  73.   }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement