Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define KUSTIBAS_SENSORS 3
- #define GAISMAS_SENSORS 4
- #define GAISMA_1 7
- #define STATE_IDLE 0
- #define STATE_GAISMA_TURN_ON 1
- #define STATE_GAISMA_ON 2
- #define STATE_GAISMA_TURN_OFF 3
- #define WAIT_TIME (10 * 1000)
- int state = STATE_IDLE;
- int start_time = 0;
- void setup()
- {
- pinMode(KUSTIBAS_SENSORS, INPUT);
- pinMode(GAISMAS_SENSORS, INPUT);
- pinMode(GAISMA_1 + 0, OUTPUT);
- pinMode(GAISMA_1 + 1, OUTPUT);
- pinMode(GAISMA_1 + 2, OUTPUT);
- pinMode(GAISMA_1 + 3, OUTPUT);
- }
- void loop()
- {
- int i = 0;
- int now = 0;
- switch(state)
- {
- case STATE_IDLE:
- if(digitalRead(KUSTIBAS_SENSORS) && !digitalRead(GAISMAS_SENSORS))
- {
- state = STATE_GAISMA_TURN_ON;
- }
- break;
- case STATE_GAISMA_TURN_ON:
- for(i = 0; i < 4; i++)
- {
- digitalWrite(GAISMA_1 + i, HIGH);
- delay(2 * 1000);
- }
- state = STATE_GAISMA_ON;
- start_time = millis();
- break;
- case STATE_GAISMA_ON:
- now = millis();
- if((now - start_time) > WAIT_TIME)
- {
- // Parbaudi 10 reizes vai nav kustiba
- bool kustiba = false;
- for(i = 0; i < 10; i++)
- {
- if(digitalRead(KUSTIBAS_SENSORS))
- {
- kustiba = true;
- break;
- }
- delay(100);
- }
- if(kustiba)
- {
- start_time = millis();
- }
- else
- {
- state = STATE_GAISMA_TURN_OFF;
- }
- }
- break;
- case STATE_GAISMA_TURN_OFF:
- for(i = 0; i < 4; i++)
- {
- digitalWrite(GAISMA_1 + i, LOW);
- delay(2 * 1000);
- }
- state = STATE_IDLE;
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement