Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define LED_SATU PORTD5 // pin5
- #define LED1_NYALA PORTD |= (1<<LED_SATU)
- #define LED1_PADAM PORTD &=~(1<<LED_SATU)
- #define LED_DUA PORTD7 // pin7
- #define LED2_NYALA PORTD |= (1<<LED_DUA)
- #define LED2_PADAM PORTD &=~(1<<LED_DUA)
- const unsigned long limit1Padam = 2000; // 2detik
- const unsigned long limit1Nyala = 1000; // 1detik
- const unsigned long limit2Padam = 5000; // 5detik
- const unsigned long limit2Nyala = 1000; // juga 1detik
- // mulainya nyala
- unsigned long start1Nyala, start2Nyala;
- // mulainya padam
- unsigned long start1Padam, start2Padam;
- volatile boolean led1Status=false, led2Status=false;
- const unsigned long limitDetik = 1000; // per 1detik
- unsigned long timerDetik;
- unsigned long t_now;
- void checkLampu() {
- t_now = millis();
- if(led1Status) { // led1 lagi nyala
- if(t_now-start1Nyala >= limit1Nyala) {
- LED1_PADAM;
- led1Status = false;
- start1Padam = millis();
- }
- } else { // led1 lagi padam
- if(t_now-start1Padam >= limit1Padam) {
- LED1_NYALA;
- led1Status = true;
- start1Nyala = millis();
- }
- }
- if(led2Status) { // led2 lagi nyala
- if(t_now-start2Nyala >= limit2Nyala) {
- LED2_PADAM;
- led2Status = false;
- start2Padam = millis();
- }
- } else { // led2 lagi padam
- if(t_now-start2Padam >= limit2Padam) {
- LED2_NYALA;
- led2Status = true;
- start2Nyala = millis();
- }
- }
- }
- void setup() {
- DDRB |= (1<<LED_SATU);
- DDRB |= (1<<LED_DUA);
- LED1_PADAM; LED2_PADAM;
- start1Padam = start2Padam = timerDetik = millis();
- };
- void loop() {
- if( millis()-timerDetik >= limitDetik ) {
- checkLampu();
- timerDetik = millis();
- }
- _delay(10);
- };
- void _delay(const unsigned long delayTime) {
- unsigned long delayStart = millis();
- while(millis()-delayStart<delayTime) {}
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement