// EME3153 Ex6 Q1
// Student: Alan Lee
// Student ID: 250258181
// Class: 1B (EG114403)
// wokwi: https://wokwi.com/projects/447285168126504961
#define LED_Out_Pin 25
#define SW_In_Pin 15
int timea = 0;
int lighta = 0;
int lighttime = 200; // ms
float lighttype = 0.5; // Range : 0 - 1
void setup()
{
Serial.begin(115200);
pinMode(LED_Out_Pin, OUTPUT);
pinMode(SW_In_Pin, INPUT_PULLUP);
}
void loop()
{
if (digitalRead(SW_In_Pin))
{
digitalWrite(LED_Out_Pin, LOW);
timea = 0;
lighta = 1;
}
else
{
if (lighta == 1) {
digitalWrite(LED_Out_Pin, HIGH);
} else if (lighta == 0) {
digitalWrite(LED_Out_Pin, LOW);
}
if ( lighta == 1 && timea >= (lighttime * lighttype)) {
lighta = 0;
timea = 0;
} else if ( lighta == 0 && timea >= (lighttime * (1 - lighttype))) {
lighta = 1;
timea = 0;
}
timea++;
delay(1);
}
}