//Millis and Blinkie//
//Torres 36//
//11-15-2023//
//MIL AND BLINK//
//V1//
//Basically is blinkie in two different forms, one using delay, the other millis, each light should blink 4 times//
//In delay, the button takes a while to activate, while in millis, the button turns on the LED instantly//
unsigned long MSSTR = 0; /*millis start time*/
unsigned long MSPVR = 0; /*millis previous time*/
unsigned long INTV = 1000; /*millis interval*/
int CNT = 0; /*Counter*/
#define LED1 2
#define LED2 7
#define LED3 8
#define BTN1 11
int LED1S = 0; /*Led 1 state*/
int LED2S = 1; /*Led 2 state*/
int BS1 =0; /*Button state */
int i; /*for loop counter*/
int k; /*For loop counter*/
void setup() {
pinMode(LED1, OUTPUT); /*Pins are all outputs*/
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(BTN1, INPUT); /*Pin for button input*/
Serial.begin(9600); /*Standard baud rate*/
}
void loop() {
Serial.println("Delay Mode");
MSSTR = millis(); /*Start millis timer*/
for (k = 0; k <= 3 ;k++){ /*Standard blinky loop*/
BS1 = digitalRead(BTN1);
/*turns on led 3 if button is on*/
if ( BS1 == HIGH){digitalWrite(LED3, HIGH);}else{digitalWrite(LED3, LOW);}
Serial.println(BS1);
digitalWrite(LED2,HIGH);
delay(1000);
digitalWrite(LED2, LOW);
digitalWrite(LED1,HIGH);
delay(1000);
digitalWrite(LED1, LOW);
}
Serial.println("Millis Mode"); /*Millis blinky loop*/
CNT = 0;
while(CNT<8){ /*Makes sure that blink at least 4 times*/
BS1 = digitalRead(BTN1);
MSPVR = millis();
if(MSPVR-MSSTR>=INTV){
CNT++;
MSSTR = MSPVR; /*If led 1 is on, 2 is off and vice versa*/
if( LED1S == 0){LED1S = 1;LED2S = 0;}else{LED1S = 0;LED2S = 1;}
digitalWrite(LED1,LED1S );
digitalWrite(LED2, LED2S);
Serial.println(BS1); /*Prints button state*/
}
if ( BS1 == HIGH){digitalWrite(LED3, HIGH);}else{digitalWrite(LED3, LOW);}
/*turns on led 3 if button is on*/
}
}