#define LED1 13
#define LED2 12
#define LED3 11
#define BTN_Right 4
#define BTN_Left 5
// set LED states
int LED1_state = LOW;
int brightness = 0;
// previous time for the tasks depending upon time.
unsigned long prevTime_T1 = millis();
unsigned long prevTime_T4 = millis();
// time intervals for the tasks
long interval_T1 = 1000; // blink every 1 second
long interval_T4 = 5000; // print brightness of LED3 every 5 seconds
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(BTN_Right, INPUT_PULLUP);
pinMode(BTN_Left, INPUT_PULLUP);
}
void loop() {
// put your main code here, to run repeatedly:
unsigned long currentTime = millis();
// Task 1 : Blink LED1 (T1)
if (currentTime - prevTime_T1 > interval_T1) {
LED1_state = !LED1_state;
digitalWrite(LED1, LED1_state);
prevTime_T1 = currentTime;
}
// Task 2 : Glow LED2 when BTN_Right is pressed
if (digitalRead(BTN_Right)) {
digitalWrite(LED2, LOW);
} else {
digitalWrite(LED2, HIGH);
if (digitalRead(BTN_Left)) {
digitalWrite(LED3, LOW);
} else {
digitalWrite(LED3, HIGH);
}
// Task 3 : Glow LED3 when BTN_Right is pressed
if (digitalRead(BTN_Left)) {
digitalWrite(LED3, LOW);
} else {
digitalWrite(LED3, HIGH);
}
// Task 3 : Read input from serial monitor (0-255) and then write to LED3
if (Serial.available()) {
brightness = Serial.parseInt();
if (brightness >=0 && brightness <= 255) {
analogWrite(LED3, brightness);
}
}
}}
nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
led5:A
led5:C
led6:A
led6:C
led7:A
led7:C
led8:A
led8:C
led9:A
led9:C
led10:A
led10:C
led11:A
led11:C
led12:A
led12:C
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r