Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int LED_1 = 2;
- const int LED_2 = 4;
- const int LED_3 = 7;
- const int LED_4 = 8;
- const int LED_5 = 12;
- const int LED_6 = 13;
- const int LED_array[6] = {LED_1, LED_2, LED_3, LED_4, LED_5, LED_6};
- int LED_state[6] = {LOW, LOW, LOW ,LOW, LOW, LOW}; //states
- unsigned long LED_millis[6] = {0,0,0,0,0,0}; //delay
- unsigned long LED_interval; //currentMillis - LED_millis[LED_idx];
- int LED_idx = 0;
- int LED_dir = 1;
- int LED_onTime;
- // the setup routine runs once when you press reset:
- void setup() {
- // initialize serial communication at 9600 bits per second:
- pinMode(LED_1, OUTPUT);
- pinMode(LED_2, OUTPUT);
- pinMode(LED_3, OUTPUT);
- pinMode(LED_4, OUTPUT);
- pinMode(LED_5, OUTPUT);
- pinMode(LED_6, OUTPUT);
- Serial.begin(9600); //remove if not print
- }
- // the loop routine runs over and over again forever:
- void loop() {
- // read the input on analog pin 0:
- int sensorValue = analogRead(A0);
- // print out the value you read:
- Serial.println(sensorValue); //remove if not print
- //check LED_spd, LED_dir
- if (sensorValue < 300){
- LED_dir = 1;
- LED_onTime = 40;
- }
- else if (sensorValue <723){
- LED_onTime = 100;
- }
- else{
- LED_dir = -1;
- LED_onTime = 40;
- }
- //Check LED_idx
- if (LED_dir == 1 && LED_idx > 5){
- LED_idx = 0;
- }
- else if(LED_dir == -1 && LED_idx < 0){
- LED_idx = 5;
- }
- unsigned long currentMillis = millis();
- LED_interval = currentMillis - LED_millis[LED_idx];
- if ( LED_state[LED_idx] == HIGH && LED_interval >= LED_onTime){
- LED_state[LED_idx] = LOW;
- LED_millis[LED_idx] = currentMillis;
- digitalWrite(LED_array[LED_idx], LOW);
- LED_idx += LED_dir;
- }
- else if ( LED_state[LED_idx] == LOW){
- LED_state[LED_idx] = HIGH;
- LED_millis[LED_idx] = currentMillis;
- digitalWrite(LED_array[LED_idx], HIGH);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement